2014-01-16 52 views
1

我使用wkhtmltopdf(通過'pdfkit'紅寶石寶石)從html生成pdf。頁面中有一段文本內容冗長,通常跨越2個(或更多)頁面。有時候會發生的情況是,一行文本被分割成多頁。下面是一個圖像,以幫助你理解我的意思:wkhtmltopdf文本分裂爲2頁

enter image description here

現在,我已經做了我的研究公平一點的是:比如我曾嘗試在sorrounding DIV + CSS定位(這是在其他一些建議StackOverflow的問題),像這樣:

page-break-inside:avoid !important; 

和/或

page-break-before: always !important; 

沒有工作。

我也曾嘗試:

display: block !important; 

這也不能工作。

有誰知道如何解決這個問題?

FYI:我使用的是最新版本的wkhtmltopdf:wkhtmltopdf-0.11.0_rc1

+0

你能顯示/鏈接到HTML和CSS嗎?我每天使用wkhtmltopdf,對我來說這不是問題,所以我想用你的數據和場景來測試。 – Nenotlep

+0

嗯..我通過相同的html內容wkhtmltopdf的「linux」靜態二進制文件,並且問題消失。我現在認爲這可能是Mac版本的問題。一旦找到解決方法,我會發布解決方案。同時,我會感謝任何幫助。附:似乎當你做wkhtmltopdf - 版本在自制軟件安裝包上時,它顯示錯誤的版本號。實際安裝的版本似乎是0.10 rc。 – Pouya

+1

檢查這個或父div是否有溢出設置爲隱藏。如果是這樣,請將其更改爲可見。這爲我解決了這個問題。 –

回答

0

該解決方案是對wicked-pdfwkhtmltopdf

一旦陷入類似種類的問題,但通過固定在configuration文件夾wicked_pdf.rb文件更改內容

WickedPdf.config = { 
    :layout => "pdf.html", 
    :margin => { :top=> 60, #previously 40 
        :bottom => 40, #previously 20 
        :left=> 30, 
        :right => 30}, 
    :header => {:html => { :template=> 'layouts/pdf_header.html'}}, 
    :footer => {:html => { :template=> 'layouts/pdf_footer.html'}}, 
    :exe_path => '/usr/bin/wkhtmltopdf' 
} 

previous to new values改變,它在本地機器上運行良好。

每當您在wicked_pdf.rb中進行更改時,都必須重新啓動服務器,並確保page-break-before: always位於正確的位置。

希望這有助於:)

+0

我正在使用pdfkit。我已經使用過page-break-before:always;在幾個容器/母公司,沒有任何成功。這似乎是一個wkhtmltopdf問題,而不是圖書館的問題。 – Pouya

1

在我的情況下,這個問題被註釋掉下面的CSS解析:

html, body { 
    overflow-x: hidden; 
} 

由於El Kopyto在評論到以前的答案之一表示:

檢查這個或父div是否設置爲隱藏溢出。如果是這樣,請將其更改爲可見。

在我的情況下,完全刪除溢出屬性做了這項工作。