制作网站学什么,设计工作室网站推荐,网站开发技术现状,漳州网络科技有限公司本文章向大家介绍将PDF页面大小转为A4格式---itextPdf实现#xff0c;主要包括将PDF页面大小转为A4格式---itextPdf实现使用实例、应用技巧、基本知识点总结和需要注意事项#xff0c;具有一定的参考价值#xff0c;需要的朋友可以参考一下。
将PDF页面大小转为A4格式…本文章向大家介绍将PDF页面大小转为A4格式---itextPdf实现主要包括将PDF页面大小转为A4格式---itextPdf实现使用实例、应用技巧、基本知识点总结和需要注意事项具有一定的参考价值需要的朋友可以参考一下。
将PDF页面大小转为A4格式itextPdf实现
1. 引入相关jar包
!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --dependencygroupIdcom.itextpdf/groupIdartifactIditextpdf/artifactIdversion5.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;}
}