我正在使用ruby on rails(3.1)的項目中工作。我的要求是從html內容生成pdf。所以我使用pdfkit寶石。Wkhtmltopdf單行部分剪切在頁之間的字符
在一些頁面中,單行中的字符在頁面之間部分切割。當我轉換成html使用pdfkit寶石
版本wkhtmltopdf的轉換爲PDF:wkhtmltopdf - 0.11.0 RC1
操作系統:Linux的CentOS的5.5
在圖像下方顯示部分字符在頁面之間切換。
請提出解決方案。
實施例1
實施例2
我正在使用ruby on rails(3.1)的項目中工作。我的要求是從html內容生成pdf。所以我使用pdfkit寶石。Wkhtmltopdf單行部分剪切在頁之間的字符
在一些頁面中,單行中的字符在頁面之間部分切割。當我轉換成html使用pdfkit寶石
版本wkhtmltopdf的轉換爲PDF:wkhtmltopdf - 0.11.0 RC1
操作系統:Linux的CentOS的5.5
在圖像下方顯示部分字符在頁面之間切換。
請提出解決方案。
實施例1
實施例2
根據some documentation我發現(見頁斷裂),這是一個公知的問題,並且使用CSS表明分頁符插入分頁符(假設您正在使用補丁版本的QT):
WebKit的當前分頁算法很大程度上需要 。基本上,webkit將把所有東西都渲染成一個長頁面,然後將其剪切成頁面。這意味着如果你有兩列 的文字,其中一列垂直移動了半行。然後,webkit 將切成一行,在一頁上顯示上半部分。並在另一個頁面的下半部分 。它也將打破兩個圖像和 等。如果您使用QT的補丁版本,則可以使用CSS page-break-inside屬性對此進行補救。對此問題沒有簡單的 解決方案,直到解決此問題爲止,請嘗試組織您的HTML文檔,使其包含許多行,其中的頁面可以乾淨地切割成 。
參見:http://code.google.com/p/wkhtmltopdf/issues/detail?id=9, http://code.google.com/p/wkhtmltopdf/issues/detail?id=33和 http://code.google.com/p/wkhtmltopdf/issues/detail?id=57。
這不再是這種情況。 @Besi下面的答案解決了任何分頁符問題,更不用說只是獲取最新版本的'wkhtmltopdf'(0.12.2.1)。將以下內容添加到您的CSS中: 'table,img,blockquote {page-break-inside:avoid;}' – craned 2015-05-08 16:14:12
@craned不正確。這個問題只是部分解決了,它仍然存在。 'page-break-inside'只會幫助您添加到的整個塊。例如,如果1個段落/塊的長度超過一頁,那麼'page-break-inside'將不起作用,並且在某些情況下文本會被剪切。它可以修復它,如果它是靜態文本,但它是一個問題,動態生成的文本,當你不知道該特定的塊將多久。所以問題仍然存在,只能部分解決。 – Neel 2016-11-06 11:20:33
@Neel,在這種情況下,我會說它大部分已經解決了。至少在我的特定情況下,1段/塊不會是一個問題。坦率地說,一個段落/塊的長度永遠不會超過正常頁面的長度,但在看起來很罕見的情況下,那麼是的,那將是一個問題依然存在的地方。 – craned 2016-11-16 03:10:37
我只是碰到了這個,發現了一些解決了我的問題。在我的情況下,有display: inline-block; margin-bottom: -20px;
的div。一旦我改變它們以阻止並重置邊緣底部,線分裂消失。因人而異。
剪切文本問題是一個已知的webkit問題,它似乎開發人員發現wkhtmltopdf內的解決方案。更新到0.12.1將修復切割文本問題(如果您不想浪費時間進行編譯,可以從這裏獲取二進制文件:https://github.com/h4cc/wkhtmltopdf-amd64)。
我使用0.12.2.1,這是一個更新版本的wkhtmltopdf 。我似乎仍然有這個問題,所以我不認爲這是修復(因爲我懷疑他們在新版本中重新引入了這個bug)。 – rageandqq 2015-02-09 15:46:39
我確認0.12.1此刻工作 - 此後沒有玩過。 – 2015-02-10 17:09:34
使用wkhtmltopdf 0.12.2.1(補丁QT),仍然是問題。 – 2017-08-04 12:22:23
我確實有這個問題,一個表:
然後我說這我的CSS:
table, img, blockquote {page-break-inside: avoid;}
這解決了這一問題:
這不適合我。我試着設置這個屬性在封閉td,tr和div並且行仍然被裁剪。 – 2016-04-20 10:37:44
在我的情況下,問題是reso通過註釋掉以下CSS LVED:
html, body {
overflow-x: hidden;
}
一般情況下,檢查是否有標籤有overflow
設爲hidden
並刪除它或將它設置爲visible
。
順便說一句,我在Windows 8使用wkhtmltopdf version 0.12.2.1
什麼是您正在使用生成PDF格式的完整的命令? – 2012-01-09 10:38:28
命令從pdfkit寶石產生:\t wkhtmltopdf「--page大小」,「A4」,「--margin頂」「5毫米」「--margin右」,「5毫米」「--margin底」,「5毫米」 「--margin-left」「5mm」「--encoding」「UTF-8」「--quiet」「1011284.html」「test.pdf」 – amexn 2012-01-09 11:22:18
如果更改頁邊距,會發生什麼情況?它仍然切斷它? – Matt 2012-01-09 11:38:10