如何在android中为POS打印机大小创建账单?

如何在android中为POS打印机大小创建账单?,android,printing,itext,Android,Printing,Itext,我已经使用iText为bill创建了pdf。 我想用POS打印机打印这张账单。 POS打印机纸张尺寸为58mm。 我的PDF看起来像A4大小。 如何根据POS打印机大小重新调整此页面的大小 而且,如果产品超过100意味着,我必须使用新的页面。 所以会有两页。 在这种情况下,如何用一张纸打印账单 或者,还有其他方法可以使用android mobile或平板电脑创建账单和打印吗?当您创建这样的文档时: Document document = new Document(); Document doc

我已经使用iText为bill创建了pdf。 我想用POS打印机打印这张账单。 POS打印机纸张尺寸为58mm。 我的PDF看起来像A4大小。 如何根据POS打印机大小重新调整此页面的大小

而且,如果产品超过100意味着,我必须使用新的页面。 所以会有两页。 在这种情况下,如何用一张纸打印账单


或者,还有其他方法可以使用android mobile或平板电脑创建账单和打印吗?

当您创建这样的文档时:

Document document = new Document();
Document document = new Document(PageSize.LETTER);
Rectangle pagesize = new Rectangle(288, 720);
Document document = new Document(pagesize);
 Rectangle pagesize = new Rectangle(164.41f, 14400);
将创建一个所有页面都具有默认大小的文档。默认大小为A4

有一个名为
PageSize
的类,它包含许多不同的标准大小。例如,如果要创建具有美式字母大小的页面,可以像下面这样创建
文档

Document document = new Document();
Document document = new Document(PageSize.LETTER);
Rectangle pagesize = new Rectangle(288, 720);
Document document = new Document(pagesize);
 Rectangle pagesize = new Rectangle(164.41f, 14400);
您面临两个问题:

  • 您的账单没有标准尺寸
  • 你事先不知道账单的金额
  • 解决问题1很简单:
    文档
    类接受一个
    矩形
    参数。您可以创建自己的页面大小,如下所示:

    Document document = new Document();
    
    Document document = new Document(PageSize.LETTER);
    
    Rectangle pagesize = new Rectangle(288, 720);
    Document document = new Document(pagesize);
    
     Rectangle pagesize = new Rectangle(164.41f, 14400);
    
    在本例中,您将拥有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的最大大小为14400乘14400个用户单位,因此您可以创建如下矩形:

    Document document = new Document();
    
    Document document = new Document(PageSize.LETTER);
    
    Rectangle pagesize = new Rectangle(288, 720);
    Document document = new Document(pagesize);
    
     Rectangle pagesize = new Rectangle(164.41f, 14400);
    
    如果你的账单长度超过5.08米,那真的很令人惊讶。如果该PDF对于打印机来说太长,您可以将
    y
    位置存储在内容末尾,然后在第二步中减小页面大小


    另一种方法是将所有内容添加到
    ColumnText
    对象中,然后询问该列的高度,并为新创建的文档创建一个新的
    ColumnText
    对象,其高度在之前计算过。如何做到这一点?我在回答这个问题时解释了这一点:

    谢谢你,先生。。我将在我的项目中使用您的解决方案。先生,我将在我的项目中使用iText。不打算出售我的项目。但是我要去我和我朋友的酒店。先生,我要付多少钱?我已经读了一些关于这个问题的答案。但就我而言,我还是很害怕。先生,请通过你的回答来消除我的恐惧1.只有看看具体情况才能给出决定性的答案。请通过以下地址之一与iText Group联系:使用PageSize.A6而不是使用Rectange怎么样?@Menna AllahSami
    PageSize.A6
    是一个预定义的
    矩形
    对象,是的,您可以使用它来代替定义自己的自定义
    矩形
    对象。@NewDeveloper此解决方案解决了您的问题吗?