如何调整现有的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

回到顶部