如何调整现有的pdf页面大小
在应用程序中,用户可以上传尺寸为8.46“ x 10.97”的任何pdf文件。根据我们的应用程序尺寸应为8.5“ x
11”。问题是,如何重新调整现有pdf页面的大小以设置8.5“ x11”?我必须通过代码修复,而不是手动,赞扬线路或外部软件。请让我知道提供此功能的Java支持jar(免费版)或通过简单的Java修复也可以。
回答:
使用iText,您可以执行以下操作:
float width = 8.5f * 72;float height = 11f * 72;
float tolerance = 1f;
PdfReader reader = new PdfReader("source.pdf");
for (int i = 1; i <= reader.getNumberOfPages(); i++)
{
Rectangle cropBox = reader.getCropBox(i);
float widthToAdd = width - cropBox.getWidth();
float heightToAdd = height - cropBox.getHeight();
if (Math.abs(widthToAdd) > tolerance || Math.abs(heightToAdd) > tolerance)
{
float[] newBoxValues = new float[] {
cropBox.getLeft() - widthToAdd / 2,
cropBox.getBottom() - heightToAdd / 2,
cropBox.getRight() + widthToAdd / 2,
cropBox.getTop() + heightToAdd / 2
};
PdfArray newBox = new PdfArray(newBoxValues);
PdfDictionary pageDict = reader.getPageN(i);
pageDict.put(PdfName.CROPBOX, newBox);
pageDict.put(PdfName.MEDIABOX, newBox);
}
}
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("target.pdf"));
stamper.close();
我介绍了公差是因为您可能不想更改尺寸仅很小的页面。
此外,即使几乎不使用该页面,您也可能希望将其 页面的 值。
任何通用的PDF库都可能允许这样的事情,方法是提供一种明确的调整大小的方法,或者允许此处使用的直接访问。
关于您的需求 免费版本, 您用无注释的 方式 澄清 表示无需购买 ;只要遵守AGPL,就可以使用iText而不购买任何许可证。
以上是 如何调整现有的pdf页面大小 的全部内容, 来源链接: utcz.com/qa/411221.html