html2ps - 如何打印小标签?

时间:2012-01-13 15:05:28

标签: php css printing printing-web-page html2ps

我一直在使用html2ps来获取一些仅文本标签,以便在Dymo 450 Labelwriter打印机上正确打印。根据{{​​3}},您应该能够使用CSS调整页面大小。这是我试过的CSS(在外部文件中也尝试了内联):

  @page {
      size: 28mm 85mm landscape;
      margin: 0mm;
  }

但输出后记仍然是字母大小。我也能够使用html2ps的-s选项进行缩放,但边距仍然很大,没有文本打印(只是一个空白标签出来)

html2ps -s .3 -L <url>

如何将边距设为零并输出正确的页面大小?

以下是输入html的示例:

<div>Code: <b>SNHN1</b>&nbsp;&nbsp; PO: <b>035718</b>&nbsp;&nbsp;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...&nbsp;&nbsp; Rcvd: date and time...</div></div>

另外看来html2ps不尊重内联:

page-break-after:always;

感谢您的帮助。我还要提一下,我正在使用来自ubuntu打印服务器的lp进行打印。

1 个答案:

答案 0 :(得分:2)

在工作中,我们使用wkhtmltoimage(wkhtmltopdf project的一部分)来实现此目的。我们使用的是400和Twin Turbo 400而不是450.无论如何,我都期待。它们提供跨平台静态编译的二进制文件,因此不需要编译。即便如此,宇宙中似乎还有旧版本的wkhtmltopdf。

在我们的示例中,我们将htmlbody尺寸设置为特定的像素尺寸,根据打印机的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;
}

然后将这些像素尺寸与适当的命令行开关匹配,以强制特定的高度和宽度。生成的图像可以通过lplpr直接送到打印机。您也可以通过更改打印方向(-o landscape-o orientation-requested=N,请参阅the docs)并交换尺寸来侧向转动标签。

将图像传递给CUPS时,可能需要手动指定图像的DPI。我们通过-o ppi=300明确表达。