<?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>pdf annotation removal on Document Processing REST APIs | GroupDocs Cloud</title>
    <link>https://blog-qa.groupdocs.cloud/fa/tag/pdf-annotation-removal/</link>
    <description>Recent content in pdf annotation removal on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fa</language>
    <lastBuildDate>Wed, 21 Oct 2026 13:18:44 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/fa/tag/pdf-annotation-removal/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>حذف اشیاء حاشیه‌نویسی از PDF با استفاده از REST در Node.JS</title>
      <link>https://blog-qa.groupdocs.cloud/fa/annotation/remove-annotation-objects-from-pdf-with-rest-in-nodejs/</link>
      <pubDate>Wed, 21 Oct 2026 13:18:44 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/fa/annotation/remove-annotation-objects-from-pdf-with-rest-in-nodejs/</guid>
      <description>نحوه حذف اشیاء Annotation از PDF با استفاده از REST در Node.JS با بهره‌گیری از GroupDocs.Annotation Cloud SDK را بیاموزید. راهنمای گام به گام با کد، cURL و روش‌ها.</description>
      <content:encoded><![CDATA[<p>حذف یادداشت‌ها، هایلایت‌ها یا علامت‌های جوهری ناخواسته از PDFها یک نیاز مکرر هنگام آماده‌سازی اسناد تمیز برای توزیع است. <a href="https://products.groupdocs.cloud/annotation/nodejs/">GroupDocs.Annotation Cloud SDK for Node.js</a> یک کتابخانه قدرتمند مبتنی بر REST ارائه می‌دهد که به شما امکان مدیریت حاشیه‌نویسی‌های <a href="https://docs.fileformat.com/pdf">PDF</a> را به‌صورت برنامه‌نویسی می‌دهد. این راهنما به شما نشان می‌دهد چگونه اشیای Annotation را از PDF با استفاده از REST در Node.JS به‌صورت گام‌به‌گام حذف کنید. شما یک مثال کامل کد، دستورات cURL معادل، نکات پیکربندی، و توصیه‌های بهترین روش را خواهید دید تا حذف حاشیه‌نویسی را در سرویس‌های خود یکپارچه کنید.</p>
<h2 id="مثال-کامل-کارآمد-برای-حذف-اشیاء-حاشیهنویسی-از-pdf-با-استفاده-از-rest-در-nodejs">مثال کامل کارآمد برای حذف اشیاء حاشیه‌نویسی از PDF با استفاده از REST در Node.JS</h2>
<p>این مثال نشان می‌دهد که چگونه یک PDF را بارگذاری کنید، تمام حاشیه‌نویسی‌های آن را حذف کنید و فایل پاک‌سازی‌شده را با استفاده از GroupDocs.Annotation 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-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">fs</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">require</span>(<span style="color:#e6db74">&#39;fs&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">path</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">require</span>(<span style="color:#e6db74">&#39;path&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">require</span>(<span style="color:#e6db74">&#34;@groupdocs/annotation-cloud&#34;</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// ==== Authentication =========================================================
</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">GroupDocsAnnotationCloud</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">annotationsApi</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">AnnotationsApi</span>(<span style="color:#a6e22e">config</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">storageApi</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">StorageApi</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">// ==== Local &amp; Remote file definitions =======================================
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">localInputPath</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">path</span>.<span style="color:#a6e22e">resolve</span>(<span style="color:#a6e22e">__dirname</span>, <span style="color:#e6db74">&#34;input.pdf&#34;</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">localOutputPath</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">path</span>.<span style="color:#a6e22e">resolve</span>(<span style="color:#a6e22e">__dirname</span>, <span style="color:#e6db74">&#34;output.pdf&#34;</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">remoteFilePath</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;input.pdf&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// ==== Main workflow ==========================================================
</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:#75715e">// 1. Upload PDF to GroupDocs Cloud storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">fileBytes</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">fs</span>.<span style="color:#a6e22e">readFileSync</span>(<span style="color:#a6e22e">localInputPath</span>);
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">uploadRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">UploadFileRequest</span>({
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">path</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">remoteFilePath</span>,
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">file</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">fileBytes</span>
</span></span><span style="display:flex;"><span>    });
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">storageApi</span>.<span style="color:#a6e22e">uploadFile</span>(<span style="color:#a6e22e">uploadRequest</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 2. Build FileInfo object for the uploaded PDF
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">fileInfo</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</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">remoteFilePath</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">// 3. Retrieve all existing annotations
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">getAnnotationsRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">GetAnnotationsRequest</span>({
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">fileInfo</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">fileInfo</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">annotationsResult</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">annotationsApi</span>.<span style="color:#a6e22e">getAnnotations</span>(<span style="color:#a6e22e">getAnnotationsRequest</span>);
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">annotationIds</span> <span style="color:#f92672">=</span> (<span style="color:#a6e22e">annotationsResult</span>.<span style="color:#a6e22e">annotations</span> <span style="color:#f92672">||</span> []).<span style="color:#a6e22e">map</span>(<span style="color:#a6e22e">a</span> =&gt; <span style="color:#a6e22e">a</span>.<span style="color:#a6e22e">id</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 4. Delete all annotations (if any)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">annotationIds</span>.<span style="color:#a6e22e">length</span> <span style="color:#f92672">&gt;</span> <span style="color:#ae81ff">0</span>) {
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">deleteRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">DeleteAnnotationsRequest</span>({
</span></span><span style="display:flex;"><span>            <span style="color:#a6e22e">fileInfo</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">fileInfo</span>,
</span></span><span style="display:flex;"><span>            <span style="color:#a6e22e">annotationIds</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">annotationIds</span>
</span></span><span style="display:flex;"><span>        });
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">annotationsApi</span>.<span style="color:#a6e22e">deleteAnnotations</span>(<span style="color:#a6e22e">deleteRequest</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">// 5. Download the cleaned PDF back to local storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">downloadRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">DownloadFileRequest</span>({
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">path</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">remoteFilePath</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">fileStream</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">storageApi</span>.<span style="color:#a6e22e">downloadFile</span>(<span style="color:#a6e22e">downloadRequest</span>);
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">fs</span>.<span style="color:#a6e22e">writeFileSync</span>(<span style="color:#a6e22e">localOutputPath</span>, <span style="color:#a6e22e">fileStream</span>);
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">log</span>(<span style="color:#e6db74">`All annotations removed. Clean file saved to </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">localOutputPath</span><span style="color:#e6db74">}</span><span style="color:#e6db74">`</span>);
</span></span><span style="display:flex;"><span>})();
</span></span></code></pre></div><blockquote>
<p><strong>Note:</strong> این مثال کد عملکرد اصلی را نشان می‌دهد. قبل از استفاده از آن در پروژه خود، مطمئن شوید که مسیرهای فایل و مقادیر پیکربندی را به‌گونه‌ای به‌روز کنید که با محیط واقعی شما مطابقت داشته باشد، اطمینان حاصل کنید که تمام وابستگی‌های مورد نیاز به‌درستی نصب شده‌اند و به‌طور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به <a href="https://docs.groupdocs.cloud/annotation/">مستندات رسمی</a> مراجعه کنید یا برای دریافت کمک به <a href="https://forum.groupdocs.cloud/c/annotation/10">تیم پشتیبانی</a> مراجعه کنید.</p>
</blockquote>
<h2 id="حذف-حاشیهنویسیهای-pdf-از-طریق-rest-api-با-استفاده-از-curl">حذف حاشیه‌نویسی‌های PDF از طریق REST API با استفاده از cURL</h2>
<p>در زیر دستورات cURL آمده است که همان جریان کار حذف حاشیه‌نویسی را از طریق GroupDocs.Annotation Cloud REST endpoints انجام می‌دهند.</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">&#34;{\&#34;client_id\&#34;:\&#34;YOUR_CLIENT_ID\&#34;,\&#34;client_secret\&#34;:\&#34;YOUR_CLIENT_SECRET\&#34;}&#34;</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"># 2. Upload the source PDF</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.pdf&#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/pdf&#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;@input.pdf&#34;</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"># 3. Retrieve annotation IDs</span>
</span></span><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/annotation/annotations?filePath=input.pdf&#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></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. Delete all retrieved annotations</span>
</span></span><span style="display:flex;"><span>curl -X DELETE <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/annotation/annotations?filePath=input.pdf&#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">&#34;{\&#34;annotationIds\&#34;:[\&#34;id1\&#34;,\&#34;id2\&#34;]}&#34;</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"># 5. Download the cleaned PDF</span>
</span></span><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/input.pdf&#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.pdf
</span></span></code></pre></div><p>برای دریافت فهرست کامل نقاط انتهایی و پارامترها، به <a href="https://reference.groupdocs.cloud/annotation/">مستندات رسمی API</a> مراجعه کنید.</p>
<h2 id="نحوه-حذف-اشیاء-حاشیهنویسی-از-pdf-با-rest-در-nodejs">نحوه حذف اشیاء حاشیه‌نویسی از PDF با REST در Node.JS</h2>
<ol>
<li>
<p><strong>راه‌اندازی احراز هویت</strong> - کلاس <code>Configuration</code> با <code>clientId</code> و <code>clientSecret</code> شما نمونه‌سازی می‌شود و یک زمینهٔ احراز هویت برای تمام فراخوانی‌های 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-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">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">Configuration</span>(<span style="color:#a6e22e">clientId</span>, <span style="color:#a6e22e">clientSecret</span>);
</span></span></code></pre></div></li>
<li>
<p><strong>بارگذاری فایل</strong> - <code>UploadFileRequest</code> بایت‌های PDF محلی را به ذخیره‌سازی GroupDocs Cloud ارسال می‌کند. متد <code>storageApi.uploadFile</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-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">uploadRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">UploadFileRequest</span>({
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">path</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">remoteFilePath</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">file</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">fileBytes</span>
</span></span><span style="display:flex;"><span>});
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">await</span> <span style="color:#a6e22e">storageApi</span>.<span style="color:#a6e22e">uploadFile</span>(<span style="color:#a6e22e">uploadRequest</span>);
</span></span></code></pre></div></li>
<li>
<p><strong>دریافت حاشیه‌نویسی‌ها</strong> - <code>GetAnnotationsRequest</code> یک شی درخواست با مرجع <code>FileInfo</code> می‌سازد. فراخوانی <code>annotationsApi.getAnnotations</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-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">getAnnotationsRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">GetAnnotationsRequest</span>({
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">fileInfo</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">fileInfo</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">annotationsResult</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">annotationsApi</span>.<span style="color:#a6e22e">getAnnotations</span>(<span style="color:#a6e22e">getAnnotationsRequest</span>);
</span></span></code></pre></div></li>
<li>
<p><strong>حذف حاشیه‌نویسی‌ها</strong> - اگر شناسه‌هایی وجود داشته باشند، <code>DeleteAnnotationsRequest</code> پر می‌شود و به <code>annotationsApi.deleteAnnotations</code> ارسال می‌شود، که حاشیه‌نویسی‌ها را به‌صورت دائمی از PDF ذخیره‌شده حذف می‌کند.</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">deleteRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">DeleteAnnotationsRequest</span>({
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">fileInfo</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">fileInfo</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">annotationIds</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">annotationIds</span>
</span></span><span style="display:flex;"><span>});
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">await</span> <span style="color:#a6e22e">annotationsApi</span>.<span style="color:#a6e22e">deleteAnnotations</span>(<span style="color:#a6e22e">deleteRequest</span>);
</span></span></code></pre></div></li>
<li>
<p><strong>دانلود PDF تمیز</strong> - در نهایت، <code>DownloadFileRequest</code> فایل به‌روز شده را دریافت می‌کند و <code>fs.writeFileSync</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-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">downloadRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">DownloadFileRequest</span>({
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">path</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">remoteFilePath</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">fileStream</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">storageApi</span>.<span style="color:#a6e22e">downloadFile</span>(<span style="color:#a6e22e">downloadRequest</span>);
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">fs</span>.<span style="color:#a6e22e">writeFileSync</span>(<span style="color:#a6e22e">localOutputPath</span>, <span style="color:#a6e22e">fileStream</span>);
</span></span></code></pre></div></li>
</ol>
<p>برای تعریف‌های دقیق کلاس و متد، به <a href="https://reference.groupdocs.cloud/annotation/">مرجع API</a> مراجعه کنید.</p>
<h2 id="نصب-و-پیکربندی-groupdocsannotation-cloud-sdk-for-nodejs">نصب و پیکربندی GroupDocs.Annotation Cloud SDK for Node.js</h2>
<p>SDK به‌صورت یک بسته npm توزیع می‌شود. آن را با فرمان زیر نصب کنید و سپس در پروژهٔ خود require کنید.</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>npm install groupdocs-annotation-cloud
</span></span></code></pre></div><p>می‌توانید آخرین بسته را به‌صورت مستقیم از <a href="https://github.com/groupdocs-annotation-cloud/groupdocs-annotation-cloud-node">صفحهٔ انتشارهای GitHub</a> یا <a href="https://releases.groupdocs.cloud/annotation/nodejs/">آدرس دانلود رسمی</a> دریافت کنید.</p>
<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-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">GroupDocsAnnotationCloud</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">require</span>(<span style="color:#e6db74">&#34;@groupdocs/annotation-cloud&#34;</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">GroupDocsAnnotationCloud</span>.<span style="color:#a6e22e">Configuration</span>(<span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>, <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span>);
</span></span></code></pre></div><p>اطمینان حاصل کنید که محیط زمان اجرای شما الزامات نسخه Node.js را برآورده می‌کند و یک حساب کاربری معتبر GroupDocs برای دریافت اعتبارهای مشتری دارید.</p>
<h2 id="گزینهها-و-تنظیمات-حذف-حاشیهنویسی">گزینه‌ها و تنظیمات حذف حاشیه‌نویسی</h2>
<p>SDK چندین پارامتر را که می‌توانید تنظیم کنید، در اختیار می‌گذارد:</p>
<ul>
<li><strong>clientId / clientSecret</strong> - اعتبارهای احراز هویت OAuth. آنها را در سازنده <code>Configuration</code> تنظیم کنید.</li>
<li><strong>fileInfo.filePath</strong> - مسیر PDF در ذخیره‌سازی GroupDocs Cloud. اگر فایل‌ها را در پوشه‌ای متفاوت ذخیره می‌کنید، این مقدار را تنظیم کنید.</li>
<li><strong>annotationIds</strong> - آرایه‌ای از شناسه‌ها که توسط <code>GetAnnotations</code> برگردانده می‌شود. ارائه یک زیرمجموعه امکان حذف انتخابی را فراهم می‌کند.</li>
</ul>
<p>تنظیمات اضافی مانند زمان‌سنجی درخواست‌ها و پیکربندی پروکسی در مستندات SDK موجود است؛ برای فهرست کامل، به <a href="https://docs.groupdocs.cloud/annotation/">مستندات رسمی</a> مراجعه کنید.</p>
<h2 id="بهترین-روشها-برای-حذف-حاشیهنویسیهای-pdf-از-طریق-rest">بهترین روش‌ها برای حذف حاشیه‌نویسی‌های PDF از طریق REST</h2>
<ul>
<li><strong>اعتبارسنجی شناسه‌های حاشیه‌نویسی</strong> - همیشه بررسی کنید که شناسه‌هایی که قصد حذف آن‌ها را دارید وجود داشته باشند؛ تلاش برای حذف شناسه‌های غیر موجود می‌تواند منجر به خطای 404 شود.</li>
<li><strong>استفاده از HTTPS</strong> - تمام فراخوانی‌های API باید از طریق HTTPS انجام شوند تا اعتبارنامه‌ها و داده‌های سند شما محافظت شوند.</li>
<li><strong>مدیریت فایل‌های بزرگ با بارگذاری قطعه‌ای</strong> - برای فایل‌های PDF بزرگ‌تر از ۱۰۰ مگابایت، ترجیحاً از نقطه انتهایی بارگذاری چندبخشی استفاده کنید تا از زمان‌سنجی جلوگیری شود.</li>
<li><strong>ثبت لاگ پاسخ‌های API</strong> - شناسه‌های درخواست و پاسخ‌ها را برای مسیرهای حسابرسی و رفع مشکل آسان‌تر ذخیره کنید.</li>
<li><strong>استفاده مجدد از توکن‌های دسترسی</strong> - توکن OAuth را تا زمان انقضا در کش نگه دارید تا بار احراز هویت کاهش یابد.</li>
</ul>
<h2 id="سوالات-متداول">سوالات متداول</h2>
<ul>
<li>
<p><strong>چگونه می‌توانم با GroupDocs.Annotation Cloud API احراز هویت کنم؟</strong><br>
یک شناسه کلاینت (client ID) و رمز (secret) را از حساب GroupDocs خود دریافت کنید، سپس یک توکن دسترسی را از طریق نقطه انتهایی OAuth درخواست کنید. برای جزئیات، به <a href="https://docs.groupdocs.cloud/annotation/">مستندات رسمی</a> مراجعه کنید.</p>
</li>
<li>
<p><strong>آیا می‌توانم حاشیه‌نویسی‌های خاص را به جای همه حذف کنم؟</strong><br>
بله، شناسه‌های حاشیه‌نویسی‌هایی که می‌خواهید حذف کنید را در DeleteAnnotationsRequest ارائه دهید. SDK پس از فراخوانی GetAnnotations فهرست شناسه‌های حاشیه‌نویسی را برمی‌گرداند.</p>
</li>
<li>
<p><strong>چگونه می‌توانم اشیاء Annotation را از PDF با REST در Node.JS حذف کنم؟</strong><br>
برای حذف اشیاء Annotation از PDF با استفاده از REST در Node.JS، از GroupDocs.Annotation Cloud SDK for Node.js استفاده کنید تا پس از دریافت شناسه‌های حاشیه‌نویسی، endpoint DeleteAnnotations را فراخوانی کنید. جریان کامل کار در مثال کد و بخش cURL این راهنما نشان داده شده است.</p>
</li>
<li>
<p><strong>برای استفاده در تولید چه مجوزی لازم است؟</strong><br>
برای تولید به یک مجوز پرداختی نیاز است. می‌توانید در حین ارزیابی، یک مجوز موقت را از <a href="https://purchase.groupdocs.cloud/temporary-license/">صفحهٔ مجوز موقت</a> دریافت کنید.</p>
</li>
</ul>
<h2 id="مطالعه-بیشتر">مطالعه بیشتر</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/fa/annotation/extract-or-remove-annotations-from-pdf-using-rest-api-in-node-js/">استخراج یا حذف حاشیه‌نویسی‌ها از PDF با استفاده از REST API در Node.js</a></li>
<li><a href="https://blog.groupdocs.cloud/fa/annotation/strikethrough-text-in-a-pdf-using-nodejs/">متن خط خورده در PDF با Node.js و REST API</a></li>
<li><a href="https://blog.groupdocs.cloud/fa/annotation/remove-annotations-from-pdf-using-rest-api-in-python/">حذف حاشیه‌نویسی‌ها از PDF با استفاده از REST API در Python</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
