我有一个 java 桌面服务。它目前使用速度模板来创建格式化的 RTF 文件。有很多这样的模板,更改它们(或从速度移动)不是一种选择。
我正在寻找一种使用 java 代码将 RTF 文件更改为 PDF 的快速简便的方法。我已经检查了以下途径。1.iText 2.OpenOffice 3.JodConverter
但是,他们都是 PDF 创建者。我需要一些可以将 RTF 转换为 PDF 的东西。请帮忙。谢谢。
我有一个 java 桌面服务。它目前使用速度模板来创建格式化的 RTF 文件。有很多这样的模板,更改它们(或从速度移动)不是一种选择。
我正在寻找一种使用 java 代码将 RTF 文件更改为 PDF 的快速简便的方法。我已经检查了以下途径。1.iText 2.OpenOffice 3.JodConverter
但是,他们都是 PDF 创建者。我需要一些可以将 RTF 转换为 PDF 的东西。请帮忙。谢谢。
我长期以来一直在谷歌上搜索同一个问题,这是我的解决方案:Using documents4j and microsoft office 2010(未尝试过较新版本)(不需要在后台运行)。此解决方案将 .rtf 转换为 .pdf
POM 文件:
<dependencies>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-api</artifactId>
<version>0.2.1</version>
</dependency>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-util-conversion</artifactId>
<version>0.2.1</version>
</dependency>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-transformer</artifactId>
<version>0.2.1</version>
</dependency>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-util-all</artifactId>
<version>0.2.1</version>
</dependency>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-local</artifactId>
<version>0.2.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.8.0-beta2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.8.0-beta2</version>
</dependency>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-util-standalone</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-transformer-msoffice-word</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
</dependencies>
包括所有这些!在 .rtf 文件中,您需要其中一些用于字体和类似的东西。java中的使用示例:
import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.LocalConverter;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
/**
*
* @author Neon/Jan Madle
*/
public class NewMain {
/**
* @param args the command line arguments
* @throws java.io.FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException, IOException, InterruptedException, ExecutionException {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
InputStream in = new BufferedInputStream(new FileInputStream(System.getProperty("user.dir") + File.separator +"out.rtf"));
IConverter converter = LocalConverter.builder()
.baseFolder(new File(System.getProperty("user.dir") + File.separator +"test"))
.workerPool(20, 25, 2, TimeUnit.SECONDS)
.processTimeout(5, TimeUnit.SECONDS)
.build();
Future<Boolean> conversion = converter
.convert(in).as(DocumentType.RTF)
.to(bo).as(DocumentType.PDF)
.prioritizeWith(1000) // optional
.schedule();
conversion.get();
try (OutputStream outputStream = new FileOutputStream("out.pdf")) {
bo.writeTo(outputStream);
}
in.close();
bo.close();
}
}
希望有人觉得这很有用!
JODConverter帮助您使用 Java 将 RTF 文件转换为 PDF。最新版本可以在这里找到。
根据他们的网站,
JODConverter,Java OpenDocument 转换器,可以在不同的办公格式之间转换文档。它利用了 OpenOffice.org,它为当今可用的 OpenDocument 和 Microsoft Office 格式提供了可以说是最好的导入/导出过滤器。