【问题标题】:IText How to adjust pdf on pageIText如何在页面上调整pdf
【发布时间】:2014-01-05 20:13:57
【问题描述】:

有没有办法在 IText 中精确地微调 PDF 在页面上的打印位置?

这是我的问题:由于打印机制造商或打印机使用年限等因素的变化,打印 PDF 文档时自然会出现细微的变化。这些差异通常非常小,但是对于 2 台示例打印机(激光打印机和相同型号和制造商),打印机之间的文本位置差异高达 1-2 毫米。这对于大多数正常打印来说都很好,但是对于这项任务,这超出了可接受的公差范围。

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

目前,我在 Adob​​e Acrobat Pro X 中创建了一个 PDF,其中包含表单字段,然后由 Java 应用程序填写并发送到打印机。

感谢您的任何建议

【问题讨论】:

    标签: java pdf printing itext


    【解决方案1】:

    我第一次尝试解决这个问题是尝试更改打印机驱动程序的默认设置......不知何故。但是我不能给出任何有用的指示。

    如果您想调整 PDF,您可能应该更改页面边界以移动内容。例如,对于只有 MediaBox 的简单 PDF,此代码将第一页的内容向下移动 50 个单位。

    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 规范,了解有关不同页面边界的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多