我使用iText为账单创建了pdf。 我想在POS打印机上打印这个账单。 POS打印机纸张尺寸为58mm。 我的PDF看起来像A4尺寸。 如何根据POS打印机尺寸重新调整此页面的大小?
而且,如果产品超过100意味着,我必须使用新页面。 所以会有两页。 对于这种情况,我如何用单张纸打印帐单。
否则还有其他方法可以使用Android手机或平板电脑创建账单和打印吗?
答案 0 :(得分:1)
创建这样的文档时:
Document document = new Document();
创建一个文档,其中所有页面都具有默认大小。默认大小为A4。
有一个名为PageSize
的类包含许多不同的标准大小。例如,如果您想创建一个包含美国LETTER大小的页面,您可以像这样创建Document
:
Document document = new Document(PageSize.LETTER);
你面临两个问题:
解决问题1很简单:Document
类接受Rectangle
参数。您可以像这样创建自己的页面大小:
Rectangle pagesize = new Rectangle(288, 720);
Document document = new Document(pagesize);
在这种情况下,您将拥有4 x 10英寸的页面:
288 user units = 288 pt = 4 x 72pt = 4 inch
720 user units = 720 pt = 10 x 72pt = 10 inch
您可以通过将58 mm转换为pt:164.409448819 pt
来解决您的第一个问题解决第二个问题更加困难。一种方法是创建一个非常长的文档。 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?