【问题标题】:How to create bill for POS printer size in android?如何在 android 中为 POS 打印机尺寸创建账单?
【发布时间】:2015-04-03 09:37:42
【问题描述】:

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

而且,如果产品的平均值超过 100,我必须使用新页面。 所以会有两页。 对于这种情况,我怎样才能在单张纸上打印账单。

或者有没有其他方法可以使用安卓手机或平板电脑创建账单和打印?

【问题讨论】:

    标签: android printing itext


    【解决方案1】:

    当您创建这样的文档时:

    Document document = new Document();
    

    创建一个文档,其中所有页面都具有默认大小。默认尺寸为 A4。

    有一个名为PageSize 的类包含许多不同的标准尺寸。例如,如果你想创建一个美国字母大小的页面,你可以像这样创建Document

    Document document = new Document(PageSize.LETTER);
    

    你面临两个问题:

    1. 您的账单没有标准尺寸。
    2. 您事先不知道帐单的大小。

    解决问题 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 x 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。不打算出售我的项目。但要与我和我朋友的酒店一起使用。先生,我需要为此支付任何费用吗?我已经阅读了一些与此问题相关的答案。但就我而言,我仍然害怕。请先生您的回答消除我的恐惧..
    • 只有看具体情况才能给出决定性的答案。请通过以下地址之一联系 iText Group:itextpdf.com/contact
    • 用 PageSize.A6 代替 Rectange 怎么样?
    • @Menna-AllahSami PageSize.A6 是一个预定义的 Rectangle 对象,所以是的,您可以使用它而不是定义自己的自定义 Rectangle 对象。
    • @NewDeveloper 这个解决方案能解决你的问题吗?
    猜你喜欢
    • 2022-01-24
    • 2014-12-14
    • 2018-10-28
    • 1970-01-01
    • 2020-09-30
    • 2019-02-08
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    相关资源
    最近更新 更多