html2ps - Как мне распечатать небольшие этикетки? - PullRequest
1 голос
/ 13 января 2012

Я работал с html2ps, чтобы заставить некоторые текстовые надписи правильно печатать на принтере Dymo 450 Labelwriter. Согласно этой странице вы можете изменить размер страницы с помощью CSS. Вот CSS, который я попробовал (во внешнем файле, а также попробовал его встроенный):

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

Но выходной постскриптум продолжает иметь размер букв. Я также смог выполнить масштабирование, используя опцию -s html2ps, но поля все еще настолько велики, что текст не печатается (появляется только пустая метка)

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;

Спасибо за вашу помощь. Я должен также упомянуть, что я печатаю, используя lp с сервера печати Ubuntu.

1 Ответ

2 голосов
/ 13 января 2012

На работе мы используем wkhtmltoimage, часть проекта wkhtmltopdf , именно для этой цели.Мы используем 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, см. документы ) и поменяв местами размеры.

Возможно, вам придется вручную указать DPIизображения при передаче его в CUPS.Мы делаем это прямо через -o ppi=300.

...