2014-10-01 91 views
0

在PDF生成器中,您通常可以描述一個邊界框,如果有溢出,它會進入一個新頁面,並且可以包含重新包裝它的內容。邪惡的pdf css邊界框?

我想弄清楚如何在Wicked中優雅地做到這一點,因爲我們有一個新的要求,允許用戶從HTML生成他們自己的PDF。

佈局是大致如下:

[地址/標誌]

[購買的物品列表]

[頁腳]

所有的區域具有固定大小。有一些項目沒有問題。如果有多於適合購買物品的區域,則不能溢出。它需要生成一個新的分頁符,並將溢出項放在下一頁(使用相同的頁眉和頁腳包裝器)。

我不確定是否有辦法讓div的溢出像CSS那樣分頁。 (蝦可以做到,但不接受HTML)。我不知道在渲染之前會有東西溢出,只知道物品的數量是不夠的。

+0

http://stackoverflow.com/questions/24988738/wicketpdf-rendering-table-not-aligned-properly-and-footer-place-at-last-page/25039466#25039466 – Unixmonkey 2014-10-02 17:44:03

+0

所以事實證明,自從邪惡使用wkhtmltopdf作爲後端,並且Webkit對頁面打破有很好的支持 - 我查看了其他庫(王子)。使用這張表,我能夠接近我想要的東西。使用tfoot在頁面的底部獲取頁腳仍然存在問題,但它總比沒有好。 – 2014-10-03 19:38:32

+0

如果您想使用Prince而不付費購買許可證,則可以使用http://docraptor.com網絡服務。此外,您可以提前計算行的高度,並使用一些javascript來查看下一行是否將其放在頁邊界上,然後儘早打開頁面。我在上面鏈接的問題中發佈的CSS規則可以在那裏幫助。 – Unixmonkey 2014-10-04 18:35:18

回答

0

Webkit並沒有真正的支持分頁功能。我從他們自己的頁面中發現:「WebKit的當前分頁算法有很多不足之處 基本上,webkit會將所有東西都渲染成一個長頁面,然後將它剪切成頁面,這意味着如果你有兩列其中一個是 垂直移動了半行,然後webkit將一行分割成 在一頁上顯示上半部分,而下半部分在另一個頁面上,將 也分割成兩個圖像等等。如果您使用的是QT 的補丁版本,您可以使用CSS page-break-inside屬性對此進行補救。有 不容易解決此問題,直到解決此問題爲止,請嘗試組織您的HTML 文檔,使其包含許多可以將頁面乾淨切割的行。「