我一直在使用 html2ps 让一些纯文本标签在 Dymo 450 Labelwriter 打印机上正确打印。根据this page您应该能够使用 CSS 调整页面大小。这是我试过的 CSS(在外部文件中,也试过内联):
@page {
size: 28mm 85mm landscape;
margin: 0mm;
}
但输出后记仍然是字母大小。我也可以使用 html2ps 的 -s 选项进行缩放,但边距仍然很大,以至于没有文本打印(只是出现一个空白标签)
html2ps -s .3 -L <url>
我该怎么做才能使页边距为零并输出正确的页面大小?
这是输入 html 的示例:
<div>Code: <b>SNHN1</b> PO: <b>035718</b> ln: <b>1</b><br>Desc: <div>US15 4" SOLID BRASS NO. 1 (SNHN1)******* HOUSE NUMBER SATIN NICKEL "1"<br></div>Remarks: <b>## CUSTOMER NAME 01/13</b><br><div>Vendor: HARDWARE COMPANY ETC... Rcvd: date and time...</div></div>
而且 html2ps 似乎不尊重内联:
page-break-after:always;
感谢您的帮助。我还应该提到,我正在使用 ubuntu 打印服务器上的 lp 进行打印。
最佳答案
在工作中,我们使用 wkhtmltoimage,它是 wkhtmltopdf project 的一部分,正是为了这个目的。我们使用的是 400 和 Twin Turbo 400 而不是 450。应该没关系,我希望如此。他们提供跨平台的静态编译二进制文件,因此不需要编译。即便如此,旧版本的 wkhtmltopdf 似乎在 Universe 中可用。
在我们的例子中,我们将 html
和 body
大小设置为特定的像素尺寸,根据打印机的 DPI 加上一些 CUPS 的软糖因素计算得出。例如,当打印到 30252 1.125x3.5 地址标签时:
html, body {
margin: 0px;
border: 0px;
padding: 0px;
height: 290px;
width: 958px !important;
max-width: 958px !important;
overflow: hidden;
}
然后将这些像素尺寸与适当的命令行开关相匹配,以强制使用特定的高度和宽度。生成的图像可以通过 lp
或 lpr
直接送入打印机。您还可以通过更改打印方向(-o landscape
或 -o orientation-requested=N
,请参阅 the docs)和交换尺寸来将标签横向翻转。
将图像传递给 CUPS 时,您可能需要手动指定图像的 DPI。我们通过 -o ppi=300
明确地这样做。
关于php - html2ps - 如何打印小标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8852564/