使用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();
我介绍了公差是因为您可能不想更改尺寸仅很小的页面。
此外,即使几乎不使用该页面,您也可能希望将其 计入 页面的 UserUnit 值。
任何通用的PDF库都可能允许这样的事情,方法是提供一种明确的调整大小的方法,或者允许此处使用的直接访问。
关于您的需求 免费版本, 您用无注释的 方式 澄清 表示无需购买 ;只要遵守AGPL,就可以使用iText而不购买任何许可证。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)