OFD文件转换成PDF格式,Java语言实现
我个人的思路大致是这样的。首先在指定路径创建一个文件夹,然后每次要转换的时候都把OFD文件统一放到指定的文件夹内进行转换。这样写代码的时候只需要循环遍历一下就行。然后其他就是一些字符串的操作。
工具如下
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>OFDParser</groupId>
<artifactId>OFDParser</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
<packaging>jar</packaging>
<name>OFDParser</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<itext.version>7.1.3</itext.version>
</properties>
<dependencies>
<dependency>
<groupId>org.ofdrw</groupId>
<artifactId>ofdrw-full</artifactId>
<version>1.8.6</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.4</version>
</dependency>
</dependencies>
</project>
代码如下
import org.ofdrw.converter.GeneralConvertException;
import org.ofdrw.converter.ImageMaker;
import org.ofdrw.reader.OFDReader;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import static org.ofdrw.converter.ConvertHelper.ofd2pdf;
//PDF
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
/**
* ofd文件工具类
*/
public class OfdUtil {
/**
* 获得文件名后缀
* @return
*/
public static String getLastFileName(String file){
String lastName = file.substring(file.length()-4,file.length()); //只扫描四位
return lastName;
}
public static String replaceOdfToPdf(String fileName){ //修改文件后缀
String temp = fileName.substring(0,fileName.length()-4);
temp += ".pdf";
return temp;
}
public static void main(String[] args) throws IOException {
try{
//这个路径是固定的路径,以后每次转换的时候都统一放这里,转换完再剪走就行
File []file = new File("C:/Users/Administrator/Desktop/test").listFiles(); //创建file对象
for(int i = 0; i < file.length; i++){
String fileName = file[i].getName();
String lastName = getLastFileName(fileName);
String fileLoad = file[i].getPath();
if(lastName.equals(".ofd")){
String temp = replaceOdfToPdf(fileName);
String newFileName = fileLoad + temp;
ofd2pdf(fileLoad ,newFileName);
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}