我已经使用iText创建了账单的pdf。 我想用POS打印机打印这张账单。 POS打印机纸张尺寸将为58毫米。 我的PDF看起来像A4尺寸。 如何重新设置POS打印机大小的页面大小?如何在android中为POS打印机大小创建帐单?
而且,如果产品超过100个意思,我必须使用新的页面。 所以会有两页。 对于这种情况,我怎样才能在单张纸上打印帐单。
或者有没有其他方式可以使用android手机或平板电脑创建账单和打印?
我已经使用iText创建了账单的pdf。 我想用POS打印机打印这张账单。 POS打印机纸张尺寸将为58毫米。 我的PDF看起来像A4尺寸。 如何重新设置POS打印机大小的页面大小?如何在android中为POS打印机大小创建帐单?
而且,如果产品超过100个意思,我必须使用新的页面。 所以会有两页。 对于这种情况,我怎样才能在单张纸上打印帐单。
或者有没有其他方式可以使用android手机或平板电脑创建账单和打印?
当你创建一个这样的文件:
Document document = new Document();
创建一个文件,该文件的所有页面的默认大小。默认大小是A4。
有一个名为PageSize
的类包含许多不同的标准尺寸。举例来说,如果你想创建与美国字母大小页面,您可以创建Document
这样的:
Document document = new Document(PageSize.LETTER);
您面临着两个问题:
解决问题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?
谢谢先生。我将在您的项目中使用您的解决方案。先生,我将在我的项目中使用iText。不会出售我的项目。但要与我和我朋友的酒店一起使用。我需要为这位先生付款吗?我已经阅读了一些有关这个问题的答案。但我仍然担心我的情况。请删除我的恐惧回答先生.. – 2015-04-03 10:39:42
决定性的答案只能通过查看具体情况提供。请通过以下地址之一联系iText Group:http://itextpdf.com/contact – 2015-04-03 11:04:28
什么是使用PageSize.A6而不是使用Rectange的回合? – 2015-05-19 10:25:23