缩小pdf页面

  • 目的
  • 问题
  • build.gradle
  • 代码

目的

jpg转的pdf页面太大,其它页面都是a4,所以需要转换。用的spire.pdf.free。

问题

看了下官方例子,不好用,根本没有对原页面进行缩小,只是截取了原页面的一部分。官方例子如下:

                //设置新文档第二页的页边距为10PdfMargins margins = new PdfMargins(10);//设置新文档第二页的页面大小为A2PdfPageBase newPage = newDoc.getPages().add(PdfPageSize.A2, margins);//调整画布,设置内容也根据页面的大小进行缩放double wScale = (PdfPageSize.A2.getWidth() - 20) / PdfPageSize.A4.getWidth();double hScale = (PdfPageSize.A2.getHeight() - 20) / PdfPageSize.A4.getHeight();newPage.getCanvas().scaleTransform(wScale, hScale);//复制原文档的内容到新文档newPage.getCanvas().drawTemplate(page.createTemplate(), new Point2D.Float());

后查看api,发现有drawTemplate(PdfTemplate template, java.awt.geom.Point2D location, java.awt.geom.Dimension2D size),一切就很简单了。

build.gradle

   maven {//allowInsecureProtocol = true //gradle7.0.2要这个url'http://repo.e-iceblue.cn/repository/maven-public/'}
 implementation('e-iceblue:spire.pdf.free:3.9.0')

代码

private static void processSingle(File srcPdf,File dest) throws IOException {File destPdf=new File(dest,srcPdf.getName());//创建PdfDocument对象PdfDocument originalDoc = new PdfDocument();//加载PDF文件originalDoc.loadFromFile(srcPdf.getAbsolutePath());//创建一个新的PdfDocument实例PdfDocument newDoc = new PdfDocument();//遍历所有PDF 页面    int totalCount=originalDoc.getPages().getCount();for (int i = 0; i <totalCount; i++) {PdfPageBase page = originalDoc.getPages().get(i);PdfMargins margins = new PdfMargins(0);PdfPageBase newPage = newDoc.getPages().add(PdfPageSize.A4, margins);newPage.getCanvas().drawTemplate(page.createTemplate(), new Point2D.Float(),PdfPageSize.A4);}//保存PDFnewDoc.saveToFile(destPdf.toString()); }

使用spire.pdf.free缩小过大的pdf页面相关推荐

  1. python统计分析pdf下载_Python金融大数据分析PDF高清文档下载

    Python凭借其简单.易读.可扩展性以及拥有巨大而活跃的科学计算社区,在需要分析.处理大量数据的金融行业得到了广泛而迅速的应用,并且成为该行业开发核心应用的shouxuan编程语言.<Pyth ...

  2. 如何将多个PDF文件合并成一个大的PDF文件

    什么是PDF合并 PDF是目前大家在工作学习中用的比较多的一种文档格式,大家有时候需要将多个PDF文件合成一个大的PDF,然而一般的PDF软件只能读不能写,这个时候您需要借助一些工具来实现PDF的合并 ...

  3. aspx html 转换 pdf,如何将ASPX文件转换为PDF文件?

    三.使用都叫兽™PDF转换软件编辑PDF文件 1.都叫兽™PDF转换软件是什么? 都叫兽™PDF转换器,是一款集PDF文件编辑与格式转换为一体的多功能工具类软件.该软件集成先进的OCR(光学字符识别) ...

  4. cdr文件过大导出pdf打不开_PDF文件过大怎样压缩?这才是压缩PDF最简单的方法

    PDF文件过大怎样压缩?不管什么格式的文件,在传输过程中都会受到一些限制,其中出现最多的便是文件大小限制.过大的文件超过限制就无法传输了,这样便需要对文件进行压缩.那么你知道怎么压缩PDF文件吗?今天 ...

  5. 教你如何简单压缩过大的PDF文件

    PDF文件现在广泛应用于各大办公场所,只要有办公的地方就可以看到PDF文件,文件都有大小之分,PDF文件也不例外,遇到过大的文件该怎么呢,小编教你如何简单压缩过大的PDF文件! 操作方法要借助压缩软件 ...

  6. pdf如何压缩?怎么把pdf大小缩小?

    PDF文件太大的话,我们在发送或是存储时就不太方便,这时候就需要对PDF文件压缩,那么如何进行pdf压缩(https://www.yasuotu.com/pdfyasuo)呢?最快速的方法就是使用pd ...

  7. 【报告分享】中国移动互联网2021年度大报告.pdf(附下载链接)

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年1月份热门报告盘点 [报告分享]2021-2022元宇宙报告.pdf 2022年私域运营机 ...

  8. 【报告分享】2021中国移动互联网秋季大报告.pdf(附下载链接)

    省时查方案-专业.及时.全面的营销策划方案库 省时查报告-专业.及时.全面的行研报告库 大家好,我是文文(微信号:sscbg2020),今天给大家分享QuestMobile于2021年11月发布的&l ...

  9. 【干货】智能汽车行业“十年十大预测”.pdf(附下载链接)

    大家好,我是文文,今天给大家分享天风证券于2021年6月份发布的干货报告<智能汽车行业"十年十大预测".pdf>.关注新能源汽车.自动驾驶.智能汽车的伙伴别错过啦! 另 ...

最新文章

  1. 高通创投在中国区的投资重点,目前主要聚焦在AI+5G、XR+5G、机器人/自动驾驶+5G、物联网+5G四个方面。
  2. 服务器开发的一些框架或者工具收集
  3. c mysql 时间段查询_mySql 时间段查询
  4. java中怎样创建多个对象,java中StringBuilder.appent方法创建几个对象
  5. Mac模拟慢速网络 - Network Link Conditioner 安装和使用
  6. windows2003添加普通用户的远程桌面权限
  7. 【PMP】组织结构类型
  8. 使用系统视图发现SQL Server实例信息
  9. Oracle查看被锁的表和解锁[转]
  10. 2D开源游戏引擎调研报告(一)
  11. GitLab服务更换ip后项目地址ip如何修改
  12. 同个网络的两台计算机怎么设置局域网,两台电脑怎么样连在同一个局域网
  13. C++ strtok函数详解
  14. java workflow 教程_建议收藏,从零开始创建一个Activiti工作流,手把手教你完成...
  15. LeetCode刷题笔记2——数组2
  16. css只设置背景图片半透明,css3实现背景图片半透明内容不透明的方法示例
  17. 网络安全防守方应该遵循得建设原则有哪些
  18. 怎么样使用vbs 恶搞包装让人看不出
  19. 微服务高性能高可用架构设计
  20. 果园机器人的课文_《果园机器人》课文原文

热门文章

  1. tf.nn,tf.layers, tf.contrib模块介绍
  2. ROC曲线的通俗理解
  3. canvas-球体动画运动
  4. 【MATLAB】MATLAB 仿真数字基带传输系统 — 双极性基带信号(余弦滚降成形脉冲)的眼图
  5. 每日一问-ChapGPT-20230416-中医基础-经络
  6. 热爱生活阳光自信才能让自己快乐
  7. 侍魂qq最新服务器,2018腾讯发布火影、圣斗士星矢、侍魂等20款新手游
  8. 使用CSS制作斜边矩形原理分析
  9. 微信公众号支付宝授权
  10. Prometheus:Java调用PromQL工具类(瞬时数据查询)