java缩小pdf,如何使用Java缩小PDF文档中的内容?
如何使用Java缩小PDF文档中的内容?
注:iText开发环境设置,下载iText7 jar(社区版:http://github.com/itext/itext7/releases/tag/7.0.4 ) ,创建一个工程:java_itext,并将下载的itext7 jar包和slf4j( http://www.slf4j.org/download.html )工具包添加到构建路径中。项目结构如下图所示 -
以下是使用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...
输出文件内容如下所示 -
¥ 我要打赏
纠错/补充
收藏
下一篇:哥,这回真没有了
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。
java缩小pdf,如何使用Java缩小PDF文档中的内容?相关推荐
- java文档打印_java 如何读取文档中的内容 并打印
java 如何读取文档中的内容 并打印 关注:230 答案:2 信息版本:手机版 电脑版 解决时间 2021-01-25 16:31 提问者非莪莫属 2021-01-25 04:31 java 如 ...
- word中添加java代码怎么写_Java如何在word文档中写一个段落?
在Java编程中,如何在word文档中写一个段落? 注意:需要访问网址:http://poi.apache.org/download.html , 下载一个Apache POI软件包.这里下载最新版本 ...
- 使用java将多种类型的文件如Word、PDF、JPG汇总到一个文档中(Word或者PDF)
// 以下为两个文件的代码: 可直接下载运行,下载页面:(http://download.csdn.net/detail/lmf462696585/8800097)执行文件是WordUtil4.jav ...
- java 替换word文档中的内容
文章内容来源: https://www.jb51.net/article/250141.htm#_label1 在maven项目的pom.xml里引入 <dependencies> < ...
- java dom xpath_Java:在org.w3c.dom文档中获取元素的xpath
我写了我想要达到的目标.但是,getElementIdx()函数不会返回正确的计数. getPrevIoUsSibling()存在问题,但我不知道为什么. public static String g ...
- java excel 模板 替换_替换WORD/EXCEL模板文档中的内容并下载java
/** 案件模板下载 * **/ public static voidgenerateFile(HttpServletRequest request,HttpServletResponse respo ...
- java word上传下载_JSP实现word文档的上传,在线预览,下载
前两天帮同学实现在线预览word文档中的内容,而且需要提供可以下载的链接!在网上找了好久,都没有什么可行的方法,只得用最笨的方法来实现了.希望得到各位大神的指教.下面我就具体谈谈自己的实现过程,总结一 ...
- 如何翻译英文PDF?如何翻译英文word文档?
如何翻译英文PDF?如何翻译英文word文档? 无论是写论文的学生,还是查阅需求文档的程序猿,都会接触各种英文的文档.大部分人的英语水平,在面对满是专业词汇的文献时想必都是一败涂地.现在市面上的一些翻 ...
- java中用流提取文档中的文字,语言实现从word文档中提取文本
word中提取中文 打开Word,CTRL+F打开"查找替换"对话框. 点击下方的"查找替换"对话框的"高级"按钮. 点击"特殊字 ...
- Java 读取Word文档中的文本内容
这篇文章将介绍如何使用Free Spire.Doc for Java组件在Java应用程序中读取Word文档的文本内容.Free Spire.Doc for Java提供了两种方法来读取Word文档中 ...
最新文章
- RDKit | 可视化官能团, 分子聚类, 相似图, 化合物高亮和骨架网络
- 网易伏羲三项研究入选CVPR:AI感知表情能力将达到人类水平
- Linux下php5.3编译oracle客户端
- golang 判断文件或文件夹是否存在
- python多态的概念_python中的多态
- tf.reshape的-1的错误理解
- avenue在科研文章中的意思
- Redis 新特性篇:100% 掌握多线程模型
- 后通用芯片时代: 专用芯片兴起背后的经济学
- 第三回 Bootstrap3.x 起步
- sqlyog怎么查找表_sqlyog各种搜索方法
- java 社招 简历_招聘java简历模板
- STM32-实现us延时
- vulnhub靶机渗透 | It's October
- Ubuntu系统安装及常用软件设置
- gh-ost修改数据量较大表结构实战
- React Native UI渲染流程分析(Android)
- 【微信小程序】Java岗面试12家大厂成功跳槽
- 市审计局充分利用大数据助力扶贫和“十个全覆盖”审计工作
- Category的用法
热门文章
- iOS底层:PAGEZERO的作用
- 2、开关灯、选项卡、隔行换色
- JDBC中的Statement和PreparedStatement的差别
- Codevs No.1553 互斥的数
- 【Andrioid】在Gradle编译时生成一个不同的版本号,动态设置应用程序标题,应用程序图标,更换常数...
- 【C语言】03-第一个C程序代码分析
- 图像处理:同态滤波(Homomorphic filter)
- 王者荣耀服务器维护七月三号,王者荣耀3月23日更新维护公告 自然之灵拼图活动开启...
- typescript面试题_vue 248+个知识点(面试题)为你保驾护航
- Android 动态调试和JEB启动调试命令