9

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

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

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

4

3 回答 3

10

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

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

对于 html 到打印的转换来说,这不是一个好的起点,而 PDF 本质上是打印的。

做什么(中级)

  • 消除身体的任何尺寸限制
  • wkhtml... 有一个名为 的开关zoom1.5应该是填充页面的适当值
  • 使用页面大小 a4

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

  • 消除身体的尺寸限制
  • 使用 html 元素和 css 样式构建背景边框(黑色的)
    • 避免为这些定义“宽度”规则。您只需定义一次“宽度”,所有其他宽度都应设置为“自动”。
    • 高度将被证明是麻烦的,因为 div 仅与内容所需的高度一样高。但是设置 height: 100% 不考虑边框和边距大小。
  • 那个黄色十字也可以用css设计,或者更高分辨率的png/jpeg
  • 仅使用“真实”尺寸。这意味着不要使用像素,使用点、英寸或毫米。您可以使用 % 值,但要确保这些是实际尺寸的 % 值(这意味着在某些时候父元素具有实际尺寸)
于 2012-10-12T10:41:23.347 回答
1

我会说你总是会努力让它变得完美。在我看来,您最好直接编写 PDF,而不是依赖第三方工具。

考虑研究FPDF,一个开源 PHP PDF 编写库。请注意,该网站看起来已经过时,但功能运行良好。

于 2012-10-12T11:22:09.170 回答
0

You can set the size of the body to the size of the page.. in case of A4 that is 210x297mm.

Btw: you should only be using width in percentage, otherwise wkhtmltopdf will have to try and convert it.

So make sure you use width: 100%; if you want it to fill all the room. ;)

BTW: If you want real high quality PDFs you will need to create them conforming to at least the PDF/X-3 standard. I don't think wkhtmltopdf does that tho.

于 2012-10-12T10:19:23.457 回答