在l文件中配置Maven仓库路径。
<repositories><repository><id>com.e-iceblue</id><url>/</url></repository></repositories>
然后,在l文件中指定Spire.PDF for Java的Maven依赖。
<dependencies><dependency><groupId> e-iceblue </groupId><artifactId>spire.pdf</artifactId><version>3.11.6</version></dependency>
</dependencies>
<dependencies><dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf.free</artifactId><version>3.9.0</version></dependency>
</dependencies>
h.pdf;/*** @ClassName PdfToWord* @Description: TODO* @Author yangminghao* @Date 2022/2/8 **/
import com.spire.pdf.*;
import com.aphics.PdfMargins;
slf4j.Slf4j;import javax.imageio.ImageIO;
import Dimension2D;
import java.awt.image.BufferedImage;
import java.io.*;//import com.spire.doc.Document;
//import com.spire.doc.FileFormat;/*** 把pdf转换为** @author Angin* @date 2019/3/18 0018.* .PDF%20for%20Java/*/
@Slf4j
public class PdfToWord {public static void main(String[] args) {//PDFtoimage("F:\cs\imga.pdf","png");//convertPdfToWord("F:\cs\33.pdf");//convertPdfToAll("svgs","F:\cs\33.pdf");PdfToWord pdf = new PdfToWord();pdf.PDFtoPDFA("F:\cs\test.pdf");}/*** pdf 转* @param cmd* @param pdfPath*/public void convertPdfToAll(String cmd,String pdfPath) {cmd = LowerCase();log.info("===============PDF 转 "+cmd+" 工具===========");log.info("pdf原文件地址:"+pdfPath);log.info("pdf >> "+cmd+" 转换开始》》》》》,大文件转换需要点时间,请耐心等待.............");PdfDocument pdf = new PdfDocument();pdf.loadFromFile(pdfPath);String pdfWordPath = pdfPath.substring(0, pdfPath.indexOf(".")) + ".";switch(cmd){case "word" :pdfWordPath = pdfWordPath + "docx";pdf.saveToFile(pdfWordPath, FileFormat.DOCX);break; //可选case "html" :pdfWordPath = pdfWordPath + "html";pdf.saveToFile(pdfWordPath, FileFormat.HTML);break;case "svg" ://转为单个svgpdfWordPath = pdfWordPath + "svg";pdf.saveToFile(pdfWordPath, FileFormat.SVG);break;case "svgs" ://多页pdf转为一个svgpdfWordPath = pdfWordPath + "svg";ConvertOptions().setOutputToOneSvg(true);pdf.saveToFile(pdfWordPath, FileFormat.SVG);break;case "xps" ://多页pdf转为一个svgpdfWordPath = pdfWordPath + "xps";pdf.saveToFile(pdfWordPath, FileFormat.XPS);break;
// case "ofd" ://多页pdf转为一个svg
// pdfWordPath = pdfWordPath + "ofd";
// log.info("转换后文件地址:"+pdfWordPath);
// pdf.saveToFile(pdfWordPath, FileFormat.OFD);
// break;default : //可选("不支持的文件格式》》》"+cmd);}log.info("转换后文件地址:"+pdfWordPath);pdf.close();log.info("==================转换结束 end================");}/*** pdf >> word转换*/public void convertPdfToWord(String pdfPath) {log.info("===============PDF 转 word 工具===========");log.info("pdf原文件地址:"+pdfPath);String pdfWordPath = pdfPath.substring(0, pdfPath.indexOf(".")) + ".doc";log.info("pdf >> word转换开始》》》》》,大文件转换需要点时间,请耐心等待.............");PdfDocument pdf = new PdfDocument();pdf.loadFromFile(pdfPath);pdf.saveToFile(pdfWordPath, FileFormat.DOCX);log.info("转换word后文件地址:"+pdfWordPath);pdf.close();log.info("==================转换结束 end================");}/*** pdf >> image* @param pdfPath*/public void PDFtoimage(String pdfPath,String formatName){log.info("===============PDF 转 image 工具===========");log.info("pdf原文件地址:"+pdfPath);log.info(" pdf >> image 支持的图片格式包括Jpeg, Jpg, Png, Bmp, Tiff, Gif, EMF等");log.info("pdf >> image转换开始》》》》》,大文件转换需要点时间,请耐心等待.............");PdfDocument pdf = new PdfDocument(pdfPath);BufferedImage image;for(int i = 0; i< Pages().getCount();i++){image = pdf.saveAsImage(i);
// File file = new File( String.format("ToImage-img-%d.png", i));String pdfWordPath = pdfPath.substring(0, pdfPath.indexOf("."));pdfWordPath = String.format(pdfWordPath+"-img-%d."LowerCase(), i);log.info("转换image后文件地址:"+pdfWordPath);File file = new File( pdfWordPath);try {
// ImageIO.write(image, "PNG", file);ImageIO.write(image, UpperCase(), file);} catch (IOException e) {("转换出错了。。。。。"Message());e.printStackTrace();}}pdf.close();log.info("==================转换结束 end================");}/*** pdf >>> html* @param pdfPath*/public void pdfToHtml(String pdfPath) {log.info("===============PDF 转 html 工具===========");log.info("pdf原文件地址:"+pdfPath);String pdfWordPath = pdfPath.substring(0, pdfPath.indexOf(".")) + ".html";log.info("转换 html 后文件地址:"+pdfWordPath);log.info("pdf >> html 转换开始》》》》》,大文件转换需要点时间,请耐心等待.............");PdfDocument pdf = new PdfDocument();pdf.loadFromFile(pdfPath);pdf.saveToFile(pdfWordPath, FileFormat.HTML);pdf.close();log.info("==================转换结束 end================");}/*** 读取pdf文件数据* @param pdfPath*/public void ExtractText (String pdfPath) {log.info("===============读取pdf文件数据===========");log.info("pdf原文件地址:"+pdfPath);String pdfWordPath = pdfPath.substring(0, pdfPath.indexOf(".")) + ".";log.info("读取pdf文件数据开始》》》》》,大文件转换需要点时间,请耐心等待.............");//加载测试文档PdfDocument pdf = new PdfDocument(pdfPath);//实例化StringBuilder类StringBuilder sb = new StringBuilder();//定义一个int型变量int index = 0;//遍历PDF文档中每页PdfPageBase page;for (int i= 0; i&Pages().getCount();i++) {page = Pages().get(i);//调用extractText()方法提取文本sb.actText(true));FileWriter writer;try {//将StringBuilder对象中的文本写入到txtwriter = new FileWriter(pdfWordPath+"_");writer.String());writer.flush();} catch (IOException e) {e.printStackTrace();}//调用extractImages方法获取图片for (BufferedImage image : actImages()) {//指定输出图片名,指定图片格式File output = new File(String.format(pdfWordPath+"_Image_%d.png", index++));try {ImageIO.write(image, "PNG", output);} catch (IOException e) {e.printStackTrace();}}}log.info("读取pdf文件数据地址:"+pdfWordPath);pdf.close();log.info("==================转换结束 end================");}/*** PDF转PDF/A* @param pdfPath*/public void PDFtoPDFA(String pdfPath) {log.info("===============PDF 转 Pdf_A_1_B 工具===========");log.info("pdf原文件地址:"+pdfPath);String pdfWordPath = pdfPath.substring(0, pdfPath.indexOf(".")) + "_Pdf_A_1_B.pdf";log.info("pdf >> Pdf_A_1_B 转换开始》》》》》,大文件转换需要点时间,请耐心等待.............");//加载测试文档PdfDocument pdf = new PdfDocument();pdf.loadFromFile(pdfPath);//转换为Pdf_A_1_B格式PdfNewDocument newDoc = new PdfNewDocument();newDoc.setConformance(PdfConformanceLevel.Pdf_A_1_B);PdfPageBase page;for ( int i=0;i< Pages().getCount();i++) {page = Pages().get(i);Dimension2D size = Size();PdfPageBase p = Pages().add(size, new PdfMargins(0));ateTemplate().draw(p, 0, 0);}//保存结果文件newDoc.save(pdfWordPath);log.info("转换 Pdf_A_1_B 后文件地址:"+pdfWordPath);newDoc.close();log.info("==================转换结束 end================");}}
本文发布于:2024-02-03 06:09:49,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170691178949150.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |