2015-04-03 40 views
3

我已經使用iText創建了賬單的pdf。 我想用POS打印機打印這張賬單。 POS打印機紙張尺寸將爲58毫米。 我的PDF看起來像A4尺寸。 如何重新設置POS打印機大小的頁面大小?如何在android中爲POS打印機大小創建帳單?

而且,如果產品超過100個意思,我必須使用新的頁面。 所以會有兩頁。 對於這種情況,我怎樣才能在單張紙上打印帳單。

或者有沒有其他方式可以使用android手機或平板電腦創建賬單和打印?

回答

1

當你創建一個這樣的文件:

Document document = new Document(); 

創建一個文件,該文件的所有頁面的默認大小。默認大小是A4。

有一個名爲PageSize的類包含許多不同的標準尺寸。舉例來說,如果你想創建與美國字母大小頁面,您可以創建Document這樣的:

Document document = new Document(PageSize.LETTER); 

您面臨着兩個問題:

  1. 賬單沒有標準尺寸。
  2. 你不知道你賬單的大小。

解決問題1很簡單:Document類接受Rectangle參數。你可以這樣創建自己的頁面大小:通過轉換58毫米

288 user units = 288 pt = 4 x 72pt = 4 inch 
720 user units = 720 pt = 10 x 72pt = 10 inch 

可以解決你的第一個問題:

Rectangle pagesize = new Rectangle(288, 720); 
Document document = new Document(pagesize); 

在這種情況下,你必須測量4×10英寸頁轉化爲點:164.409448819點

解決第二個問題比較困難。一種方法是創建一個非常長的文檔。 PDF文件的最大尺寸爲14,400 14,400由用戶單位,所以你可以這樣創建矩形:

Rectangle pagesize = new Rectangle(164.41f, 14400); 

,如果你有一個法案,長於5.08米這將是令人驚訝。如果該PDF對於您的打印機來說太長,您可以將y位置存儲在內容的末尾,然後再一次減小頁面大小。

另一種方法是將所有內容添加到ColumnText對象,然後要求其高度列,並與之前計算出的高度的新創建的文檔創建一個新的ColumnText對象。這個怎麼做?我在這個問題的答案中解釋了這一點:How to adjust the page height to the content height?

+0

謝謝先生。我將在您的項目中使用您的解決方案。先生,我將在我的項目中使用iText。不會出售我的項目。但要與我和我朋友的酒店一起使用。我需要爲這位先生付款嗎?我已經閱讀了一些有關這個問題的答案。但我仍然擔心我的情況。請刪除我的恐懼回答先生.. – 2015-04-03 10:39:42

+0

決定性的答案只能通過查看具體情況提供。請通過以下地址之一聯繫iText Group:http://itextpdf.com/contact – 2015-04-03 11:04:28

+0

什麼是使用PageSize.A6而不是使用Rectange的回合? – 2015-05-19 10:25:23