2012-11-03 53 views
1

我開始做這樣的事情,所以我需要一點幫助來開始。如何將格式和打印數據提供給Java打印票據打印機

我想打印一些數據並給它一個格式來打印它作爲機構門票,那麼最好的方法是什麼?

  • 使用java api自己創建服務? http://docs.oracle.com/javase/tutorial/2d/printing/index.html

  • 還是它存在任何免費的圖書館這個目的?

  • 也許最好在打印前用數據創建PDF? 我一直在搞亂PDFbox API,但我不太喜歡它。

  • 我不知道使用什麼打印機,票證打印機使用標準尺寸還是存在不同的票證尺寸?

  • 我還需要在打印之前顯示預覽(我正在使用Swing)。

  • 沒有必要存儲格式化的數據。

在此先感謝。

回答

1

如果您決定生成pdf文件然後打印它,我建議使用Apache FOP。我總是使用這個庫來生成PDF。這個庫不容易,但提供了很多選擇。

第二個選項 - 您可以生成HTML頁面然後打印它。

+0

FOP這真的不容易,我可以看到,它需要一些研究,但我會給它一個機會,因爲它看起來比PDFBox更好。我將首先從Java API開始,然後我們將看到... 關於生成一個html文件,它不允許指定頁面大小,是嗎? – giorgiline

+0

「關於生成html文件,它不允許指定頁面大小,是嗎?「 - 可能不是,但我不確定,可能存在一些工具來做 –

1

從一個真實的生活示例:我們正在運行一個打印發貨標籤以發送包裹服務包的項目。該標籤包含條形碼和其他文字信息以及徽標。

票務打印機通常瞭解特殊的打印機控制語言,即如果是Zebra打印機,則它理解EPL或ZPL代碼。要生成票證,我們只需通過簡單的套接字連接將整個控制代碼發送到打印機。控制代碼本身是通過模板引擎(在我們的例子中是Velocity)創建的。

當然,根據不同的要求,有不同的打印機 - 它可能取決於實際應該打印的內容。所以,根據打印機的不同,你可能需要創建一組不同的模板製作您的標籤:

https://en.wikipedia.org/wiki/Printer_control_language

順便說一句: 通常情況下,打印機自帶的軟件,讓你設計的紙標籤的佈局(這讓生活變得非常簡單)。我們使用這個軟件來創建初始佈局。控制代碼本身包含了用於配置打印機的所有命令(標籤大小等 - 毫無疑問,有很多不同的格式和大小,正如所說的:它實際上取決於用例)。

+0

這是否意味着這些打印件不能使用窗口的打印機服務?我正在尋找一種通用的解決方案,並且不會複雜化很多,感謝信息 – giorgiline

+0

正確,沒有涉及Windows打印對於斑馬我知道有Windows驅動程序可以用來打印通用文檔。 – PepperBob