如何用Java优化PDF


如前所述,PDF是保存,共享和保护大小文档的理想文件格式。它与大多数操作系统的高度兼容性使其在大多数用户中广受欢迎,可以与不同的各方共享信息。此外,它还提供了一个更静态的平台来处理诸如合同和手册之类的重要文档,因为可以采取措施来防止对文件的任何不必要的访问或编辑。

但是,对于此类大型且高度复杂的文件,不同的系统可能难以上载,下载和阅读文档格式。这可能会导致文件损坏或增加加载时间,从而降低工作效率。因此,简化大型PDF文件可以使在日常操作中定期使用此格式的组织受益匪浅。

通过以下API,您可以通过三种不同的方式来优化PDF文件:减小文件大小,线性化内容以及将常见PDF文件转换为PDF / A。使用这些工具,您将简化最大文档的保存和共享,并提高组织的整体生产力。

要开始使用这些API中的任何一个,您首先需要安装SDK库,这可以通过Maven或Gradle完成。要与Maven一起安装,您将需要在pom.xml中向存储库添加一个Jitpack引用:

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

然后,您可以添加对依赖项的引用:

<dependencies>
<dependency>
    <groupId>com.github.Cloudmersive</groupId>
    <artifactId>Cloudmersive.APIClient.Java</artifactId>
    <version>v3.54</version>
</dependency>
</dependencies>

要使用Gradle进行安装,您可以在存储库末尾的root build.gradle中添加引用:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

然后,在build.gradle中添加依赖项:

dependencies {
        implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v3.54'
}

一旦完成安装,就可以调用该函数。第一个功能将通过优化PDF的内容来减小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.EditPdfApi;
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");
EditPdfApi apiInstance = new EditPdfApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
try {
    byte[] result = apiInstance.editPdfReduceFileSize(inputFile);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling EditPdfApi#editPdfReduceFileSize");
    e.printStackTrace();
}

这将返回可下载的PDF文件,然后您可以根据需要使用它。为确保此API正常运行,您需要确保满足某些要求:

  • PDF文件有效且输入正确。
  • 您已经输入了API密钥。可以在Cloudmersive网站上免费检索此信息,整个API库每月提供800次调用。 如果您要通过互联网发送或下载大文件,则下一个API将线性化您的PDF文件以进行流式下载。这样,您就可以在下载文件时查看其内容,而不必等待很长的加载时间(否则可能会很长)。像以前一样,您将需要首先安装SDK库;然后,您可以调用该函数:
// 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.EditPdfApi;
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");
EditPdfApi apiInstance = new EditPdfApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
try {
    byte[] result = apiInstance.editPdfLinearize(inputFile);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling EditPdfApi#editPdfLinearize");
    e.printStackTrace();
}

同样,这将返回具有优化内容的文件,可供使用。

最后,最后一个API会将任何PDF文件转换为PDF / A,这是一种标准化的PDF格式,在整个系统中具有更高的可用性。这样可以防止在计算机之间发送文件时文件损坏或丢失任何格式。您还可以选择为PDF / A文件选择符合级别:对于PDF / A-1b,选择“ 1b”,对于PDF / A-2b,选择“ 2b”。默认值为PDF / A-1b。

// 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.EditPdfApi;
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");
EditPdfApi apiInstance = new EditPdfApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
String conformanceLevel = "conformanceLevel_example"; // String | Optional: Select the conformance level for PDF/A - specify '1b' for PDF/A-1b or specify '2b' for PDF/A-2b; default is PDF/A-1b
try {
    byte[] result = apiInstance.editPdfConvertToPdfA(inputFile, conformanceLevel);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling EditPdfApi#editPdfConvertToPdfA");
    e.printStackTrace();
}

使用返回的PDF / A文件,您不必担心与其他用户共享文件时文件的外观是否与设计时一样。

使用这些功能,您可以根据需要轻松地简化和优化PDF文档。如果您对使用这些API有任何疑问,或者对其他API解决方案有疑问,可以访问Cloudmersive网站,我们的团队非常乐意为您提供所需的帮助。


原文链接:http://codingdict.com