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

我正在使用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(即)文本大小,图像宽度和高度内的内容,背景图像也要按比例缩放。

您的背景图像不是高分辨率,这在打印时看起来不太好。

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

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

怎么做(中级)

  • 从身体中删除任何大小限制
  • wkhtml …有一个名为zoom的开关, 1.5应该是一个适当的值来填充页面
  • 使用页面大小a4

做什么(“正确”的方式)

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

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

考虑一下FPDF ,一个开源的PHP PDF编写库。 请注意,该网站看起来已过时,但function非常有效。

您可以将正文的大小设置为页面大小..如果A4为210x297mm。

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

所以一定要使用width: 100%; 如果你想让它填满整个房间。 ;)

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