我已经创建了用于比尔使用iText的pdf。我想用POS打印机打印这张钞票。POS打印机纸张大小为58毫米。我的PDF文件看起来像A4大小。如何为POS打印机大小重新调整此页面的大小?
而且,如果产品超过100的平均值,我必须使用新的页面。所以会有两页。在这种情况下,如何用一张纸打印钞票。
或者,还有其他方法可以用android手机或平板电脑创建账单和打印吗?
发布于 2015-04-03 09:51:05
当您创建这样的文档时:
Document document = new Document();创建的文档的所有页面都具有默认大小。默认大小是A4。
有一个名为PageSize的类,它包含许多不同的标准大小。例如,如果您想创建一个具有美国字母大小的页面,您可以创建如下所示的Document:
Document document = new Document(PageSize.LETTER);你面临两个问题:
解决问题1很容易:Document类接受一个Rectangle参数。您可以创建自己的页面大小如下:
Rectangle pagesize = new Rectangle(288, 720);
Document document = new Document(pagesize);在本例中,您的页面大小为4×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?
https://stackoverflow.com/questions/29429684
复制相似问题