2016-12-01 196 views
0

我正在使用wkhtmltopdf將HTML頁面轉換爲PDF文件。客戶端然後下載PDF並打印它。邊框不在Chrome瀏覽器中打印PDF查看器

如果您使用Adobe Reader之類的軟件來打開PDF文件,這很有效,但如果您使用Chrome的內置PDF查看器,則無法使用。

在Chrome PDF查看器中,PDF將像這樣正確顯示(幾乎)。 (所有的邊界實際上是相同的厚度,我不知道爲什麼會出現中間厚邊框): enter image description here

但是,如果您打印從Chrome PDF查看PDF格式,有些邊框將只是dissapear: enter image description here

我已經嘗試使邊框比1px更厚,並且我嘗試了pt而不是px。

+1

您可以發佈您要轉換爲PDF頁面的HTML/CSS嗎? –

回答

1

你設置邊界有多厚?下載PDF文件,用chrome打開它,然後放大到400%左右。邊框顯示了嗎?如果是這樣,那麼您的問題在於Chrome PDF查看器如何處理細線渲染。這是一個問題for several years,由於Chrome PDF查看器自從at least 2011以來存在渲染表格邊界的問題,這一事實加劇了這一問題。

大多數消息來源表示禁用Chrome瀏覽器PDF查看器,以便它可以回退到Adobe Reader。這是有效的,但這對我來說是不可用的選擇,因爲我們的服務器通過PhantomJS處理PDF文件,並且修改了Chrome在其中運行的方式會對我們提供的其他自定義PDF解決方案產生未知影響。 This article是我指出它是細線渲染器的可能性。 Chrome瀏覽器查看器開始給出不一致的表格邊框結果,其閾值厚度似乎爲2px。您可以使用以下snippits來演示:

table, th, td { 
    /* 1.965354px, this does not work */ 
    border: 0.52mm solid #ddd; 
} 

table, th, td { 
    /* 2.00315px, this does work */ 
    border: 0.53mm solid #ddd; 
} 

將厚度設置爲2px可以解決您的問題。這不是一個真正的解決方案(我的直覺告訴我,Chrome PDF預覽處理border-collapse的根源可能與此有關),但現在這將有望幫助您。

相關問題