如何用Java将ODF文件转换成PDF

到了挑选和下载一套办公应用程序的时候,我们可以预计MS Office套件将主导对话。MS Office软件包中包含的每个应用程序都配备了几十种强大、直观的功能以及所有OpenXML文件格式–。DOCX, 。XLSX、PPTX等。–可以承担巨大的数据密集型编辑和开发人员定制的负担,同时通过有效的划分和无损压缩保持相对较小的文件大小。

然而,OpenXML文件并不是唯一用XML表示并压缩到方便的无损文件容器中的文件。Apache OpenOffice套件起源于2006年,大约在OpenXML格式成为MS Office文件的标准时,该套件还提供基于XML的无损Zip压缩文件结构,当考虑成本时,该选项是OpenXML文件的一个很好的替代选择。

对于普通的商业用户来说,Open Office文件提供的基本内容创建功能与MS Office文件基本相同,只有在考虑到MS Office提供的无数内置连接和兼容性功能(及其更广泛的商业应用程序套件)时,关键的权衡因素才显而易见。另一方面,对于构建应用程序和工作流的普通开发人员来说,这些应用程序和工作流会以某种形式自动与office文档交互并对其进行更改可扩展标记语言基于的文件结构才是真正重要的。在任何文件处理应用程序的逻辑中,利用一套标准化的现有开发人员工具来解压缩和操作基于XML的文件内容是很容易的。就像MS Office环境中的开发人员可以使用自定义代码或API解决方案来解压缩DOCX文件并提取文档中嵌套的所有图像文件的副本一样,OpenOffice环境中的开发人员也可以使用类似的XML数据结构知识对ODT文件做基本相同的事情。

也许具有讽刺意味的是,OpenOffice文件和MS Office文件之间最实际的相似之处之一是它们作为最终产品固有的缺乏可展示性。当OpenOffice用户结束他们的数据分析、内容编写或演示项目时,任何查看其最终内容的人都不太可能打开。ODT。混乱办或者。ODP文件这样做-就像他们不会查看MS Office内容一样。DOCX、XLSX或。PPTX格式。他们打开这些文件的矢量或光栅PDF版本的最终内容的可能性极高——当然,这是有充分理由的。一旦转换为PDF,该内容就不会被轻易更改或窃取。此外,无论是在浏览器客户端还是在PDF阅读器中查看,PDF的外观都远胜于在其原始处理应用程序中打开的嘈杂、正在处理的内容。

就像在MS Office环境中工作的开发人员一样,在OpenOffice环境中工作的开发人员必须能够获得快速、安全且易于使用的解决方案,以便在用户需要时将最终的OpenOffice内容转换为PDF。为此,我将演示三个免费使用的API,旨在将所有主要的开放文档格式文件类型转换为PDF。此外,本教程将在页面下方提供现成的代码示例,以简化构建API调用的过程。

示范
以下每个API解决方案都允许开发人员转换。ODT。混乱办。使用最少的Java 语言(一种计算机语言,尤用于创建网站)安全的内存请求中的代码示例,完成后释放所有文档数据。每个请求都可以使用一个自由层API密钥进行授权,每个月最多允许800次API调用。

为了开始构建我们的API请求,我们可以从安装Java SDK开始。用…安装专家,让我们首先在pom.xml中添加对存储库的引用:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

接下来,让我们在pom.xml中添加对依赖关系的引用:

<dependencies>
<dependency>
    <groupId>com.github.Cloudmersive</groupId>
    <artifactId>Cloudmersive.APIClient.Java</artifactId>
    <version>v4.25</version>
</dependency>
</dependencies>

SDK安装完成后,我们可以使用以下代码将我们的ODT文件转换为PDF:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDocumentApi;

ApiClient defaultClient = Configuration.getDefaultApiClient();

// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");

ConvertDocumentApi apiInstance = new ConvertDocumentApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
try {
    byte[] result = apiInstance.convertDocumentOdtToPdf(inputFile);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling ConvertDocumentApi#convertDocumentOdtToPdf");
    e.printStackTrace();
}

我们可以使用以下代码将ODS文件转换为PDF:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDocumentApi;

ApiClient defaultClient = Configuration.getDefaultApiClient();

// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");

ConvertDocumentApi apiInstance = new ConvertDocumentApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
try {
    byte[] result = apiInstance.convertDocumentOdsToPdf(inputFile);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling ConvertDocumentApi#convertDocumentOdsToPdf");
    e.printStackTrace();
}

最后,我们可以使用以下代码将我们的ODP演示文稿转换为PDF:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDocumentApi;

ApiClient defaultClient = Configuration.getDefaultApiClient();

// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");

ConvertDocumentApi apiInstance = new ConvertDocumentApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
try {
    byte[] result = apiInstance.convertDocumentOdpToPdf(inputFile);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling ConvertDocumentApi#convertDocumentOdpToPdf");
    e.printStackTrace();
}

我们将在API响应中收到新PDF文件的编码,然后我们可以使用该编码创建新文件。

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值