PDF 转图片并插入到 EXCEL 再转PDF
pom.xml 引用
(图片来源网络,侵删)
com.aspose
aspose-cells
21.11
com.aspose
aspose-words
21.11
org.apache.pdfbox
pdfbox
2.0.24
代码 PDF 转 图片 其中Excel 转PDF 可以参考 上一篇
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.IoUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.CustomCellWriteHeightConfig;
import com.CustomPictureHandler;
import com.PictureModel;
import com.TtIncomingInspectionReportExcel;
import com.AsposeCellsUtil;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class TestMain {
public static void main(String[] args) {
Long start = new Date().getTime();
try{
FileInputStream fis = new FileInputStream("E:\\workData\\ZYInspectionFillReport.xlsx");
FileOutputStream fos = new FileOutputStream("E:\\workData\\old.xlsx");
TtIncomingInspectionReportExcel reportExcel = new TtIncomingInspectionReportExcel();
ExcelWriter excelWriter = EasyExcel.write(fos)
.registerWriteHandler(new CustomCellWriteHeightConfig())
.withTemplate(fis)
.build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
//开启自动换行,自动换行表示每次写入一条list数据是都会重新生成一行空行,此选项默认是关闭的,需要提前设置为true
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
excelWriter.fill(reportExcel.getClassList(), fillConfig, writeSheet);
List pictureModelList = getPictureModels();
//设置 COA图片
if(CollectionUtil.isNotEmpty(pictureModelList)){
WriteSheet writeSheetCoa = EasyExcel.writerSheet("COA文件")
.registerWriteHandler(new CustomPictureHandler(pictureModelList, "COA文件"))
.build();
//对象
excelWriter.fill(reportExcel, writeSheetCoa);
}
//对象
excelWriter.fill(reportExcel, writeSheet);
excelWriter.finish();
reportExcel = null;
IoUtil.close(fis);
IoUtil.close(fos);
//创建Workbook 实例并加载示例文档
String copyFilePath = "E:\\workData\\old.pdf";
AsposeCellsUtil.excelToPdf("E:\\workData\\old.xlsx", new FileOutputStream(copyFilePath));
}catch (Throwable t){
t.printStackTrace();
}
Long end = new Date().getTime();
System.out.println(end - start);
}
private static List getPictureModels(){
List data = new ArrayList();
String pdfPath = "E:\\BaiduNetdiskDownload\\WXWork\\202405080027_戴陆文2的试用期员工转正述职评分(数字产品BG).pdf";
try{
File pdf = new File(pdfPath);
PDDocument document = PDDocument.load(new FileInputStream(pdf));
List images = new ArrayList();
// 创建PDF渲染器
PDFRenderer pdfRenderer = new PDFRenderer(document);
for (int i = 0; i
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。
