如何在 android 中为 POS 打印机尺寸创建账单?
How to create bill for POS printer size in android?
我已经使用 iText 创建了账单的 pdf 文件。
我想用 POS 打印机打印这张账单。
POS打印机纸张尺寸为58mm。
我的 PDF 看起来像 A4 大小。
如何根据 POS 打印机大小调整此页面的大小?
而且,如果产品超过 100 个意思,我必须使用新页面。
所以会有两页。
对于这种情况,如何在单张纸上打印账单。
或者还有其他方法可以使用 android 手机或平板电脑创建帐单和打印吗?
当您创建这样的文档时:
Document document = new Document();
创建了一个所有页面都具有默认大小的文档。默认尺寸为 A4。
有一个名为 PageSize
的 class,其中包含许多不同的标准尺寸。例如,如果你想创建一个美国 LETTER 尺寸的页面,你可以像这样创建 Document
:
Document document = new Document(PageSize.LETTER);
您面临两个问题:
- 您的账单没有标准尺寸。
- 您事先并不知道账单的大小。
解决问题 1 很简单:Document
class 接受一个 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 创建了账单的 pdf 文件。 我想用 POS 打印机打印这张账单。 POS打印机纸张尺寸为58mm。 我的 PDF 看起来像 A4 大小。 如何根据 POS 打印机大小调整此页面的大小?
而且,如果产品超过 100 个意思,我必须使用新页面。 所以会有两页。 对于这种情况,如何在单张纸上打印账单。
或者还有其他方法可以使用 android 手机或平板电脑创建帐单和打印吗?
当您创建这样的文档时:
Document document = new Document();
创建了一个所有页面都具有默认大小的文档。默认尺寸为 A4。
有一个名为 PageSize
的 class,其中包含许多不同的标准尺寸。例如,如果你想创建一个美国 LETTER 尺寸的页面,你可以像这样创建 Document
:
Document document = new Document(PageSize.LETTER);
您面临两个问题:
- 您的账单没有标准尺寸。
- 您事先并不知道账单的大小。
解决问题 1 很简单:Document
class 接受一个 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?