本文章向大家介绍将PDF页面大小转为A4格式---itextPdf实现,主要包括将PDF页面大小转为A4格式---itextPdf实现使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

将PDF页面大小转为A4格式(itextPdf实现)

1. 引入相关jar包

<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.2</version></dependency>

2. 实现代码

package com.fan.study.common.util;import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;import java.awt.geom.AffineTransform;
import java.io.FileOutputStream;public class PdfConvertA4Utils {/*** @Param source 源文件* @Param target 转换后文件* @Description 将PDF转为A4格式* @Date: 2021/4/25**/private static void convert(String source, String target) {try {PdfReader pdfReader = new PdfReader(source);Document doc = new Document();PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(target));doc.open();PdfContentByte cb = writer.getDirectContent();for(int i = 1; i <= pdfReader.getNumberOfPages(); i++){PdfImportedPage page = writer.getImportedPage(pdfReader, i);float width = page.getWidth();float height = page.getHeight();if(height > width) {//横向doc.setPageSize(PageSize.A4);doc.newPage();//计算比例float widthScale = getWidthScale(width);float heightScale = getHeightScale(height);//addTemplate方法中有6个float类型的参数,是通过二维图像仿射变换得到的//cb.addTemplate(page, new AffineTransform(widthScale, 0, 0, heightScale,0,0));//二维图像仿射变换:https://www.cnblogs.com/v2m_/archive/2013/05/09/3070187.htmlcb.addTemplate(page, widthScale, 0, 0, heightScale,0,0);} else {//纵向doc.setPageSize(new com.itextpdf.text.Rectangle(PageSize.A4.getHeight(), PageSize.A4.getWidth()));doc.newPage();float widthScale = getWidthScale(height);float heightScale = getHeightScale(width);cb.addTemplate(page, widthScale, 0, 0, heightScale,0,0);}}doc.close();} catch (Exception ex) {ex.printStackTrace();}}private static float getWidthScale(float width) {float scale = PageSize.A4.getWidth() / width;return scale;}private static float getHeightScale(float height) {float scale = PageSize.A4.getHeight() / height;return scale;}
}

itextPdf~将PDF页面大小转为A4格式相关推荐

  1. PDF页面大小不一致的解决办法

    经常遇到一个PDF文件,页面大小不一致.看起来很恼火.下面给大家介绍两种解决办法: 方法一: 1.在PDF文件的页面中找到打印,点开打印的对话框.如下图: 首先选择打印机名称:Adobe PDF 打印 ...

  2. PDF页面大小不一致怎么办?

    在PDF格式转换的过程中遇到各种问题,比如转换出现乱码.转出来的文件是图片无法编辑.转换时提示文件权限不足等等,今天我就来和大家介绍pdf文档页面大小不一致常用两种种解决方. 第一种方法:通过文档-裁 ...

  3. C# iText 7 切分PDF,处理PDF页面大小

    一.itext 我要使用itext做一个pdf的页面大小一致性处理,然后再根据数据切分出需要的pdf. iText的官网有关于它的介绍,The Leading PDF Library for Deve ...

  4. 在Adobe Acrobat Pro调整PDF页面大小(使得页面一样大)

    请不要使用"印刷制作"--"设置页边框"这个方法,因为很有可能会出现特定页面比例不能修改的情况,而且好像只能改大, 不能改小,总之不是一个好方法 1.点击&qu ...

  5. 怎样修改PDF文档,PDF页面大小怎么设置

    在很多的时候,我们都会使用到PDF文件,对于PDF文件,不熟悉的小伙伴,还是会头疼的,而熟悉的小伙伴会知道,修改编辑PDF文件,是需要使用到PDF编辑器的,在编辑文件的时候,文件过大需要进行裁剪应该怎 ...

  6. Java更改 PDF 页面大小

    在日常工作中,我们可能经常面临更改 PDF 页面大小的情况. 例如,一个包含不同大小页面的合并 PDF 文件,我们需要将页面大小调整为相同大小以便于阅读和打印. 在本文中,将详细为您介绍在 Java ...

  7. python 生成pdf页面大小_(Python)更改使用xtopd生成的PDF文件的页面大小和格式

    我想用Python转换xlsx.我使用tablib和xtopdf模块构建了一个结构良好的表.工作出色!不幸的是,内容不适合一个pdf页面.所以我想把页面大小和格式改成水平A3.但我不知道这怎么可能.我 ...

  8. PDF页面大小不一样,怎样调整一致?

    PDF尺寸如何修改?PDF是Abode公司旗下开发用于跨平台支持多媒体集成信息的出版和发布,尤其是提供对网络信息发布支持的文档格式。使用PDF文档时,可能会遇到文档的纸张大小不一致,总体效果肯定很差, ...

  9. 编辑器的合并用不了_为什么图片和PDF合并后的PDF页面大小不一

    很多时候我们需要将图片和PDF文件合并后变成一个PDF文件,但经常会出现合并后的新PDF文件页面大小不一,这是怎么回事呢?要怎么处理呢? 可能有些小伙伴还不知道如何将图片和PDF进行合并,先简单说一下 ...

最新文章

  1. 用C#来开发CAD插件,含源代
  2. 【数据挖掘】神经网络 后向传播算法( 向后传播误差 | 输出层误差公式 | 隐藏层误差公式 | 单元连接权值更新公式 | 单元偏置更新公式 | 反向传播 | 损失函数 | 误差平方和 | 交叉熵 )
  3. Linux系统设置定时任务 1
  4. userscript.user.js 文件头
  5. 计算机协会知识讲座,计算机协会第一期电脑维修讲座顺利开展
  6. spring原理学习
  7. Android 开发中常见的Eclipse排版设置
  8. 转:孩子,上学去!乖
  9. 【转】支持向量机回归模型SVR
  10. 企业云网络安全解决方案的10条评估标准
  11. 使用“#define _GNU_SOURCE” 是什么意思?
  12. html网页背景图片 菜鸟教程,CSS3 背景
  13. 打开或关闭 Windows 功能
  14. Android 短视频 SDK 转场特效的音视频同步分析
  15. WiFi穿墙手册:解读天线、dbi、发射功率和无线信号的关系
  16. 谷歌浏览器最小化后打开黑屏
  17. jSignature 插件实现手写电子签名
  18. 3d打印机喷头出现堵丝问题
  19. 备忘1:爬取热门微博评论
  20. 开学季准备什么蓝牙耳机好?五款性价比高的蓝牙耳机品牌推荐

热门文章

  1. 美团数据平台Kerberos优化实战
  2. 论文小综 | 文档级关系抽取方法(下)
  3. 征稿 | 2019年全国知识图谱与语义计算大会(CCKS2019)第二轮征稿启事
  4. tensorflow3 非线性回归、mnist、简单神经网络
  5. abp radio表单元素 消失了
  6. 如何把我的Java程序变成exe文件?
  7. python 加密方法总结
  8. 用javascript生成指定范围的随机数
  9. 解决spring和struts配合问题
  10. 项目:如何快速实现电脑间大文件(lichee.tar.gz)互传?