按比例缩放HTML以完全适合PDF A4大小

时间:2012-10-12 10:13:47

标签: php jquery pdf pdf-generation wkhtmltopdf

我正在使用PHP,Mysql,jQuery。我有一个网页,将转换为高分辨率A4尺寸PDF:http://optisolbusiness.com/funeral_site/sample/index/id/255

我已使用wkhtmltopdf将HTML转换为PDF,效果很好。

以下是生成的PDF http://optisolbusiness.com/Guru/Gurupdf/optisol.pdf。但HTML并不完全符合PDF大小; PDF中的HTML周围有空格。如何扩展HTML以适应A4 PDF大小100%?重要的是html内容(即)文本大小,图像宽度和高度,背景图像也要按比例缩放。

3 个答案:

答案 0 :(得分:7)

您的背景图片不是高分辨率,在打印时效果不佳。

我不知道wkhtmltopdf本身,但你的身体已经设置了绝对尺寸(以英寸为单位)。这可能是个问题。您的身体具有最大尺寸,内容也具有绝对尺寸(由于背景图像像素尺寸而给出)。

这不是html-to-print转换的良好起点,PDF本质上是打印。

做什么(中间)

  • 从正文中移除任何尺寸限制
  • wkhtml ...有一个名为zoom的开关,1.5应该是填充页面的适当值
  • 使用page-size a4

该怎么做(“正确”方式)

  • 从正文中移除尺寸限制
  • 使用html元素和css样式构建背景边框(黑色)
    • 不要为那些人定义“宽度”规则。您只需要定义一次“宽度”,所有其他宽度应设置为“自动”。
    • 高度将证明是麻烦的,因为div只有内容所需的高度。但设置高度:100%不考虑边框和边距大小。
  • 黄色十字架也可以用css设计,或者分辨率更高的png / jpeg
  • 仅使用“真实”尺寸。这意味着使用像素,使用点,英寸或毫米。您可以使用%值,但要确保它们是实际尺寸的%值(这意味着在某些时候父元素具有实际尺寸)

答案 1 :(得分:2)

我会说你总是很难让这件事变得完美。在我看来,你最好直接写PDF而不是依赖第三方工具。

考虑查看开源PHP PDF编写库FPDF。请注意,该网站看起来已过时,但功能非常有效。

答案 2 :(得分:0)

您可以将正文尺寸设置为页面尺寸..如果A4尺寸为210x297mm。

顺便说一下:你应该只使用宽度百分比,否则wkhtmltopdf将不得不尝试转换它。

因此,如果您希望它填满所有房间,请务必使用width: 100%;。 ;)

顺便说一句:如果你想要真正高质量的PDF,你需要创建符合至少PDF/X-3 standard的PDF。我不认为wkhtmltopdf会这样做。