<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>office file processing on Document Processing REST APIs | GroupDocs Cloud</title>
    <link>https://blog-qa.groupdocs.cloud/vi/tag/office-file-processing/</link>
    <description>Recent content in office file processing on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>vi</language>
    <lastBuildDate>Mon, 14 Sep 2026 14:29:18 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/vi/tag/office-file-processing/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Cách Kết Hợp Nhiều Tài Liệu Word trong Java</title>
      <link>https://blog-qa.groupdocs.cloud/vi/merger/how-to-combine-multiple-word-documents-in-java/</link>
      <pubDate>Mon, 14 Sep 2026 14:29:18 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/vi/merger/how-to-combine-multiple-word-documents-in-java/</guid>
      <description>Kết hợp nhiều tài liệu Word trong Java bằng cách sử dụng GroupDocs.Merger Cloud SDK. Thực hiện theo hướng dẫn từng bước này cho mã, các lệnh cURL, cài đặt và các thực tiễn tốt nhất.</description>
      <content:encoded><![CDATA[<p>Kết hợp các tệp Word một cách lập trình là một yêu cầu thường gặp khi xây dựng các ứng dụng tập trung vào tài liệu, đặc biệt là để tạo báo cáo hoặc hợp nhất hợp đồng. <a href="https://products.groupdocs.cloud/merger/java/">GroupDocs.Merger Cloud SDK for Java</a> cung cấp một thư viện đơn giản, dựa trên đám mây cho phép bạn hợp nhất các tệp <a href="https://docs.fileformat.com/word-processing/docx/">DOCX</a> mà không cần xử lý tệp ở mức độ thấp. Trong hướng dẫn này, bạn sẽ học cách kết hợp nhiều tài liệu Word trong Java, xem một ví dụ mã hoàn chỉnh, khám phá các lệnh cURL tương đương, và hiểu cách thiết lập cần thiết. Khi kết thúc, bạn sẽ sẵn sàng tích hợp việc hợp nhất tài liệu vào các dự án Java của mình.</p>
<h2 id="ví-dụ-hoạt-động-đầy-đủ-để-kết-hợp-nhiều-tài-liệu-word-trong-java">Ví dụ Hoạt động Đầy đủ để Kết hợp Nhiều Tài liệu Word trong Java</h2>
<p>Ví dụ này trình bày cách kết hợp nhiều tài liệu Word trong Java bằng cách sử dụng Merger API.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.client.ApiClient<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.client.ApiException<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.api.MergerApi<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.model.FileInfo<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.model.MergeOptions<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> java.util.ArrayList<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> java.util.List<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">public</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">CombineWordDocuments</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> <span style="color:#a6e22e">main</span><span style="color:#f92672">(</span>String<span style="color:#f92672">[]</span> args<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// Initialize the API client with your credentials
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        ApiClient apiClient <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ApiClient<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">,</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        MergerApi mergerApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> MergerApi<span style="color:#f92672">(</span>apiClient<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// List of Word documents to combine
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            List<span style="color:#f92672">&lt;</span>FileInfo<span style="color:#f92672">&gt;</span> sourceFiles <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ArrayList<span style="color:#f92672">&lt;&gt;();</span>
</span></span><span style="display:flex;"><span>            sourceFiles<span style="color:#f92672">.</span><span style="color:#a6e22e">add</span><span style="color:#f92672">(</span><span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">().</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input1.docx&#34;</span><span style="color:#f92672">));</span>
</span></span><span style="display:flex;"><span>            sourceFiles<span style="color:#f92672">.</span><span style="color:#a6e22e">add</span><span style="color:#f92672">(</span><span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">().</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input2.docx&#34;</span><span style="color:#f92672">));</span>
</span></span><span style="display:flex;"><span>            sourceFiles<span style="color:#f92672">.</span><span style="color:#a6e22e">add</span><span style="color:#f92672">(</span><span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">().</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input3.docx&#34;</span><span style="color:#f92672">));</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Configure merge options
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            MergeOptions mergeOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> MergeOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>            mergeOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputPath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;merged_output.docx&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            mergeOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfos</span><span style="color:#f92672">(</span>sourceFiles<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Execute the merge operation
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            FileInfo result <span style="color:#f92672">=</span> mergerApi<span style="color:#f92672">.</span><span style="color:#a6e22e">merge</span><span style="color:#f92672">(</span>mergeOptions<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>System<span style="color:#f92672">.</span><span style="color:#a6e22e">out</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Merge completed successfully. Output file: &#34;</span> <span style="color:#f92672">+</span> result<span style="color:#f92672">.</span><span style="color:#a6e22e">getFilePath</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span> <span style="color:#66d9ef">catch</span> <span style="color:#f92672">(</span>ApiException e<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            System<span style="color:#f92672">.</span><span style="color:#a6e22e">err</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;An error occurred while merging documents: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getMessage</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><blockquote>
<p><strong>Lưu ý:</strong> Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo <a href="https://docs.groupdocs.cloud/merger/">tài liệu chính thức</a> hoặc liên hệ với <a href="https://forum.groupdocs.cloud/c/merger/18">đội hỗ trợ</a> để được trợ giúp.</p>
</blockquote>
<h2 id="hợp-nhất-các-tệp-word-qua-rest-api-bằng-curl">Hợp nhất các tệp Word qua REST API bằng cURL</h2>
<p>Nếu bạn muốn sử dụng phương pháp REST thuần túy, cùng một thao tác hợp nhất có thể được thực hiện bằng các lệnh cURL. Các bước dưới đây cho thấy cách lấy token truy cập, tải lên các tệp nguồn, yêu cầu hợp nhất và tải xuống kết quả.</p>
<p>Xác thực và nhận token truy cập:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/auth/token&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{&#34;client_id&#34;:&#34;YOUR_CLIENT_ID&#34;,&#34;client_secret&#34;:&#34;YOUR_CLIENT_SECRET&#34;}&#39;</span>
</span></span></code></pre></div><p>Tải lên mỗi tệp DOCX lên bộ nhớ đám mây của bạn (thay thế <strong>YOUR_ACCESS_TOKEN</strong> bằng token từ bước trước):</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/input1.docx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     --data-binary @input1.docx
</span></span></code></pre></div><p>Lặp lại lệnh tải lên cho <code>input2.docx</code> và <code>input3.docx</code>.</p>
<p>Tạo yêu cầu hợp nhất:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/merger/merge&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;outputPath&#34;:&#34;merged_output.docx&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;fileInfos&#34;:[
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               {&#34;filePath&#34;:&#34;input1.docx&#34;},
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               {&#34;filePath&#34;:&#34;input2.docx&#34;},
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               {&#34;filePath&#34;:&#34;input3.docx&#34;}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           ]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><p>Tải xuống tài liệu đã hợp nhất:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/merged_output.docx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -o merged_output.docx
</span></span></code></pre></div><p>Để biết thêm chi tiết về các tham số yêu cầu, xem <a href="https://reference.groupdocs.cloud/merger/">tài liệu API chính thức</a>.</p>
<h2 id="hiểu-quy-trình-kết-hợp-tài-liệu-word-trong-java">Hiểu quy trình kết hợp tài liệu Word trong Java</h2>
<p>Dưới đây là phân tích từng bước của mã đã được trình bày ở trên.</p>
<ol>
<li>
<p><strong>Create an ApiClient</strong> - <code>new ApiClient(&quot;YOUR_CLIENT_ID&quot;, &quot;YOUR_CLIENT_SECRET&quot;)</code> thiết lập kết nối tới dịch vụ đám mây GroupDocs.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>ApiClient apiClient <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ApiClient<span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">,</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
<li>
<p><strong>Instantiate MergerApi</strong> - <code>new MergerApi(apiClient)</code> cung cấp quyền truy cập vào các endpoint liên quan đến hợp nhất.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>MergerApi mergerApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> MergerApi<span style="color:#f92672">(</span>apiClient<span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
<li>
<p><strong>Prepare source file list</strong> - Mỗi đối tượng <code>FileInfo</code> chỉ tới một tệp DOCX được lưu trữ trên đám mây. Danh sách này được truyền vào <code>MergeOptions</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>List<span style="color:#f92672">&lt;</span>FileInfo<span style="color:#f92672">&gt;</span> sourceFiles <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ArrayList<span style="color:#f92672">&lt;&gt;();</span>
</span></span><span style="display:flex;"><span>sourceFiles<span style="color:#f92672">.</span><span style="color:#a6e22e">add</span><span style="color:#f92672">(</span><span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">().</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input1.docx&#34;</span><span style="color:#f92672">));</span>
</span></span></code></pre></div></li>
<li>
<p><strong>Configure MergeOptions</strong> - Đặt đường dẫn đầu ra mong muốn và gắn danh sách các tệp nguồn.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>MergeOptions mergeOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> MergeOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>mergeOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputPath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;merged_output.docx&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>mergeOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfos</span><span style="color:#f92672">(</span>sourceFiles<span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
<li>
<p><strong>Execute merge</strong> - <code>mergerApi.merge(mergeOptions)</code> gửi yêu cầu và trả về một <code>FileInfo</code> cho tài liệu đã hợp nhất.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>FileInfo result <span style="color:#f92672">=</span> mergerApi<span style="color:#f92672">.</span><span style="color:#a6e22e">merge</span><span style="color:#f92672">(</span>mergeOptions<span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
</ol>
<p>Để xem danh sách đầy đủ các thuộc tính có sẵn, hãy tham khảo <a href="https://reference.groupdocs.cloud/merger/">tài liệu API</a>.</p>
<h2 id="các-yêu-cầu-trước-và-thiết-lập-cho-groupdocsmerger-cloud-sdk">Các yêu cầu trước và thiết lập cho GroupDocs.Merger Cloud SDK</h2>
<p>Trước khi bạn có thể chạy mã, hãy thêm phụ thuộc Maven vào dự án của bạn và đảm bảo bạn có một tài khoản GroupDocs hợp lệ.</p>
<p>Thêm SDK vào <code>pom.xml</code> của bạn:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#f92672">&lt;dependency&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;groupId&gt;</span>com.groupdocs<span style="color:#f92672">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;artifactId&gt;</span>groupdocs-merger-cloud<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;version&gt;</span>25.11<span style="color:#f92672">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/dependency&gt;</span>
</span></span></code></pre></div><p>Tải xuống các tệp JAR và mã nguồn mới nhất từ <a href="https://releases.groupdocs.cloud/merger/java/">trang tải xuống</a>.<br>
Bạn cũng sẽ cần Java 8 hoặc cao hơn và kết nối internet để thực hiện các cuộc gọi đám mây.<br>
Tạo một tài khoản GroupDocs, lấy <strong>Client ID</strong> và <strong>Client Secret</strong> của bạn, và giữ chúng an toàn.</p>
<h2 id="kết-luận">Kết luận</h2>
<p>Việc hợp nhất các tệp DOCX một cách lập trình hiện đã trở nên đơn giản với <a href="https://products.groupdocs.cloud/merger/java/">GroupDocs.Merger Cloud SDK for Java</a>. Mã mẫu và các đoạn cURL minh họa hai cách linh hoạt để kết hợp nhiều tài liệu Word trong Java, cho dù bạn thích sử dụng thư viện gốc hay gọi trực tiếp REST. Hãy nhớ cấu hình thông tin xác thực của bạn, xử lý các tệp lớn bằng cách streaming nếu cần, và kiểm tra hoạt động hợp nhất với các tài liệu đại diện. Đối với triển khai trong môi trường sản xuất, bạn sẽ cần một giấy phép trả phí; chi tiết giá cả có sẵn trên trang sản phẩm và bạn có thể yêu cầu giấy phép tạm thời để đánh giá từ <a href="https://purchase.groupdocs.cloud/temporary-license/">trang giấy phép tạm thời</a>.</p>
<h2 id="câu-hỏi-thường-gặp">Câu hỏi thường gặp</h2>
<ul>
<li>
<p><strong>Làm thế nào để kết hợp nhiều tài liệu Word trong Java mà không cần viết mã xử lý tệp tùy chỉnh?</strong><br>
Sử dụng <a href="https://products.groupdocs.cloud/merger/java/">GroupDocs.Merger Cloud SDK for Java</a>. SDK trừu tượng hoá tất cả các thao tác cấp thấp và cho phép bạn hợp nhất các tệp DOCX chỉ với một vài lời gọi API.</p>
</li>
<li>
<p><strong>Có thể hợp nhất các tài liệu được lưu trong các thư mục đám mây khác nhau không?</strong><br>
Có. Cung cấp đường dẫn tệp đầy đủ trên đám mây trong các đối tượng <code>FileInfo</code>, và thao tác hợp nhất sẽ lấy mỗi tệp từ vị trí của chúng trước khi kết hợp lại.</p>
</li>
<li>
<p><strong>Tôi nên làm gì nếu quá trình hợp nhất thất bại với ApiException?</strong><br>
Kiểm tra thông báo ngoại lệ để biết chi tiết như thiếu tệp hoặc vấn đề quyền truy cập. Đảm bảo các đường dẫn tệp đúng và tài khoản của bạn có quyền đọc/ghi đối với bộ nhớ. Tham khảo <a href="https://docs.groupdocs.cloud/merger/">tài liệu chính thức</a> để biết mã lỗi.</p>
</li>
<li>
<p><strong>Tôi có cần giấy phép riêng cho mỗi môi trường (phát triển, thử nghiệm, sản xuất) không?</strong><br>
Một giấy phép duy nhất bao phủ tất cả các môi trường, nhưng bạn phải tuân thủ các giới hạn sử dụng được định nghĩa trong thỏa thuận giấy phép của mình. Đối với việc thử nghiệm, bạn có thể sử dụng giấy phép tạm thời được liên kết ở trên.</p>
</li>
</ul>
<h2 id="đọc-thêm">Đọc thêm</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/vi/merger/password-protect-zip-file-using-password-protection-software/">Bảo vệ tệp ZIP bằng mật khẩu sử dụng phần mềm bảo vệ mật khẩu</a></li>
<li><a href="https://blog.groupdocs.cloud/vi/merger/password-protect-excel-using-password-protection-service/">Bảo vệ Excel bằng mật khẩu sử dụng dịch vụ bảo vệ mật khẩu</a></li>
<li><a href="https://blog.groupdocs.cloud/vi/merger/combine-word-documents-in-csharp/">Kết hợp tài liệu Word trong C#</a></li>
</ul>
]]></content:encoded>
    </item>
    
    <item>
      <title>Chỉnh sửa bản trình bày PowerPoint bằng C#</title>
      <link>https://blog-qa.groupdocs.cloud/vi/editor/edit-powerpoint-presentations-in-csharp/</link>
      <pubDate>Wed, 09 Sep 2026 12:31:52 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/vi/editor/edit-powerpoint-presentations-in-csharp/</guid>
      <description>Chỉnh sửa bản trình chiếu PowerPoint trong C# bằng GroupDocs.Editor Cloud SDK for .NET. Hướng dẫn này bao gồm cài đặt, chạy mã, các cuộc gọi cURL REST và các điều chỉnh chỉnh sửa slide.</description>
      <content:encoded><![CDATA[<p>Việc chỉnh sửa các bản trình bày PowerPoint trong C# là nhu cầu thường gặp đối với các nhà phát triển xây dựng các bộ slide động. <a href="https://products.groupdocs.cloud/editor/net/">GroupDocs.Editor Cloud SDK for .NET</a> cung cấp một API mạnh mẽ cho phép bạn sửa đổi các tệp <a href="https://docs.fileformat.com/presentation/pptx/">PPTX</a> trực tiếp từ ứng dụng .NET của mình. Trong hướng dẫn này, bạn sẽ học cách thiết lập SDK, thay thế các văn bản placeholder, thực hiện thao tác chỉnh sửa, và tinh chỉnh các tùy chọn, cùng với việc xem một mẫu mã đầy đủ và quy trình làm việc cURL REST tương ứng.</p>
<h2 id="những-yêu-cầu-của-tự-động-hóa-powerpoint-trong-c">Những Yêu Cầu Của Tự Động Hóa PowerPoint trong C#</h2>
<p>Các doanh nghiệp thường tạo các bộ slide từ mẫu, trong đó tiêu đề, phụ đề hoặc các trường dữ liệu cần được cập nhật tự động. Các yêu cầu cho một giải pháp mạnh mẽ bao gồm:</p>
<ul>
<li>Khả năng xác định và thay thế các chuỗi văn bản cụ thể trong tệp PPTX.</li>
<li>Hỗ trợ xử lý dựa trên đám mây để mã chạy trên bất kỳ máy chủ nào mà không cần cài đặt Office.</li>
<li>Xử lý lỗi rõ ràng và cấu hình dễ dàng cho các đường dẫn đầu vào và đầu ra.</li>
</ul>
<p>Việc chỉnh sửa thủ công hoặc sử dụng các script hệ thống tệp chung không thể đảm bảo tính nhất quán trên hàng chục bản trình bày, đặc biệt khi nội dung thay đổi thường xuyên.</p>
<h2 id="cách-tiếp-cận-chỉnh-sửa-powerpoint-dựa-trên-đám-mây">Cách Tiếp Cận: Chỉnh sửa PowerPoint dựa trên đám mây</h2>
<p><a href="https://products.groupdocs.cloud/editor/net/">GroupDocs.Editor Cloud SDK for .NET</a> đáp ứng những nhu cầu này bằng một API dựa trên REST hoạt động hoàn toàn trên đám mây. Các khả năng chính bao gồm:</p>
<ul>
<li><strong>EditDocument</strong> - Thay thế văn bản, hình ảnh hoặc hình dạng trong các tệp PPTX mà không cần tải xuống toàn bộ tài liệu.</li>
<li><strong>FileInfo</strong> - Chỉ định các tệp nguồn được lưu trữ trong lưu trữ GroupDocs Cloud.</li>
<li><strong>EditDocumentOptions</strong> - Xác định vị trí đầu ra và danh sách các thay thế văn bản.</li>
</ul>
<p>SDK xử lý xác thực, truyền luồng tệp và các chỉnh sửa bảo toàn định dạng, cho phép bạn tập trung vào logic kinh doanh. Tài liệu chi tiết có sẵn tại <a href="https://docs.groupdocs.cloud/editor/">tài liệu chính thức</a>.</p>
<h2 id="thực-hiện-chỉnh-sửa-bản-trình-bày-powerpoint-trong-c-với-groupdocseditor-cloud">Thực hiện chỉnh sửa bản trình bày PowerPoint trong C# với GroupDocs.Editor Cloud</h2>
<p>Dưới đây là hướng dẫn chi tiết từng bước. Mỗi bước bao gồm một đoạn mã ngắn được lấy trực tiếp từ ví dụ đầy đủ.</p>
<h3 id="cài-đặt-sdk-và-thêm-gói-nuget">Cài đặt SDK và Thêm Gói NuGet</h3>
<p>Đầu tiên, thêm thư viện vào dự án của bạn.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>dotnet add package GroupDocs.editor-Cloud
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Bạn cũng có thể tải phiên bản mới nhất từ <a href="https://releases.groupdocs.cloud/editor/net/">trang tải xuống</a>.</p>
<h3 id="cấu-hình-thông-tin-xác-thực-api">Cấu hình thông tin xác thực API</h3>
<p>Tạo một đối tượng <code>Configuration</code> với client ID và secret của bạn.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> config = <span style="color:#66d9ef">new</span> Configuration
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    ClientId = <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>,
</span></span><span style="display:flex;"><span>    ClientSecret = <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span>
</span></span><span style="display:flex;"><span>};
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Lớp <code>Configuration</code> được mô tả trong <a href="https://reference.groupdocs.cloud/editor/">tham chiếu API</a>.</p>
<h3 id="khởi-tạo-api-trình-chỉnh-sửa">Khởi tạo API Trình chỉnh sửa</h3>
<p>Tạo một thể hiện của <code>EditorApi</code> bằng cách sử dụng cấu hình.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> editorApi = <span style="color:#66d9ef">new</span> EditorApi(config);
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Đối tượng này cung cấp tất cả các thao tác chỉnh sửa.</p>
<h3 id="xác-định-tùy-chọn-chỉnh-sửa-thay-thế-văn-bản-giữ-chỗ">Xác định tùy chọn chỉnh sửa (Thay thế văn bản giữ chỗ)</h3>
<p>Đặt tệp nguồn, đường dẫn đầu ra và các thay thế văn bản bạn cần.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> editOptions = <span style="color:#66d9ef">new</span> EditDocumentOptions
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    FileInfo = <span style="color:#66d9ef">new</span> FileInfo { FilePath = <span style="color:#e6db74">&#34;sample.pptx&#34;</span> },
</span></span><span style="display:flex;"><span>    OutputPath = <span style="color:#e6db74">&#34;sample_edited.pptx&#34;</span>,
</span></span><span style="display:flex;"><span>    EditTexts = <span style="color:#66d9ef">new</span> List&lt;EditText&gt;
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">new</span> EditText { Text = <span style="color:#e6db74">&#34;OldTitle&#34;</span>, NewText = <span style="color:#e6db74">&#34;New Title&#34;</span> },
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">new</span> EditText { Text = <span style="color:#e6db74">&#34;OldSubtitle&#34;</span>, NewText = <span style="color:#e6db74">&#34;Updated Subtitle&#34;</span> }
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>};
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Bộ sưu tập <code>EditTexts</code> cho phép bạn thay thế bất kỳ số lượng placeholder nào trong một lần gọi.</p>
<h3 id="thực-hiện-thao-tác-chỉnh-sửa-và-xử-lý-phản-hồi">Thực hiện thao tác chỉnh sửa và xử lý phản hồi</h3>
<p>Tạo yêu cầu và gọi <code>EditDocument</code>.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> request = <span style="color:#66d9ef">new</span> EditDocumentRequest(editOptions);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> response = editorApi.EditDocument(request);
</span></span><span style="display:flex;"><span>Console.WriteLine(<span style="color:#e6db74">$&#34;Edited PowerPoint saved to: {response.Path}&#34;</span>);
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Phản hồi chứa đường dẫn tới tệp đã chỉnh sửa trong lưu trữ đám mây.</p>
<h2 id="ví-dụ-mã-đầy-đủ-chỉnh-sửa-bản-trình-bày-powerpoint-trong-c---quy-trình-đầy-đủ">Ví dụ mã đầy đủ: chỉnh sửa bản trình bày PowerPoint trong C# - Quy trình đầy đủ</h2>
<p>Mã sau đây minh họa toàn bộ quy trình từ đầu đến cuối.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.Collections.Generic;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Editor.Cloud.Sdk.Api;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Editor.Cloud.Sdk.Client;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Editor.Cloud.Sdk.Model;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Editor.Cloud.Sdk.Model.Requests;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> GroupDocsEditorDemo
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">Program</span>
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> Main(<span style="color:#66d9ef">string</span>[] args)
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Configure API credentials</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> config = <span style="color:#66d9ef">new</span> Configuration
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                ClientId = <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>,
</span></span><span style="display:flex;"><span>                ClientSecret = <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span>
</span></span><span style="display:flex;"><span>            };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Initialize the Editor API</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> editorApi = <span style="color:#66d9ef">new</span> EditorApi(config);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Define input and output PowerPoint files</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">string</span> inputFilePath = <span style="color:#e6db74">&#34;sample.pptx&#34;</span>;
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">string</span> outputFilePath = <span style="color:#e6db74">&#34;sample_edited.pptx&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Set up editing options (replace placeholder texts)</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> editOptions = <span style="color:#66d9ef">new</span> EditDocumentOptions
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                FileInfo = <span style="color:#66d9ef">new</span> FileInfo { FilePath = inputFilePath },
</span></span><span style="display:flex;"><span>                OutputPath = outputFilePath,
</span></span><span style="display:flex;"><span>                EditTexts = <span style="color:#66d9ef">new</span> List&lt;EditText&gt;
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">new</span> EditText { Text = <span style="color:#e6db74">&#34;OldTitle&#34;</span>, NewText = <span style="color:#e6db74">&#34;New Title&#34;</span> },
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">new</span> EditText { Text = <span style="color:#e6db74">&#34;OldSubtitle&#34;</span>, NewText = <span style="color:#e6db74">&#34;Updated Subtitle&#34;</span> }
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>            };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Create the request</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> request = <span style="color:#66d9ef">new</span> EditDocumentRequest(editOptions);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span>
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// Perform the edit operation</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">var</span> response = editorApi.EditDocument(request);
</span></span><span style="display:flex;"><span>                Console.WriteLine(<span style="color:#e6db74">$&#34;Edited PowerPoint saved to: {response.Path}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">catch</span> (ApiException apiEx)
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                Console.WriteLine(<span style="color:#e6db74">$&#34;API error ({apiEx.ErrorCode}): {apiEx.Message}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">catch</span> (Exception ex)
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                Console.WriteLine(<span style="color:#e6db74">$&#34;Unexpected error: {ex.Message}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><blockquote>
<p><strong>Lưu ý:</strong> Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo <a href="https://docs.groupdocs.cloud/editor/">tài liệu chính thức</a> hoặc liên hệ với <a href="https://forum.groupdocs.cloud/c/editor/20">đội hỗ trợ</a> để được trợ giúp.</p>
</blockquote>
<h2 id="chỉnh-sửa-powerpoint-bằng-curl-và-rest-api">Chỉnh sửa PowerPoint bằng cURL và REST API</h2>
<p>Nếu bạn muốn một cách tiếp cận không phụ thuộc vào ngôn ngữ, bạn có thể thực hiện cùng một thao tác chỉnh sửa bằng các lệnh cURL.</p>
<ol>
<li><strong>Xác thực và nhận token truy cập</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/auth/token&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{&#34;client_id&#34;:&#34;YOUR_CLIENT_ID&#34;,&#34;client_secret&#34;:&#34;YOUR_CLIENT_SECRET&#34;}&#39;</span>
</span></span></code></pre></div><ol start="2">
<li><strong>Tải lên tệp PPTX nguồn</strong></li>
</ol>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/upload/sample.pptx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -F <span style="color:#e6db74">&#34;file=@sample.pptx&#34;</span>
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<ol start="3">
<li><strong>Thực hiện thao tác chỉnh sửa</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/editor/edit&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;fileInfo&#34;: { &#34;filePath&#34;: &#34;sample.pptx&#34; },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;outputPath&#34;: &#34;sample_edited.pptx&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;editTexts&#34;: [
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               { &#34;text&#34;: &#34;OldTitle&#34;, &#34;newText&#34;: &#34;New Title&#34; },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               { &#34;text&#34;: &#34;OldSubtitle&#34;, &#34;newText&#34;: &#34;Updated Subtitle&#34; }
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           ]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><ol start="4">
<li><strong>Tải xuống tệp PPTX đã chỉnh sửa</strong></li>
</ol>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/download/sample_edited.pptx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -o sample_edited.pptx
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Để biết thêm chi tiết về payload yêu cầu, xem <a href="https://reference.groupdocs.cloud/editor/">tài liệu API</a>.</p>
<h2 id="tinh-chỉnh-các-tùy-chọn-chỉnh-sửa-powerpoint">Tinh chỉnh các tùy chọn chỉnh sửa PowerPoint</h2>
<p>SDK cung cấp các tham số bổ sung mà bạn có thể điều chỉnh:</p>
<ul>
<li><strong>OutputPath</strong> - Chọn một thư mục hoặc tên tệp khác cho bản trình chiếu đã chỉnh sửa.</li>
<li><strong>EditTexts</strong> - Thêm bao nhiêu đối tượng <code>EditText</code> tùy ý để thay thế nhiều chỗ giữ chỗ.</li>
<li><strong>FileInfo.StorageName</strong> - Chỉ định vị trí lưu trữ tùy chỉnh nếu bạn sử dụng nhiều lưu trữ đám mây.</li>
</ul>
<p>Các tùy chọn này là một phần của lớp <code>EditDocumentOptions</code> được tham chiếu trong <a href="https://reference.groupdocs.cloud/editor/">tài liệu API</a>.</p>
<h2 id="kết-luận">Kết luận</h2>
<p>Việc chỉnh sửa các bản trình bày PowerPoint trong C# trở nên đơn giản với GroupDocs.Editor Cloud SDK for .NET. Thư viện xử lý xác thực, quản lý tệp và thay thế văn bản, cho phép bạn tập trung vào logic nghiệp vụ. Hãy nhớ lấy giấy phép phù hợp cho môi trường sản xuất; bạn có thể bắt đầu với giấy phép tạm thời từ <a href="https://purchase.groupdocs.cloud/temporary-license/">trang giấy phép tạm thời</a>. Với mẫu mã và quy trình cURL được cung cấp, bạn đã sẵn sàng tích hợp việc chỉnh sửa slide động vào bất kỳ ứng dụng .NET nào.</p>
<h2 id="câu-hỏi-thường-gặp">Câu hỏi thường gặp</h2>
<p><strong>Làm thế nào để chỉnh sửa bản trình bày Powerpoint trong C# bằng GroupDocs.Editor Cloud?</strong><br>
Sử dụng phương thức <code>EditDocument</code> sau khi cấu hình <code>EditDocumentOptions</code> với tệp nguồn của bạn, đường dẫn đầu ra và danh sách các thay thế <code>EditText</code>. Ví dụ đầy đủ đã được trình bày ở phần trước của hướng dẫn này.</p>
<p><strong>Có thể thay thế nhiều placeholder trong một tệp PowerPoint duy nhất không?</strong><br>
Có. Điền bộ sưu tập <code>EditTexts</code> với số lượng đối tượng <code>EditText</code> cần thiết; SDK sẽ xử lý tất cả các thay thế trong một yêu cầu.</p>
<p><strong>Nếu tệp đã chỉnh sửa không được tạo ra, tôi nên làm gì?</strong><br>
Kiểm tra xem <code>OutputPath</code> đã được đặt đúng chưa và phản hồi API có chứa một <code>Path</code> hợp lệ không. Ngoài ra, hãy xác minh thông tin đăng nhập và quyền truy cập lưu trữ của bạn qua cổng GroupDocs.</p>
<p><strong>Tôi có cần giấy phép cho việc triển khai trong môi trường sản xuất không?</strong><br>
Cần có giấy phép hợp lệ cho môi trường sản xuất. Bạn có thể lấy giấy phép tạm thời từ <a href="https://purchase.groupdocs.cloud/temporary-license/">trang giấy phép tạm thời</a> trong quá trình đánh giá SDK.</p>
<h2 id="đọc-thêm">Đọc Thêm</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/vi/editor/edit-powerpoint-presentations-using-python/">Chỉnh sửa bản trình bày PowerPoint bằng Python</a></li>
<li><a href="https://blog.groupdocs.cloud/vi/editor/edit-powerpoint-files-using-java-library/">Chỉnh sửa tệp PowerPoint bằng thư viện Java</a></li>
<li><a href="https://blog.groupdocs.cloud/vi/editor/best-practices-for-csv-editor-development-in-java/">Các thực tiễn tốt nhất cho việc phát triển trình chỉnh sửa CSV bằng Java</a></li>
</ul>
]]></content:encoded>
    </item>
    
    <item>
      <title>Cách Kết Hợp Nhiều Tài Liệu Word trong Node.JS</title>
      <link>https://blog-qa.groupdocs.cloud/vi/merger/how-to-combine-multiple-word-documents-in-nodejs/</link>
      <pubDate>Wed, 19 Aug 2026 10:37:27 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/vi/merger/how-to-combine-multiple-word-documents-in-nodejs/</guid>
      <description>Tìm hiểu cách kết hợp các tài liệu Word trong Node.JS với GroupDocs.Merger Cloud SDK. Hướng dẫn này cung cấp mã, ví dụ cURL và các bước thiết lập để dễ dàng hợp nhất.</description>
      <content:encoded><![CDATA[<p>Nhiều nhà phát triển cần kết hợp nhiều tài liệu Word trong Node.JS để tạo ra các báo cáo hoặc gói tổng hợp. <a href="https://products.groupdocs.cloud/merger/nodejs/">GroupDocs.Merger Cloud SDK for Node.js</a> cung cấp một API mạnh mẽ xử lý việc hợp nhất Word phía máy chủ mà không cần mã xử lý tệp phức tạp. Trong hướng dẫn này, bạn sẽ thấy một triển khai đầy đủ, các lệnh cURL tương đương, các bước cài đặt và các mẹo thực hành tốt nhất để nhanh chóng hợp nhất tài liệu của mình.</p>
<h2 id="kết-hợp-nhiều-tài-liệu-word-trong-nodejs---ví-dụ-mã-hoàn-chỉnh">Kết hợp nhiều tài liệu Word trong Node.JS - Ví dụ mã hoàn chỉnh</h2>
<p>Ví dụ này minh họa cách hợp nhất ba tệp <a href="https://docs.fileformat.com/word-processing/docx/">DOCX</a> thành một tài liệu duy nhất bằng cách sử dụng GroupDocs.Merger Cloud SDK for Node.js.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">require</span>(<span style="color:#e6db74">&#34;@groupdocs/merger-cloud&#34;</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// ==== Configuration ====
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// Replace with your actual credentials
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">clientId</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">clientSecret</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">config</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span>.<span style="color:#a6e22e">Configuration</span>(<span style="color:#a6e22e">clientId</span>, <span style="color:#a6e22e">clientSecret</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">mergeApi</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span>.<span style="color:#a6e22e">MergeApi</span>(<span style="color:#a6e22e">config</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// ==== Input / Output paths ====
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">inputFiles</span> <span style="color:#f92672">=</span> [
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;documents/input1.docx&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;documents/input2.docx&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;documents/input3.docx&#34;</span>
</span></span><span style="display:flex;"><span>];
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">outputFile</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;documents/combined_output.docx&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// ==== Build request ====
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">documentEntries</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">inputFiles</span>.<span style="color:#a6e22e">map</span>(<span style="color:#a6e22e">path</span> =&gt; {
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span>.<span style="color:#a6e22e">Models</span>.<span style="color:#a6e22e">DocumentEntry</span>({
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">fileInfo</span><span style="color:#f92672">:</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span>.<span style="color:#a6e22e">Models</span>.<span style="color:#a6e22e">FileInfo</span>({
</span></span><span style="display:flex;"><span>            <span style="color:#a6e22e">filePath</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">path</span>
</span></span><span style="display:flex;"><span>        })
</span></span><span style="display:flex;"><span>    });
</span></span><span style="display:flex;"><span>});
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">mergeRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span>.<span style="color:#a6e22e">Models</span>.<span style="color:#a6e22e">MergeDocumentsRequest</span>({
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">documents</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">documentEntries</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">outputPath</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">outputFile</span>
</span></span><span style="display:flex;"><span>});
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// ==== Execute merge ====
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>(<span style="color:#66d9ef">async</span> () =&gt; {
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">try</span> {
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">result</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">mergeApi</span>.<span style="color:#a6e22e">mergeDocuments</span>(<span style="color:#a6e22e">mergeRequest</span>);
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">log</span>(<span style="color:#e6db74">`Merge completed successfully. Output file: </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">result</span>.<span style="color:#a6e22e">path</span><span style="color:#e6db74">}</span><span style="color:#e6db74">`</span>);
</span></span><span style="display:flex;"><span>    } <span style="color:#66d9ef">catch</span> (<span style="color:#a6e22e">error</span>) {
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">error</span>(<span style="color:#e6db74">&#34;Error during merging:&#34;</span>, <span style="color:#a6e22e">error</span>);
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>})();
</span></span></code></pre></div><blockquote>
<p><strong>Lưu ý:</strong> Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy đảm bảo cập nhật các đường dẫn tệp (<code>input1.docx</code>, <code>combined_output.docx</code>, v.v.) cho phù hợp với vị trí tệp thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo <a href="https://docs.groupdocs.cloud/merger/">tài liệu chính thức</a> hoặc liên hệ với <a href="https://forum.groupdocs.cloud/c/merger/18">đội hỗ trợ</a> để được trợ giúp.</p>
</blockquote>
<h2 id="kết-hợp-tài-liệu-word-qua-rest-api-bằng-curl">Kết hợp tài liệu Word qua REST API bằng cURL</h2>
<p>Nếu bạn ưu tiên cách tiếp cận REST thuần túy, cùng một thao tác hợp nhất có thể được thực hiện bằng các lệnh cURL. Dưới đây là quy trình ngắn gọn xác thực, tải lên các tệp nguồn, thực hiện hợp nhất và tải xuống kết quả.</p>
<h3 id="1-xác-thực-và-lấy-mã-truy-cập">1. Xác thực và Lấy Mã Truy cập</h3>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/merger/authenticate&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>-H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>-d <span style="color:#e6db74">&#39;{&#34;client_id&#34;:&#34;YOUR_CLIENT_ID&#34;,&#34;client_secret&#34;:&#34;YOUR_CLIENT_SECRET&#34;}&#39;</span>
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Phản hồi chứa một <code>access_token</code> được sử dụng trong các cuộc gọi tiếp theo.</p>
<h3 id="2-tải-lên-các-tệp-nguồn">2. Tải lên các tệp nguồn</h3>
<p>Lặp lại bước này cho mỗi tệp DOCX mà bạn muốn hợp nhất.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/upload?path=documents/input1.docx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>-H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>-H <span style="color:#e6db74">&#34;Content-Type: application/octet-stream&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>--data-binary <span style="color:#e6db74">&#34;@path/to/input1.docx&#34;</span>
</span></span></code></pre></div><h3 id="3-thực-hiện-thao-tác-hợp-nhất">3. Thực hiện thao tác hợp nhất</h3>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/merger/merge&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>-H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>-H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>-d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">    &#34;documents&#34;: [
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">        {&#34;fileInfo&#34;: {&#34;filePath&#34;: &#34;documents/input1.docx&#34;}},
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">        {&#34;fileInfo&#34;: {&#34;filePath&#34;: &#34;documents/input2.docx&#34;}},
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">        {&#34;fileInfo&#34;: {&#34;filePath&#34;: &#34;documents/input3.docx&#34;}}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">    ],
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">    &#34;outputPath&#34;: &#34;documents/combined_output.docx&#34;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}&#39;</span>
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>API trả về đường dẫn của tệp đã hợp nhất.</p>
<h3 id="4-tải-xuống-tài-liệu-đã-hợp-nhất">4. Tải xuống tài liệu đã hợp nhất</h3>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/download?path=documents/combined_output.docx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>-H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>-o combined_output.docx
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Để biết thêm chi tiết về payload yêu cầu và các tùy chọn, xem <a href="https://docs.groupdocs.cloud/merger/">tài liệu API chính thức</a>.</p>
<h2 id="cách-hoạt-động-của-việc-hợp-nhất-nhiều-tài-liệu-word-trong-nodejs">Cách hoạt động của việc hợp nhất nhiều tài liệu Word trong Node.JS</h2>
<p>SDK trừu tượng hóa quá trình hợp nhất thành một vài bước logic:</p>
<ol>
<li><strong>Tạo cấu hình</strong> - <code>new GroupDocsMergerCloud.Configuration(clientId, clientSecret)</code> tạo ngữ cảnh xác thực. Xem tham chiếu lớp trong <a href="https://reference.groupdocs.cloud/merger/">API Reference</a>.</li>
</ol>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">config</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span>.<span style="color:#a6e22e">Configuration</span>(<span style="color:#a6e22e">clientId</span>, <span style="color:#a6e22e">clientSecret</span>);
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<ol start="2">
<li>
<p><strong>API Instance</strong> - <code>new GroupDocsMergerCloud.MergeApi(config)</code> cung cấp quyền truy cập vào các thao tác hợp nhất.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">mergeApi</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span>.<span style="color:#a6e22e">MergeApi</span>(<span style="color:#a6e22e">config</span>);
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
</li>
<li>
<p><strong>Các mục tài liệu</strong> - Mỗi tệp nguồn được bao bọc trong một <code>DocumentEntry</code> chứa một <code>FileInfo</code> với đường dẫn tệp.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">documentEntries</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">inputFiles</span>.<span style="color:#a6e22e">map</span>(<span style="color:#a6e22e">path</span> =&gt; {
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span>.<span style="color:#a6e22e">Models</span>.<span style="color:#a6e22e">DocumentEntry</span>({
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">fileInfo</span><span style="color:#f92672">:</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span>.<span style="color:#a6e22e">Models</span>.<span style="color:#a6e22e">FileInfo</span>({ <span style="color:#a6e22e">filePath</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">path</span> })
</span></span><span style="display:flex;"><span>    });
</span></span><span style="display:flex;"><span>});
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
</li>
<li>
<p><strong>Yêu cầu hợp nhất</strong> - <code>MergeDocumentsRequest</code> gói các mục và đường dẫn đầu ra mong muốn.</p>
<!--[CODE_SNIPPET_START]-->  
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">mergeRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsMergerCloud</span>.<span style="color:#a6e22e">Models</span>.<span style="color:#a6e22e">MergeDocumentsRequest</span>({
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">documents</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">documentEntries</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">outputPath</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">outputFile</span>
</span></span><span style="display:flex;"><span>});
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
</li>
<li>
<p><strong>Thực thi</strong> - <code>mergeApi.mergeDocuments(mergeRequest)</code> gửi yêu cầu tới dịch vụ đám mây. Promise trả về một đối tượng kết quả chứa đường dẫn tệp đầu ra.</p>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">result</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">mergeApi</span>.<span style="color:#a6e22e">mergeDocuments</span>(<span style="color:#a6e22e">mergeRequest</span>);
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">log</span>(<span style="color:#e6db74">`Merge completed successfully. Output file: </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">result</span>.<span style="color:#a6e22e">path</span><span style="color:#e6db74">}</span><span style="color:#e6db74">`</span>);
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
</li>
</ol>
<p>Các bước này cùng nhau cho phép bạn kết hợp nhiều tài liệu Word một cách hiệu quả mà không cần xử lý các luồng tệp cấp thấp.</p>
<h2 id="chuẩn-bị-môi-trường-cho-groupdocsmerger">Chuẩn bị môi trường cho GroupDocs.Merger</h2>
<ol>
<li><strong>Cài đặt SDK</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npm install groupdocs-merger-cloud
</span></span></code></pre></div><p>Gói có sẵn từ <a href="https://releases.groupdocs.cloud/merger/nodejs/">trang tải xuống chính thức</a>.</p>
<ol start="2">
<li>
<p><strong>Node.js Version</strong> - Đảm bảo bạn đang chạy Node.js 12 hoặc mới hơn.</p>
</li>
<li>
<p><strong>Cấu hình thông tin xác thực</strong> - Thay thế <code>YOUR_CLIENT_ID</code> và <code>YOUR_CLIENT_SECRET</code> trong mã bằng các giá trị từ tài khoản GroupDocs Cloud của bạn.</p>
</li>
<li>
<p><strong>Tạo Thư Mục Dự Án</strong> - Đặt các tệp DOCX nguồn vào thư mục con <code>documents/</code> như được minh họa trong ví dụ.</p>
</li>
</ol>
<p>Với các bước này đã hoàn thành, bạn đã sẵn sàng để chạy script hợp nhất hoặc gọi các endpoint REST.</p>
<h2 id="kết-luận">Kết luận</h2>
<p>Kết hợp nhiều tài liệu Word trong Node.JS trở nên đơn giản với <a href="https://products.groupdocs.cloud/merger/nodejs/">GroupDocs.Merger Cloud SDK for Node.js</a>. SDK xử lý việc tải lên tệp, logic hợp nhất và tạo đầu ra, cho phép bạn tập trung vào logic nghiệp vụ thay vì thao tác tệp cấp thấp. Hãy nhớ đảm bảo có giấy phép phù hợp cho việc sử dụng trong môi trường sản xuất; bạn có thể bắt đầu với một <a href="https://purchase.groupdocs.cloud/temporary-license/">giấy phép tạm thời</a> và nâng cấp lên đăng ký đầy đủ khi nhu cầu của bạn tăng lên. Bắt đầu hợp nhất ngay hôm nay và tối ưu hoá quy trình công việc tài liệu của bạn.</p>
<h2 id="câu-hỏi-thường-gặp">Câu hỏi thường gặp</h2>
<ul>
<li>
<p><strong>Làm thế nào để kết hợp nhiều tài liệu Word trong Node.JS bằng SDK?</strong><br>
Sử dụng lớp <code>MergeApi</code> để tạo một <code>MergeDocumentsRequest</code> liệt kê mỗi tệp DOCX dưới dạng <code>DocumentEntry</code>. SDK sẽ hợp nhất chúng theo thứ tự đã cung cấp và lưu kết quả vào đường dẫn đầu ra đã chỉ định.</p>
</li>
<li>
<p><strong>Liệu có thể hợp nhất các tệp PDF lại với cùng một SDK không?</strong><br>
Có, Merger SDK hỗ trợ <a href="https://docs.fileformat.com/pdf">PDF</a>, DOCX, <a href="https://docs.fileformat.com/word-processing/odt/">ODT</a>, và một số định dạng khác. Chỉ cần thay đổi phần mở rộng tệp trong mảng <code>inputFiles</code> và SDK sẽ tự động xử lý việc chuyển đổi. Xem <a href="https://docs.groupdocs.cloud/merger/">tài liệu chính thức</a> để biết chi tiết về các định dạng.</p>
</li>
<li>
<p><strong>Giới hạn về số lượng tài liệu tôi có thể hợp nhất trong một yêu cầu là bao nhiêu?</strong><br>
Dịch vụ đám mây áp dụng giới hạn kích thước thay vì số lượng cố định. Miễn là tổng kích thước vẫn nằm trong hạn mức tài khoản của bạn, bạn có thể hợp nhất hàng chục tệp. Đối với các lô rất lớn, hãy cân nhắc tải các tệp lên lưu trữ GroupDocs trước và tham chiếu chúng bằng ID.</p>
</li>
<li>
<p><strong>Tôi có cần lo lắng về giấy phép cho phát triển so với sản xuất không?</strong><br>
Phát triển và kiểm thử có thể sử dụng giấy phép tạm thời được lấy từ <a href="https://purchase.groupdocs.cloud/temporary-license/">trang giấy phép tạm thời</a>. Đối với triển khai sản xuất, mua giấy phép đầy đủ để mở khóa số lần hợp nhất không giới hạn và hỗ trợ ưu tiên.</p>
</li>
</ul>
<h2 id="đọc-thêm">Đọc thêm</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/vi/merger/password-protect-zip-file-using-password-protection-software/">Bảo vệ tệp ZIP bằng phần mềm bảo vệ mật khẩu</a></li>
<li><a href="https://blog.groupdocs.cloud/vi/merger/password-protect-excel-using-password-protection-service/">Bảo vệ Excel bằng dịch vụ bảo vệ mật khẩu</a></li>
<li><a href="https://blog.groupdocs.cloud/vi/merger/combine-word-documents-in-csharp/">Kết hợp tài liệu Word trong C#</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
