<?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>java rest api on Document Processing REST APIs | GroupDocs Cloud</title>
    <link>https://blog-qa.groupdocs.cloud/th/tag/java-rest-api/</link>
    <description>Recent content in java rest api on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>th</language>
    <lastBuildDate>Wed, 23 Sep 2026 13:04:19 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/th/tag/java-rest-api/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>เพิ่มข้อความโอเวอร์เลย์ลงใน GIF ด้วย REST ใน Java</title>
      <link>https://blog-qa.groupdocs.cloud/th/watermark/add-text-overlay-to-gif-using-rest-in-java/</link>
      <pubDate>Wed, 23 Sep 2026 13:04:19 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/th/watermark/add-text-overlay-to-gif-using-rest-in-java/</guid>
      <description>เรียนรู้วิธีเพิ่มข้อความซ้อนบน GIFs ด้วย GroupDocs.Watermark Cloud SDK for Java via REST API. รวมโค้ด, cURL และขั้นตอนการตั้งค่าแล้ว. เริ่มต้นอย่างรวดเร็ว.</description>
      <content:encoded><![CDATA[<p>การเพิ่มคำบรรยายแบบไดนามิก, คำบรรยายย่อย, หรือข้อความส่งเสริมใน GIF แบบเคลื่อนไหวเป็นความต้องการทั่วไปสำหรับเว็บและแอปพลิเคชันมือถือสมัยใหม่. <a href="https://products.groupdocs.cloud/watermark/java/">GroupDocs.Watermark Cloud SDK for Java</a> ให้ไลบรารีที่มีพลังบนพื้นฐาน REST ที่ทำให้งานนี้ง่ายขึ้น. ในคู่มือนี้คุณจะได้เรียนรู้วิธี <strong>เพิ่มข้อความ Overlay ไปยัง <a href="https://docs.fileformat.com/image/gif/">GIF</a> ด้วย REST ใน Java</strong>, ดูการนำไปใช้เต็มรูปแบบด้วย Java, สำรวจคำสั่ง cURL ที่เทียบเท่า, และทำความเข้าใจขั้นตอนการตั้งค่าที่จำเป็น.</p>
<h2 id="เพมขอความโอเวอรเลยลงใน-gif-ดวย-rest-ใน-java---ตวอยางโคด">เพิ่มข้อความโอเวอร์เลย์ลงใน GIF ด้วย REST ใน Java - ตัวอย่างโค้ด</h2>
<p>ตัวอย่างนี้แสดงวิธีการกำหนดค่าลายน้ำข้อความและนำไปใช้กับทุกเฟรมของไฟล์ GIF.</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.watermark.cloud.api.WatermarkApi<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.client.ApiException<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.client.Configuration<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.AddWatermarkRequest<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.AddWatermarkResponse<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.FileInfo<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.OutputFileInfo<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.TextWatermarkOptions<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.HorizontalAlignment<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.watermark.cloud.model.VerticalAlignment<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">AddTextOverlayToGif</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 API configuration (replace with your actual clientId and clientSecret)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<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>        WatermarkApi watermarkApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> WatermarkApi<span style="color:#f92672">(</span>config<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Prepare input file information
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        FileInfo inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.gif&#34;</span><span style="color:#f92672">);</span>          <span style="color:#75715e">// Path to the source GIF in the storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setStorageName</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MyStorage&#34;</span><span style="color:#f92672">);</span>       <span style="color:#75715e">// Optional: name of the storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Prepare output file information
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        OutputFileInfo outputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> OutputFileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        outputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;output.gif&#34;</span><span style="color:#f92672">);</span>        <span style="color:#75715e">// Desired path for the watermarked GIF
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        outputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setStorageName</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MyStorage&#34;</span><span style="color:#f92672">);</span>      <span style="color:#75715e">// Optional: name of the storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Configure text watermark options
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        TextWatermarkOptions textOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> TextWatermarkOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setText</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Sample Watermark&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontFamily</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Arial&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontSize</span><span style="color:#f92672">(</span>24<span style="color:#f92672">.</span><span style="color:#a6e22e">0</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setColor</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;#FF0000&#34;</span><span style="color:#f92672">);</span>             <span style="color:#75715e">// Red color in HEX
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOpacity</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">5</span><span style="color:#f92672">);</span>                 <span style="color:#75715e">// 50% opacity
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setRotationAngle</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">0</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setHorizontalAlignment</span><span style="color:#f92672">(</span>HorizontalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">CENTER</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setVerticalAlignment</span><span style="color:#f92672">(</span>VerticalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">MIDDLE</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setPageRange</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;1-&#34;</span><span style="color:#f92672">);</span>               <span style="color:#75715e">// Apply to all frames/pages
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Build the request
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        AddWatermarkRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> AddWatermarkRequest<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        request<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputFileInfo</span><span style="color:#f92672">(</span>outputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOptions</span><span style="color:#f92672">(</span>textOptions<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">// Execute the request
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            AddWatermarkResponse response <span style="color:#f92672">=</span> watermarkApi<span style="color:#f92672">.</span><span style="color:#a6e22e">addWatermark</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</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;Watermark added successfully. Output file: &#34;</span> <span style="color:#f92672">+</span> response<span style="color:#f92672">.</span><span style="color:#a6e22e">getPath</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;Error while adding watermark: &#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>            e<span style="color:#f92672">.</span><span style="color:#a6e22e">printStackTrace</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>หมายเหตุ:</strong> ตัวอย่างโค้ดนี้แสดงการทำงานหลัก ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบและอัปเดตเส้นทางไฟล์และค่าการกำหนดค่าต่าง ๆ ให้ตรงกับสภาพแวดล้อมจริงของคุณ ตรวจสอบว่าขึ้นตอนการพึ่งพาที่จำเป็นทั้งหมดได้ถูกติดตั้งอย่างถูกต้อง และทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากพบปัญหาใด ๆ โปรดดูที่ <a href="https://docs.groupdocs.cloud/watermark/">เอกสารอย่างเป็นทางการ</a> หรือ ติดต่อ <a href="https://forum.groupdocs.cloud/c/watermark/29">ทีมสนับสนุน</a> เพื่อขอความช่วยเหลือ.</p>
</blockquote>
<h2 id="ใสขอความบน-gif-ดวย-rest-api-โดยใช-curl">ใส่ข้อความบน GIF ด้วย REST API โดยใช้ cURL</h2>
<p>ด้านล่างเป็นคำสั่ง cURL ที่ทำงานเดียวกันจากเทอร์มินัล พวกมันแสดงกระบวนการทำงานเต็มของ REST: การรับรองความถูกต้อง, การอัปโหลด, การใส่ลายน้ำ, และการดาวน์โหลด.</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><span style="color:#75715e"># 1. Obtain an access token</span>
</span></span><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>แทนที่ <code>YOUR_ACCESS_TOKEN</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-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 2. Upload the source GIF to storage</span>
</span></span><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/input.gif&#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 @path/to/local/input.gif
</span></span></code></pre></div><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><span style="color:#75715e"># 3. Add text overlay to the GIF</span>
</span></span><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/watermark/add&#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;input.gif&#34;, &#34;storageName&#34;: &#34;MyStorage&#34; },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;outputFileInfo&#34;: { &#34;filePath&#34;: &#34;output.gif&#34;, &#34;storageName&#34;: &#34;MyStorage&#34; },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;options&#34;: {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;text&#34;: &#34;Sample Watermark&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;fontFamily&#34;: &#34;Arial&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;fontSize&#34;: 24,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;color&#34;: &#34;#FF0000&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;opacity&#34;: 0.5,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;horizontalAlignment&#34;: &#34;Center&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;verticalAlignment&#34;: &#34;Middle&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;pageRange&#34;: &#34;1-&#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><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><span style="color:#75715e"># 4. Download the watermarked GIF</span>
</span></span><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/output.gif&#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 path/to/local/output.gif
</span></span></code></pre></div><p>สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเนื้อหาคำขอและรูปแบบการตอบกลับ โปรดดูที่ <a href="https://docs.groupdocs.cloud/watermark/">เอกสาร API อย่างเป็นทางการ</a>.</p>
<h2 id="ทำความเขาใจการเพมขอความโอเวอรเลยลงใน-gif-ดวย-rest-ใน-java---วธการทำงาน">ทำความเข้าใจการเพิ่มข้อความโอเวอร์เลย์ลงใน GIF ด้วย REST ใน Java - วิธีการทำงาน</h2>
<ol>
<li><strong>เริ่มต้นไคลเอนต์ API</strong> - <code>new Configuration(&quot;YOUR_CLIENT_ID&quot;, &quot;YOUR_CLIENT_SECRET&quot;)</code> สร้างอ็อบเจกต์การกำหนดค่าที่เก็บข้อมูลประจำตัวของคุณ. อินสแตนซ์ <code>WatermarkApi</code> ใช้การกำหนดค่านี้เพื่อเซ็นชื่อทุกคำขอ.</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-java" data-lang="java"><span style="display:flex;"><span>Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<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>WatermarkApi watermarkApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> WatermarkApi<span style="color:#f92672">(</span>config<span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="2">
<li>
<p><strong>ระบุไฟล์ต้นทางและไฟล์ปลายทาง</strong> - <code>FileInfo</code> และ <code>OutputFileInfo</code> บอกบริการว่าต้องอ่านไฟล์ GIF ต้นฉบับจากที่ใดและเขียนผลลัพธ์ไปที่ใด ทั้งสองสามารถอ้างอิงชื่อที่เก็บข้อมูลแบบกำหนดเองได้.</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 inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.gif&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setStorageName</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MyStorage&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
<li>
<p><strong>กำหนดค่าลายน้ำข้อความ</strong> - <code>TextWatermarkOptions</code> เก็บคุณสมบัติด้านภาพทั้งหมด: ข้อความ, ฟอนต์, ขนาด, สี, ความทึบ, การหมุน, และการจัดแนว. การตั้งค่า <code>pageRange</code> เป็น <code>&quot;1-&quot;</code> จะทำให้ทุกเฟรมของ GIF ที่เคลื่อนไหวได้รับการวางซ้อน.</p>
</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-java" data-lang="java"><span style="display:flex;"><span>TextWatermarkOptions textOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> TextWatermarkOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setText</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Sample Watermark&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontFamily</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Arial&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFontSize</span><span style="color:#f92672">(</span>24<span style="color:#f92672">.</span><span style="color:#a6e22e">0</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setColor</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;#FF0000&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOpacity</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">5</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setHorizontalAlignment</span><span style="color:#f92672">(</span>HorizontalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">CENTER</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setVerticalAlignment</span><span style="color:#f92672">(</span>VerticalAlignment<span style="color:#f92672">.</span><span style="color:#a6e22e">MIDDLE</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>textOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setPageRange</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;1-&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="4">
<li>
<p><strong>สร้างและส่งคำขอ</strong> - <code>AddWatermarkRequest</code> รวมข้อมูลไฟล์และตัวเลือกเข้าด้วยกัน. การเรียก <code>watermarkApi.addWatermark(request)</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>AddWatermarkRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> AddWatermarkRequest<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>request<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputFileInfo</span><span style="color:#f92672">(</span>outputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>request<span style="color:#f92672">.</span><span style="color:#a6e22e">setOptions</span><span style="color:#f92672">(</span>textOptions<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>AddWatermarkResponse response <span style="color:#f92672">=</span> watermarkApi<span style="color:#f92672">.</span><span style="color:#a6e22e">addWatermark</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
<li>
<p><strong>Handle the response</strong> - การตอบสนองประกอบด้วยเส้นทางไฟล์ผลลัพธ์ ในแอปพลิเคชันจริงคุณมักจะดาวน์โหลดไฟล์หรือส่งเส้นทางไปยังบริการอื่น</p>
</li>
</ol>
<p>สำหรับรายการคลาสและคุณสมบัติทั้งหมด โปรดดูที่ <a href="https://reference.groupdocs.cloud/watermark/">อ้างอิง API</a>.</p>
<h2 id="การตดตงและกำหนดคา-groupdocswatermark-cloud-sdk-for-java">การติดตั้งและกำหนดค่า GroupDocs.Watermark Cloud SDK for Java</h2>
<p>เพิ่มการพึ่งพา Maven ลงใน <code>pom.xml</code> ของคุณ (หรือรายการ Gradle ที่เทียบเท่า) สิ่งนี้จะดึงเวอร์ชัน 23.8 ของ SDK มาใช้</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-watermark-cloud<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;version&gt;</span>23.8<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><strong>ข้อกำหนดเบื้องต้น</strong></p>
<ul>
<li>Java 8 หรือสูงกว่า</li>
<li>บัญชี GroupDocs Cloud ที่ใช้งานอยู่</li>
<li>Client ID และ Client Secret (พร้อมใช้งานในแดชบอร์ด GroupDocs Cloud)</li>
</ul>
<p><strong>ตัวอย่างการกำหนดค่า</strong></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>Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<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><p>ดาวน์โหลด JAR ล่าสุดจาก <a href="https://releases.groupdocs.cloud/watermark/java/">หน้าดาวน์โหลด</a>. สำหรับการใช้งานในสภาพแวดล้อมการผลิต ให้ใช้ใบอนุญาตที่ถูกต้องซึ่งได้รับจาก <a href="https://purchase.groupdocs.cloud/temporary-license/">หน้าใบอนุญาตชั่วคราว</a>.</p>
<h2 id="สรป">สรุป</h2>
<p>การเพิ่มข้อความ Overlay ลงใน GIF ด้วย REST ใน Java กลายเป็นการดำเนินการที่ทำซ้ำได้และทำงานบนเซิร์ฟเวอร์ด้วยความช่วยเหลือของ <a href="https://products.groupdocs.cloud/watermark/java/">GroupDocs.Watermark Cloud SDK for Java</a>. SDK ทำให้ซับซ้อนของการจัดการเฟรมที่เคลื่อนไหวเป็นเรื่องง่ายขึ้น ทำให้คุณสามารถมุ่งเน้นที่เนื้อหาของคำบรรยายหรือข้อความโปรโมชั่นได้ หลังจากรวมโค้ดตัวอย่างหรือกระบวนการ cURL แล้ว คุณสามารถปรับแต่งสไตล์ฟอนต์ สี และความทึบให้ตรงกับแบรนด์ของคุณได้ จำไว้ว่าให้จัดหาลิขสิทธิ์การใช้งานสำหรับการผลิต รายละเอียดราคาอยู่ในหน้าผลิตภัณฑ์ และสามารถรับลิขสิทธิ์ชั่วคราวสำหรับการทดสอบได้ผ่าน <a href="https://purchase.groupdocs.cloud/temporary-license/">หน้าลิขสิทธิ์ชั่วคราว</a>. Happy coding!</p>
<h2 id="faqs">FAQs</h2>
<ul>
<li>
<p><strong>ฉันจะเพิ่มข้อความ Overlay ไปยัง GIF โดยใช้ REST ใน Java อย่างไรเมื่อข้อความเปลี่ยนแปลงตามผู้ใช้?</strong><br>
สร้างอ็อบเจกต์ <code>TextWatermarkOptions</code> ในขณะรันไทม์ด้วยสตริงที่เฉพาะเจาะจงของผู้ใช้, จากนั้นเรียกใช้เมธอด <code>addWatermark</code> เดียวกัน. API จะประมวลผลแต่ละคำขอแยกกัน, ดังนั้นเนื้อหาแบบไดนามิกจึงได้รับการสนับสนุนอย่างเต็มที่.</p>
</li>
<li>
<p><strong>ฉันสามารถเพิ่มคำบรรยายให้กับ GIF แบบเคลื่อนไหวโดยไม่กระทบต่อความเร็วของการเคลื่อนไหวได้หรือไม่?</strong><br>
ใช่. วอเตอร์มาร์คจะถูกนำไปใช้กับแต่ละเฟรมโดยคงความหน่วงของเฟรมเดิมไว้. เพียงตั้งค่า <code>pageRange</code> เป็น <code>&quot;1-&quot;</code> เพื่อให้ทุกเฟรมได้รับการซ้อนทับเดียวกัน.</p>
</li>
<li>
<p><strong>รูปแบบใดบ้างที่รองรับสำหรับสีข้อความโอเวอร์เลย์?</strong><br>
SDK รองรับรหัสสี HEX (เช่น <code>#FF0000</code>) และชื่อสีมาตรฐานของ <a href="https://docs.fileformat.com/web/html/">HTML</a> ดูที่ <a href="https://reference.groupdocs.cloud/watermark/">อ้างอิง API</a> เพื่อดูรายการทั้งหมด</p>
</li>
<li>
<p><strong>ฉันต้องการใบอนุญาตสำหรับการพัฒนาและการทดสอบหรือไม่?</strong><br>
ใบอนุญาตชั่วคราวเพียงพอสำหรับการประเมินและการทดสอบ สำหรับการใช้งานในสภาพแวดล้อมการผลิต ให้ซื้อใบอนุญาตเต็มจากหน้าผลิตภัณฑ์และนำไปใช้โดยใช้ API การให้ใบอนุญาตของ SDK.</p>
</li>
</ul>
<h2 id="read-more">Read More</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/th/watermark/add-overlay-text-on-a-gif-using-rest-api-in-csharp/">เพิ่มข้อความซ้อนบน GIF ด้วย REST API ใน C#</a></li>
<li><a href="https://blog.groupdocs.cloud/th/watermark/add-watermark-to-images-using-java/">เพิ่มลายน้ำให้กับรูปภาพโดยใช้ Java</a></li>
<li><a href="https://blog.groupdocs.cloud/th/watermark/add-watermark-to-word-in-java-watermark-creator/">เพิ่มลายน้ำให้กับ Word ด้วย Java - Watermark Creator</a></li>
</ul>
]]></content:encoded>
    </item>
    
    <item>
      <title>ปกป้อง Excel ด้วยรหัสผ่านผ่าน REST ใน Java</title>
      <link>https://blog-qa.groupdocs.cloud/th/merger/password-protect-excel-via-rest-in-java/</link>
      <pubDate>Fri, 04 Sep 2026 12:18:34 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/th/merger/password-protect-excel-via-rest-in-java/</guid>
      <description>เรียนรู้วิธีป้องกันรหัสผ่านให้กับเวิร์กบุ๊ก Excel ผ่าน REST ใน Java ด้วย GroupDocs.Merger Cloud SDK. คู่มือขั้นตอนโดยละเอียด, ตัวอย่างโค้ด, และคำสั่ง cURL รวมอยู่ด้วย.</description>
      <content:encoded><![CDATA[<p>การซ่อนข้อมูลที่ละเอียดอ่อนในเวิร์กบุ๊ก Excel เป็นความต้องการทั่วไปสำหรับองค์กรที่แชร์รายงานภายในหรือกับพันธมิตร. <a href="https://products.groupdocs.cloud/merger/java/">GroupDocs.Merger Cloud SDK for Java</a> ช่วยให้ผู้พัฒนาสามารถเพิ่มการป้องกันด้วยรหัสผ่านให้กับไฟล์ <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> ผ่าน REST API อย่างง่าย. ในคู่มือนี้คุณจะได้เรียนรู้วิธีการ <strong>password Protect Excel via REST in Java</strong>, ดูตัวอย่าง Java แบบเต็ม, และเรียกใช้คำสั่ง cURL ที่เทียบเท่าสำหรับการผสานรวมกับคลาวด์.</p>
<h2 id="ขอกำหนดเบองตนและการตงคา">ข้อกำหนดเบื้องต้นและการตั้งค่า</h2>
<p>ก่อนที่คุณจะเริ่มต้น โปรดตรวจสอบว่าคุณมีสิ่งต่อไปนี้:</p>
<ul>
<li>ติดตั้ง Java 8 หรือเวอร์ชันที่สูงกว่า</li>
<li>Maven หรือ Gradle สำหรับการจัดการ dependencies</li>
<li>บัญชี GroupDocs Cloud พร้อม <strong>client ID</strong> และ <strong>client secret</strong></li>
<li>เข้าถึงที่เก็บข้อมูลคลาวด์ที่ไฟล์ Excel จะถูกเก็บไว้</li>
</ul>
<p>เพิ่มการพึ่งพา Maven ลงในไฟล์ <code>pom.xml</code> ของคุณ (หรือสแนปเพล็ต Gradle ที่เทียบเท่า):</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>คุณสามารถดาวน์โหลด JAR ล่าสุดได้จาก <a href="https://releases.groupdocs.cloud/merger/java/">หน้าดาวน์โหลด</a>. หลังจากเพิ่ม dependency แล้ว ให้สร้างวัตถุการกำหนดค่าด้วยข้อมูลประจำตัวของคุณ:</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>String clientId <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>String clientSecret <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>
</span></span><span style="display:flex;"><span>Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">(</span>clientId<span style="color:#f92672">,</span> clientSecret<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>config<span style="color:#f92672">);</span>
</span></span></code></pre></div><p>เมื่อไคลเอนต์พร้อมแล้ว คุณสามารถดำเนินการต่อไปยังขั้นตอนการปกป้องด้วยรหัสผ่านจริงได้</p>
<h2 id="ปกปองไฟล-excel-ดวยรหสผานผาน-rest-ใน-java-คมอแบบขนตอนตอขนตอน">ปกป้องไฟล์ Excel ด้วยรหัสผ่านผ่าน REST ใน Java: คู่มือแบบขั้นตอนต่อขั้นตอน</h2>
<h3 id="ขนตอนท-1-โหลดเอกสารตนทาง">ขั้นตอนที่ 1: โหลดเอกสารต้นทาง</h3>
<p>กำหนดตำแหน่งของไฟล์ XLSX ต้นฉบับในคลาวด์สตอเรจของคุณ.</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-java" data-lang="java"><span style="display:flex;"><span>FileInfo inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.xlsx&#34;</span><span style="color:#f92672">);</span>   <span style="color:#75715e">// source Excel file
</span></span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<h3 id="ขนตอนท-2-ตงคาเสนทางปลายทาง">ขั้นตอนที่ 2: ตั้งค่าเส้นทางปลายทาง</h3>
<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-java" data-lang="java"><span style="display:flex;"><span>String outputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output_protected.xlsx&#34;</span><span style="color:#f92672">;</span> <span style="color:#75715e">// destination file
</span></span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<h3 id="ขนตอนท-3-กำหนดคาตวเลอกการปองกนดวยรหสผาน">ขั้นตอนที่ 3: กำหนดค่าตัวเลือกการป้องกันด้วยรหัสผ่าน</h3>
<p>สร้างอ็อบเจ็กต์ <code>ProtectOptions</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>ProtectOptions protectOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ProtectOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputPath</span><span style="color:#f92672">(</span>outputPath<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setPassword</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MySecretPassword&#34;</span><span style="color:#f92672">);</span> <span style="color:#75715e">// desired password
</span></span></span></code></pre></div><h3 id="ขนตอน-4-สรางคำขอปกปองเอกสาร">ขั้นตอน 4: สร้างคำขอปกป้องเอกสาร</h3>
<p>ห่อหุ้มตัวเลือกใน <code>ProtectDocumentRequest</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-java" data-lang="java"><span style="display:flex;"><span>ProtectDocumentRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ProtectDocumentRequest<span style="color:#f92672">(</span>protectOptions<span style="color:#f92672">);</span>
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<h3 id="ขนตอนท-5-ดำเนนการคำขอและจดการการตอบกลบ">ขั้นตอนที่ 5: ดำเนินการคำขอและจัดการการตอบกลับ</h3>
<p>เรียกใช้เมธอด 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:#66d9ef">try</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    mergerApi<span style="color:#f92672">.</span><span style="color:#a6e22e">protectDocument</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</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;Excel file has been password protected successfully.&#34;</span><span style="color:#f92672">);</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;Protected file stored at: &#34;</span> <span style="color:#f92672">+</span> outputPath<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;Error while protecting the Excel file:&#34;</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;Status Code: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getCode</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;Message: &#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></code></pre></div><p>สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับแต่ละคลาส โปรดดูที่ <a href="https://reference.groupdocs.cloud/merger/">อ้างอิง API</a>.</p>
<h2 id="ตวอยางการทำงานเตมสำหรบการปองกนดวยรหสผาน-excel-ผาน-rest-ใน-java">ตัวอย่างการทำงานเต็มสำหรับการป้องกันด้วยรหัสผ่าน Excel ผ่าน REST ใน Java</h2>
<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-java" data-lang="java"><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.ApiException<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.Configuration<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.ProtectOptions<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.merger.cloud.model.requests.ProtectDocumentRequest<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">ProtectExcelExample</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">// Replace with your actual client credentials
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        String clientId <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>        String clientSecret <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>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Initialize the API configuration
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">(</span>clientId<span style="color:#f92672">,</span> clientSecret<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>config<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Define input and output file locations (relative to the storage root)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        FileInfo inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.xlsx&#34;</span><span style="color:#f92672">);</span>          <span style="color:#75715e">// source Excel file
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        String outputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output_protected.xlsx&#34;</span><span style="color:#f92672">;</span>  <span style="color:#75715e">// destination file
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Set password protection options
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        ProtectOptions protectOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ProtectOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span>inputFile<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setOutputPath</span><span style="color:#f92672">(</span>outputPath<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        protectOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setPassword</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;MySecretPassword&#34;</span><span style="color:#f92672">);</span> <span style="color:#75715e">// desired password
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Build the request
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        ProtectDocumentRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ProtectDocumentRequest<span style="color:#f92672">(</span>protectOptions<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">// Execute the password protection operation
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            mergerApi<span style="color:#f92672">.</span><span style="color:#a6e22e">protectDocument</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</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;Excel file has been password protected successfully.&#34;</span><span style="color:#f92672">);</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;Protected file stored at: &#34;</span> <span style="color:#f92672">+</span> outputPath<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;Error while protecting the Excel file:&#34;</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;Status Code: &#34;</span> <span style="color:#f92672">+</span> e<span style="color:#f92672">.</span><span style="color:#a6e22e">getCode</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;Message: &#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>หมายเหตุ:</strong> ตัวอย่างโค้ดนี้แสดงการทำงานหลัก ก่อนนำไปใช้ในโครงการของคุณ โปรดตรวจสอบให้แน่ใจว่าได้อัปเดตเส้นทางไฟล์ (<code>input.xlsx</code>, <code>output_protected.xlsx</code>) ให้ตรงกับตำแหน่งไฟล์จริงของคุณ ตรวจสอบว่าขึ้นตอนการพึ่งพาทั้งหมดได้ติดตั้งอย่างถูกต้องและทำการทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากพบปัญหาใด ๆ โปรดดูที่ <a href="https://docs.groupdocs.cloud/merger/">เอกสารอย่างเป็นทางการ</a> หรือ ติดต่อทีม <a href="https://forum.groupdocs.cloud/c/merger/18">ทีมสนับสนุน</a> เพื่อขอความช่วยเหลือ.</p>
</blockquote>
<h2 id="ปกปองเวรกบก-excel-ผาน-rest-api-ดวย-curl">ปกป้องเวิร์กบุ๊ก Excel ผ่าน REST API ด้วย cURL</h2>
<p>ต่อไปนี้เป็นชุดคำสั่ง cURL ที่ทำการป้องกันด้วยรหัสผ่านเดียวกันโดยตรงกับ endpoint ของ REST</p>
<p><strong>1. ตรวจสอบสิทธิ์และรับโทเค็นการเข้าถึง</strong></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;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;client_id&#34;: &#34;YOUR_CLIENT_ID&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;client_secret&#34;: &#34;YOUR_CLIENT_SECRET&#34;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><p>การตอบสนองจะมี <code>access_token</code> ที่คุณจะใช้ในการเรียกต่อไป</p>
<p><strong>2. อัปโหลดไฟล์ XLSX ต้นฉบับ</strong></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/input.xlsx&#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 @input.xlsx
</span></span></code></pre></div><p><strong>3. ขอการป้องกันด้วยรหัสผ่าน</strong></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/protect&#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;input.xlsx&#34; },
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;outputPath&#34;: &#34;output_protected.xlsx&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;password&#34;: &#34;MySecretPassword&#34;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><p><strong>4. ดาวน์โหลดเวิร์กบุ๊กที่ได้รับการป้องกัน</strong></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/output_protected.xlsx&#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 output_protected.xlsx
</span></span></code></pre></div><p>คำสั่งเหล่านี้ช่วยให้คุณรวมกระบวนการปกป้องเข้าไปในสคริปต์หรือไพป์ไลน์ CI ได้ สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ <a href="https://docs.groupdocs.cloud/merger/">เอกสาร API อย่างเป็นทางการ</a>.</p>
<h2 id="สรป">สรุป</h2>
<p>การใช้งาน <strong>password Protect Excel via REST in Java</strong> ทำได้อย่างง่ายดายด้วย GroupDocs.Merger Cloud SDK for Java. โดยทำตามขั้นตอนข้างต้น คุณสามารถปกป้องเวิร์กบุ๊ก Excel, ทำกระบวนการอัตโนมัติในแอปพลิเคชันฝั่งเซิร์ฟเวอร์, และรักษาข้อมูลที่สำคัญให้ปลอดภัย. อย่าลืมรับใบอนุญาตที่เหมาะสมสำหรับการใช้งานในผลิตภัณฑ์; ข้อมูลราคาอยู่ในหน้าผลิตภัณฑ์และคุณสามารถเริ่มต้นด้วย <a href="https://purchase.groupdocs.cloud/temporary-license/">ใบอนุญาตชั่วคราว</a> เพื่อประเมินไลบรารี. ขอให้สนุกกับการเขียนโค้ด!</p>
<h2 id="คำถามทพบบอย">คำถามที่พบบ่อย</h2>
<ul>
<li>
<p><strong>การป้องกันด้วยรหัสผ่าน Excel ผ่าน REST ใน Java แตกต่างจากการเข้ารหัสแบบโลคัลอย่างไร?</strong><br>
API บนคลาวด์ทำการเข้ารหัสบนเซิร์ฟเวอร์ ดังนั้นคุณไม่จำเป็นต้องจัดการไลบรารีการเข้ารหัสแบบคริปโตกราฟิกในเครื่อง SDK จะจัดการการสร้างคำขอและการแยกผลตอบกลับ ทำให้การรวมระบบง่ายขึ้น</p>
</li>
<li>
<p><strong>สามารถตั้งค่าตัวเลือกการป้องกันเพิ่มเติม เช่น โหมดอ่าน‑อย่าง‑เดียวได้หรือไม่?</strong><br>
คลาส <code>ProtectOptions</code> ปัจจุบันมุ่งเน้นที่การป้องกันด้วยรหัสผ่าน สำหรับคุณลักษณะความปลอดภัยขั้นสูงกว่า ให้ดูที่ <a href="https://reference.groupdocs.cloud/merger/">API reference</a> เพื่อดูพารามิเตอร์ใหม่ ๆ</p>
</li>
<li>
<p><strong>รูปแบบไฟล์ใดบ้างที่รองรับการป้องกันด้วยรหัสผ่าน?</strong><br>
API ของ Merger ปัจจุบันรองรับ XLSX, <a href="https://docs.fileformat.com/word-processing/docx/">DOCX</a>, <a href="https://docs.fileformat.com/presentation/pptx/">PPTX</a>, และ <a href="https://docs.fileformat.com/pdf">PDF</a> สำหรับการเข้ารหัส. ดูที่ <a href="https://docs.groupdocs.cloud/merger/">เอกสารอย่างเป็นทางการ</a> เพื่อดูรายการทั้งหมด.</p>
</li>
<li>
<p><strong>ฉันต้องการใบอนุญาตเพื่อรันตัวอย่างในสภาพแวดล้อมการพัฒนาหรือไม่?</strong><br>
การพัฒนาและการทดสอบสามารถทำได้ด้วยใบอนุญาตชั่วคราว การปรับใช้ในสภาพแวดล้อมการผลิตต้องการใบอนุญาตที่ต้องชำระเงิน ซึ่งคุณสามารถซื้อได้ผ่านหน้าผลิตภัณฑ์</p>
</li>
</ul>
<h2 id="อานเพมเตม">อ่านเพิ่มเติม</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/th/merger/password-protect-powerpoint-files-in-nodejs/">ป้องกันรหัสผ่านไฟล์ PowerPoint ใน Node.js</a></li>
<li><a href="https://blog.groupdocs.cloud/th/merger/password-protect-excel-files-using-rest-api-in-python/">ป้องกันรหัสผ่านไฟล์ Excel ด้วย REST API ใน Python</a></li>
<li><a href="https://blog.groupdocs.cloud/th/merger/combine-excel-sheets-in-java-excel-files-merger/">รวมแผ่นงาน Excel ใน Java - ตัวรวมไฟล์ Excel</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
