2013-12-17 75 views
0

有没有一种方法可以微调PDF格式在IText页面上打印的确切位置?IText如何调整页面上的pdf

这是我的问题:它似乎很自然地通过打印机制造商的变化或打印机的使用年限等等,打印PDF文档时会发生微小的变化。这些变化通常非常小,但是对于2台样本打印机(包括激光和相同的型号和制造商),文本位置的变化在打印机之间为1-2毫米。对于大多数普通印刷来说,这是很好的,但对于这个任务来说,这是超出了可接受的公差范围。

我对此的直觉反应是提供一些能够对打印发生的位置进行微调的能力,从而能够解释打印机本身的任何变化。但是,对于发送到单个打印机的所有作业,打印似乎是一致的。

目前我在Adobe Acrobat Pro X中创建了一个PDF表单域,然后由java应用程序填写并发送到打印机。

谢谢你的任何和所有的建议

回答

2

我首先要解决这个问题是尝试改变打印机驱动程序的默认设置......莫名其妙的尝试。但我无法给出任何有用的指示。

如果你想调整PDF文件,你应该改变页面边界来移动内容。例如,此代码将第一个页面的内容向下移动50个单位,以获得仅包含MediaBox的简单PDF。

PdfReader reader = new PdfReader("in.pdf"); 
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("out.pdf")); 
PdfDictionary pagedict = reader.getPageN(1); 
PdfArray mediabox = pagedict.getAsArray(PdfName.MEDIABOX); 
mediabox.set(1, new PdfNumber(mediabox.getAsNumber(1).intValue()+50)); 
mediabox.set(3, new PdfNumber(mediabox.getAsNumber(3).intValue()+50)); 
stamper.close(); 

您必须相应地调整任何其他框(CropBox,BleedBox等)。查看PDF规范以获取有关不同页面边界的信息。

相关问题