合并 Word 文档

在 Java 中在线合并 Word 文档

在分布式团队环境中,团队的不同成员可能会处理文档的某些模块,这些模块需要组合以生成统一版本。可以使用各种应用程序执行此操作,但合并 word 文档的手动步骤可能是一项乏味的活动。所以为了有一个更可行的解决方案,我们将讨论如何使用Java SDK合并word文档的细节。

合并文档 API

Aspose.Words Cloud SDK for Java 使您能够在 Java 应用程序中引入 Word 文档创建、操作和转换功能。它还提供了组合 word 文档以生成单个统一输出的功能。现在,为了使用 SDK,请在您的 maven 构建类型的 pom.xml 文件中添加以下详细信息。

<repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>https://repository.aspose.cloud/repo/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-words-cloud</artifactId>
        <version>22.5.0</version>
    </dependency>
</dependencies>

安装后,我们需要使用 GitHub 或 Google 帐户在 Aspose.Cloud dashboard 上注册一个免费帐户,或者只需注册并获取您的客户凭据。

在 Java 中合并 Word 文档

请按照下面给出的说明使用 Java 代码片段组合 Word 文档。

  • 第一步是创建 WordsApi 类的对象,同时将客户端 ID 和客户端机密详细信息作为参数传递
  • 其次,创建一个 DocumentEntry 的对象,它接受要合并的文档,然后将 setImportFormatMode(..) 方法的值设置为 KeepSourceFormatting
  • 现在创建一个 ArrayList 对象并在其中添加 DocumentEntry 对象
  • 然后创建一个以 ArrayList 对象为参数的 DocumentEntryList 对象
  • 最后但同样重要的是,创建一个 AppendDocumentOnlineRequest 对象,它将源 Word 文件和 DocumentEntryList 对象作为参数
  • 最后,调用API的appendDocumentOnline(..)方法合并文档,并将输出结果保存在云存储中
For more examples, please visit https://github.com/aspose-words-cloud/aspose-words-cloud-java

try
    {
    // 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // 如果 baseUrl 为 null,WordsApi 使用默认的 https://api.aspose.cloud
    WordsApi wordsApi = new WordsApi(clientId, clientSecret, null);

    String firstFile = "Resultant.docx";
    String documentToAppend = "TableDocument.doc";
    String resultantFile = "MergedFile.docx";
    
    // 读取输入 Word 文档的所有字节
    byte[] requestDocument = Files.readAllBytes(Paths.get("c://Downloads/"+firstFile).toAbsolutePath());
    
    DocumentEntry requestDocumentListDocumentEntries0 = new DocumentEntry();
    requestDocumentListDocumentEntries0.setHref("c://Downloads/"+documentToAppend);
    requestDocumentListDocumentEntries0.setImportFormatMode("KeepSourceFormatting");
     
    ArrayList<DocumentEntry> requestDocumentListDocumentEntries = new ArrayList<DocumentEntry>();
    requestDocumentListDocumentEntries.add(requestDocumentListDocumentEntries0);

    DocumentEntryList requestDocumentList = new DocumentEntryList();
    requestDocumentList.setDocumentEntries(requestDocumentListDocumentEntries);

    AppendDocumentOnlineRequest appendRequest = new AppendDocumentOnlineRequest(requestDocument, requestDocumentList, null, null, null, resultantFile, null, null);
    wordsApi.appendDocumentOnline(appendRequest);
    
    System.out.println("Combine Word Documents in Java sucessfull !");
    }catch(Exception ex)
    {
        System.out.println(ex);
    }

使用 cURL 命令合并 Word 文档

cURL 命令还可用于访问任何平台上的 REST API。因此,在本节中,我们将详细讨论如何使用 cURL 命令合并 word 文档。现在第一步是生成 JSON Web Token (JWT),所以请在终端应用程序中执行以下命令。

 curl -v "https://api.aspose.cloud/connect/token" \
 -X POST \
 -d "grant_type=client_credentials&client_id=a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4&client_secret=d87269aade6a46cdc295b711e26809af" \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Accept: application/json"

一旦我们有了 JWT Token,请执行以下命令来合并云存储中已有的 word 文档。

curl -v -X PUT "https://api.aspose.cloud/v4.0/words/ComparisonResult.docx/appendDocument?destFileName=MergedFile.docx" \
-H  "accept: application/json" \
-H  "Authorization: Bearer <JWT Token>" \
-H  "Content-Type: application/json" \
-d "{\"DocumentEntries\":[{\"Href\":\"SampleMailMergeTemplate.docx\",\"ImportFormatMode\":\"KeepSourceFormatting\"}],\"ApplyBaseDocumentHeadersAndFootersToAppendingDocuments\":true}"

结论

我们已经讨论了如何在 Java 中组合 word 文档以及使用 cURL 命令的细节。请注意,SDK 的完整源代码可以从 GitHub 下载。此外,为了探索 API 功能,您可以考虑通过 swagger 接口 访问它。

如果您有任何进一步的疑问或遇到任何困难,请访问免费支持论坛

相关文章

我们强烈建议浏览以下博客