2012-01-13 55 views
1

我一直在使用html2ps來獲取一些文本標籤,以便在Dymo 450 Labelwriter打印機上正確打印。根據this page,您應該可以使用CSS調整頁面大小。這裏是我試過的CSS(在外部文件中,也試過它內聯):html2ps - 如何打印小標籤?

@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; 

感謝您的幫助。我還應該提到,我使用lp從ubuntu打印服務器進行打印。

回答

2

在工作中,我們使用wkhtmltoimage,wkhtmltopdf project的一部分,就是爲了這個目的。我們使用的是400和雙渦輪增壓器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明確地這樣做。

+0

這與多個頁面(同一文件中的多個標籤)是如何工作的? – jjclarkson 2012-01-16 19:16:06

+0

我們從來沒有*故意*做到這一點。我們爲每個標籤生成一個圖像,將它放在'lpr',然後生成下一個圖像。如果在適當的軸上生成兩倍尺寸的圖像,它*可以*正常工作,但需要相當多的擺弄才能找到合適的寬度和邊距,以便在沒有對齊的正確位置將其折斷煩惱。您也可能需要使用驅動程序選項。如果圖像太大,驅動程序會嘗試將其縮小(壞)或將其打印在多個標籤上(良好)。 – Charles 2012-01-16 19:19:32

+0

我想我想避免因爲這個原因使用圖片。我的輸出是全部文本,並且通常會溢出到第二個標籤上,對於少數情況下我的可變內容可能會發生這種情況,這不會成爲問題。我想我會繼續堅持使用html2ps的答案,因爲我認爲這是一個非常通用的庫,可以將純html轉換爲打印文件。 – jjclarkson 2012-01-16 22:28:59