//============================================================
贴别注意注意:jar包版本poi-ooxml只能用3.9/3.8,这里就有问题ppt07版,转换会报错,如果用3.10.1的poi-ooxml,07的word转换报错,目前没有更好的办法解决,各位如有好办法不吝赐教,非常感谢<dependency>
<groupId>args4j</groupId>
<artifactId>args4j</artifactId>
<version>2.32</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.6</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.odftoolkit.odfdom.converter.pdf</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.itext.extension</artifactId>
<version>1.0.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/org.springframework.core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.core</artifactId>
<version>3.2.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8</version>
</dependency>
<!-- excel 2007 -->
<!-- https://mvnrepository.com/artifact/jexcelapi/jxl -->
<dependency>
<groupId>jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.4.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.5</version>
</dependency>
<!-- excel 2007 -->
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
//============================================================
package ss;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public abstract class Converter {
private final String LOADING_FORMAT = "\nLoading stream\n\n";
private final String PROCESSING_FORMAT = "Load completed in %1$dms, now converting...\n\n";
private final String SAVING_FORMAT = "Conversion took %1$dms.\n\nTotal: %2$dms\n";
private long startTime;
private long startOfProcessTime;
protected InputStream inStream;
protected OutputStream outStream;
protected boolean showOutputMessages = false;
protected boolean closeStreamsWhenComplete = true;
public Converter(InputStream inStream, OutputStream outStream, boolean showMessages, boolean closeStreamsWhenComplete){
this.inStream = inStream;
this.outStream = outStream;
this.showOutputMessages = showMessages;
this.closeStreamsWhenComplete = closeStreamsWhenComplete;
}
public abstract void convert() throws Exception;
private void startTime(){
startTime = System.currentTimeMillis();
startOfProcessTime = startTime;
}
protected void loading(){
sendToOutputOrNot(String.format(LOADING_FORMAT));
startTime();
}
protected void processing(){
long currentTime = System.currentTimeMillis();
long prevProcessTook = currentTime - startOfProcessTime;
sendToOutputOrNot(String.format(PROCESSING_FORMAT, prevProcessTook));
startOfProcessTime = System.currentTimeMillis();
}
protected void finished(){
long currentTime = System.currentTimeMillis();
long timeTaken = currentTime - startTime;
long prevProcessTook = currentTime - startOfProcessTime;
startOfProcessTime = System.currentTimeMillis();
if(closeStreamsWhenComplete){
try {
inStream.close();
outStream.close();
} catch (IOException e) {
//Nothing done
}
}
sendToOutputOrNot(String.format(SAVING_FORMAT, prevProcessTook, timeTaken));
}
private void sendToOutputOrNot(String toBePrinted){
if(showOutputMessages){
actuallySendToOutput(toBePrinted);
}
}
protected void actuallySendToOutput(String toBePrinted){
System.out.println(toBePrinted);
}
}
package ss;
import java.io.*;
import org.apache.commons.lang3.StringUtils;
/**
* Created by IntelliJ IDEA.
* User:MUZI
* Date: 2018/8/20
*/
public class ConverterToPDF {
public static void tOpdfmain() throws Exception {
String fileUrl = "F:\\doc\\image\\";
InputStream inStream = new FileInputStream(new File(fileUrl));
OutputStream outStream = null;//new FileOutputStream(new File("F:\\doc\\TEST.pdf"));
if (StringUtils.isBlank(fileUrl)) {
throw new Exception("文件路径为空,找不到该文件");
}
if (fileUrl.endsWith("doc")) {
DocToPDFConverter docToPDFConverter = new DocToPDFConverter(inStream, outStream, true, true) ;
docToPDFConverter.convert();
} else if (fileUrl.endsWith("docx")) {
DocxToPDFConverter docxToPDFConverter = new DocxToPDFConverter(inStream, outStream, true, true);
docxToPDFConverter.convert();
} else if (fileUrl.endsWith("ppt")) {
PptToPDFConverter pptToPDFConverter = new PptToPDFConverter(inStream , outStream , true , true);
pptToPDFConverter.convert();
} else if (fileUrl.endsWith("pptx")) {
PptxToPDFConverter pptxToPDFConverter = new PptxToPDFConverter(inStream , outStream , true , true);
pptxToPDFConverter.convert();
outStream = new FileOutputStream(new File(&
word03/07,ppt03/07,excel03/07,image,odt转PDF
最新推荐文章于 2022-09-07 14:24:11 发布
本文介绍如何将Word 2003/2007、PowerPoint 2003/2007和Excel 2003/2007格式的文件转换为PDF格式,以实现更方便的阅读和分享。
摘要由CSDN通过智能技术生成