java中的缩小_如何使用Java缩小PDF文档中的内容?

本文介绍了如何使用Java的iText库来缩小PDF文档的内容。通过创建PdfWriter、PdfReader对象,读取源PDF,然后利用AffineTransform进行缩放,并在目标PDF上绘制缩小后的页面,最终成功实现PDF文档的缩小。
摘要由CSDN通过智能技术生成

如何使用Java缩小PDF文档中的内容?

注:iText开发环境设置,下载iText7 jar(社区版: ) ,创建一个工程:java_itext,并将下载的itext7 jar包和slf4j( )工具包添加到构建路径中。项目结构如下图所示 –

24a6910e7287322fdd66f443a508c283.png

以下是使用Java缩小PDF文档中的内容的程序。

package com.yiibai; import com.itextpdf.kernel.geom.AffineTransform; import com.itextpdf.kernel.geom.Rectangle; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfPage; import com.itextpdf.kernel.pdf.PdfReader; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.kernel.pdf.canvas.PdfCanvas; import com.itextpdf.kernel.pdf.xobject.PdfFormXObject; import com.itextpdf.layout.Document; public class ShrinkPDF { public static void main(String args[]) throws Exception { // Creating a PdfWriter object String dest = "shrinking.pdf"; PdfWriter writer = new PdfWriter(dest); // Creating a PdfReader String src = "imagsWithPDF.pdf"; PdfReader reader = new PdfReader(src); // Creating a PdfDocument objects PdfDocument destpdf = new PdfDocument(writer); PdfDocument srcPdf = new PdfDocument(reader); // Opening a page from the existing PDF PdfPage origPage = srcPdf.getPage(1); // Getting the page size Rectangle orig = origPage.getPageSizeWithRotation(); // Adding a page to destination Pdf PdfPage page = destpdf.addNewPage(); // Scaling the image in a Pdf page AffineTransform transformationMatrix = AffineTransform.getScaleInstance( page.getPageSize().getWidth() / orig.getWidth() / 2, page.getPageSize().getHeight() / orig.getHeight() / 2); // Shrink original page content using transformation matrix PdfCanvas canvas = new PdfCanvas(page); canvas.concatMatrix(transformationMatrix); // Add the object to the canvas PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf); canvas.addXObject(pageCopy, 0, 0); // Creating a Document object Document doc = new Document(destpdf); // Closing the document doc.close(); System.out.println("Shrink PDF successfully..."); } }

执行上面示例代码,得到以下结果 –

Shrink PDF successfully...

输出文件内容如下所示 –

e1c6d7d17b329eceb3a36e8d8999afe4.png

¥ 我要打赏 纠错/补充 收藏

哥,这回真没有了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值