[英]How can I prevent a PDF file from being downloaded or printed with PHP or JavaScript?
[英]how can we prevent a block from being printed across different pages
沒有好的通用解決方案。 正如某些人指出的那樣,您可以在<div>“ B”之前放置一個分頁符...但是您總會在這里得到它。 即使“ A”和“ B”都適合一頁。
您可以在<div>“ B”上使用page-break-inside =“ avoid”。 這可能更接近您想要的。 如果“ B”不適合帶有“ A”的頁面,則“ B”將全部移至下一頁。
但是...有副作用,因為還有第三種可能性。 如果“ B”的內容太大而無法容納在頁面上怎么辦? 將會發生的事情是,它將按照您的想法進行操作,將“ B”移到下一頁並嘗試使用“ B”構建該頁。 它將不能滿足“ B”避免內部分頁的條件,因此它將破壞該條件。 不幸的是,它直到頁面末尾都無法弄清楚,因此您將得到一個空白頁面。
如果您知道“ B”將始終適合在一頁上,則可以使用page-break-inside =“ avoid”,這樣就可以了。 但是,如果沒有,則對您沒有任何幫助。
這里是一個類似問題的冗長解釋:
因此,您真正想要的是將三件事合而為一...(1) 只要不超過一頁 ,您就希望避免在其中分頁 ;否則,(2)您要在(3)前分頁),除非它適合當前頁面。 不幸的是,這不存在。 您只能使用Javascript做到這一點。 您可以為div設置頁面的寬度,然后獲取div“ A”和div“ B”的高度,然后決定在打印過程中動態插入這些CSS屬性。
您可能要使用一些以cm
或pt
單位的打印樣式表,以便可以調整打印在紙上的物理尺寸。 我建議您看看這篇文章: 如何設置打印樣式表
假設您有<div id="divB">...</div>
,則可以使用此CSS。 如果DIV沒有ID,而是有一個類,則應將選擇器部分( #divB
)更改為可以針對該元素的任何內容。
@media print {
#divB { page-break-before: always;}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.