iText - 为Store Ticket Machine生成PDF

时间:2014-06-04 09:26:35

标签: pdf itext printers

我使用iText 5.4.4并且我想为连续纸质打印机生成PDF。我怀疑的是如何设置新文档以避免在几页中分割pdf:

Rectangle pagesize = new Rectangle(360f, 720f);
Document document = new Document(pagesize, 36f, 72f, 108f, 180f);

有没有可能做到这一点?

1 个答案:

答案 0 :(得分:1)

PDF不是HTML。 PDF是一种页面描述语言。在PDF文件的根目录下,您有一个名为Catalog字典的对象。在此目录字典中,有一个对页面树的引用。此页面树是一个结构,包含对文件中每个页面的引用。页面是PDF中的自治元素。假设您有一个包含10,000页的PDF,而您只需要页面10,000,那么您可以直接获取该页 而无需渲染9,999个前页。这是PDF的“存在理由”。因此,您的问题听起来很奇怪:PDF是固有的页面。

似乎您想要创建一个包含单个页面的PDF,其中包含多个高度为10英寸的票证。在这种情况下,你必须创建一个大页面,你打印所有这些门票(请注意,这是一个坏主意,但我只是回答你的问题。)

您需要考虑到PDF页面的最大大小。宽度的最大值为14,400,高度的最大值为14,400。因此,如果要为每个高度为10英寸的大量票证创建单个页面,可以创建如下页面:

Rectangle pagesize = new Rectangle(360f, 14400f);

您可以在此页面上安装20张高度为10英寸(720个用户单位)的门票,而不是更多。