2014-10-01 54 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 文档,使其包含许多可以将页面干净切割的行。“