<?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>word document automation on Conholdate Blog</title>
    <link>https://blog-qa.conholdate.com/fa/tag/word-document-automation/</link>
    <description>Recent content in word document automation on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fa</language>
    <lastBuildDate>Tue, 28 Jul 2026 21:31:55 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/fa/tag/word-document-automation/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>افزودن فهرست مطالب به سند Word در Java</title>
      <link>https://blog-qa.conholdate.com/fa/total/add-table-of-contents-to-word-document-in-java/</link>
      <pubDate>Tue, 28 Jul 2026 21:31:55 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/fa/total/add-table-of-contents-to-word-document-in-java/</guid>
      <description>یاد بگیرید چگونه فهرست مطالب را به یک سند Word در Java اضافه کنید با استفاده از Conholdate.Total for Java. راهنمای گام‌به‌گام با کد کامل، تنظیمات و بهترین شیوه‌ها.</description>
      <content:encoded><![CDATA[<p>ایجاد یک فهرست قابل پیمایش برای گزارش‌ها یا راهنماهای بزرگ ورد که کاربران نیاز به مرور سریع دارند، ضروری است. <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> یک SDK قدرتمند ارائه می‌دهد که کار با فایل‌های <a href="https://docs.fileformat.com/word-processing/docx/">DOCX</a> را مستقیماً از برنامه‌های Java ساده می‌کند. در این راهنمای گام‌به‌گام، نحوه افزودن فهرست به یک سند Word در Java را یاد می‌گیرید، که شامل تنظیمات، توضیح کد و بهترین شیوه‌ها می‌شود.</p>
<h2 id="مثال-کامل-عملی-برای-افزودن-فهرست-مطالب-به-سند-word-در-java">مثال کامل عملی برای افزودن فهرست مطالب به سند Word در Java</h2>
<p>مثال زیر نشان می‌دهد که چگونه یک فهرست مطالب را در یک فایل DOCX موجود با استفاده از Conholdate.Total for Java وارد کنید.</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.words.Document<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.words.DocumentBuilder<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.words.TableOfContentsOptions<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.words.SaveFormat<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.words.TabLeader<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">AddTableOfContentsExample</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:#66d9ef">throws</span> Exception <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// Paths to the source and destination Word documents
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        String inputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;input.docx&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>        String outputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output.docx&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Load the existing document, add a TOC, and save the result
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        <span style="color:#66d9ef">try</span> <span style="color:#f92672">(</span>Document doc <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Document<span style="color:#f92672">(</span>inputPath<span style="color:#f92672">))</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            DocumentBuilder builder <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> DocumentBuilder<span style="color:#f92672">(</span>doc<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Move cursor to the beginning of the document where the TOC will be inserted
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            builder<span style="color:#f92672">.</span><span style="color:#a6e22e">moveToDocumentStart</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Configure TOC options
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            TableOfContentsOptions tocOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> TableOfContentsOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>            tocOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setUpperHeadingLevel</span><span style="color:#f92672">(</span>1<span style="color:#f92672">);</span>          <span style="color:#75715e">// Include headings from level 1
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            tocOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setLowerHeadingLevel</span><span style="color:#f92672">(</span>3<span style="color:#f92672">);</span>          <span style="color:#75715e">// up to level 3
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            tocOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setRightAlignPageNumbers</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>  <span style="color:#75715e">// Align page numbers to the right
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            tocOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setUseHyperlinks</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>           <span style="color:#75715e">// Make entries clickable
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            tocOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setTabLeader</span><span style="color:#f92672">(</span>TabLeader<span style="color:#f92672">.</span><span style="color:#a6e22e">DOTS</span><span style="color:#f92672">);</span>     <span style="color:#75715e">// Use dotted leader
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Insert the Table of Contents
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            builder<span style="color:#f92672">.</span><span style="color:#a6e22e">insertTableOfContents</span><span style="color:#f92672">(</span>tocOptions<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Save the modified document
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            doc<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span>outputPath<span style="color:#f92672">,</span> SaveFormat<span style="color:#f92672">.</span><span style="color:#a6e22e">DOCX</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.docx</code>، <code>output.docx</code> و غیره) را به‌گونه‌ای به‌روزرسانی کنید که با مکان‌های واقعی فایل‌های شما مطابقت داشته باشد، بررسی کنید که تمام وابستگی‌های مورد نیاز به‌درستی نصب شده‌اند و به‌طور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به <a href="https://docs.conholdate.com/java/">مستندات رسمی</a> مراجعه کنید یا برای دریافت کمک با <a href="https://forum.conholdate.com/c/total/5">تیم پشتیبانی</a> تماس بگیرید.</p>
</blockquote>
<h2 id="درک-افزودن-فهرست-مطالب-به-سند-word-در-کد-java">درک افزودن فهرست مطالب به سند Word در کد Java</h2>
<p>در ادامه تجزیه و تحلیل گام‌های اصلی که توسط کد نمونه انجام می‌شود:</p>
<ol>
<li><strong>بارگذاری سند منبع</strong> - کلاس <code>Document</code> فایل DOCX موجود را می‌خواند.</li>
</ol>
<!-- raw HTML omitted -->
<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>Document doc <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Document<span style="color:#f92672">(</span>inputPath<span style="color:#f92672">))</span> <span style="color:#f92672">{</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<ol start="2">
<li><strong>ایجاد یک DocumentBuilder</strong> - <code>DocumentBuilder</code> متدهایی برای ویرایش محتوای سند فراهم می‌کند.</li>
</ol>
<!-- raw HTML omitted -->
<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>DocumentBuilder builder <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> DocumentBuilder<span style="color:#f92672">(</span>doc<span style="color:#f92672">);</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<ol start="3">
<li><strong>موقعیت‌گذاری مکان‌نما</strong> - <code>moveToDocumentStart()</code> نقطه درج را به ابتدای فایل منتقل می‌کند، به‌طوری که TOC قبل از هر محتوایی ظاهر شود.</li>
</ol>
<!-- raw HTML omitted -->
<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>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">moveToDocumentStart</span><span style="color:#f92672">();</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<ol start="4">
<li><strong>پیکربندی گزینه‌های فهرست مطالب</strong> - <code>TableOfContentsOptions</code> به شما امکان می‌دهد سطوح سرصفحه، تراز شماره صفحه، استفاده از پیوندهای فراگیر و سبک رهبری تب را تعریف کنید.</li>
</ol>
<!-- raw HTML omitted -->
<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>TableOfContentsOptions tocOptions <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> TableOfContentsOptions<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>tocOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setUpperHeadingLevel</span><span style="color:#f92672">(</span>1<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>tocOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setLowerHeadingLevel</span><span style="color:#f92672">(</span>3<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>tocOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setRightAlignPageNumbers</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>tocOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setUseHyperlinks</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>tocOptions<span style="color:#f92672">.</span><span style="color:#a6e22e">setTabLeader</span><span style="color:#f92672">(</span>TabLeader<span style="color:#f92672">.</span><span style="color:#a6e22e">DOTS</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<p>مرجع دقیق API در صفحه <a href="https://reference.conholdate.com/java/">مرجع API</a> در دسترس است.</p>
<ol start="5">
<li><strong>درج فهرست مطالب و ذخیره</strong> - <code>insertTableOfContents</code> فیلد را اضافه می‌کند و <code>doc.save</code> فایل به‌روزشده را در قالب DOCX می‌نویسد.</li>
</ol>
<!-- raw HTML omitted -->
<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>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">insertTableOfContents</span><span style="color:#f92672">(</span>tocOptions<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>doc<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span>outputPath<span style="color:#f92672">,</span> SaveFormat<span style="color:#f92672">.</span><span style="color:#a6e22e">DOCX</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<h2 id="نصب-و-پیکربندی-conholdatetotal-for-java">نصب و پیکربندی Conholdate.Total for Java</h2>
<p>مخزن Maven Conholdate و وابستگی SDK را به <code>pom.xml</code> خود اضافه کنید:</p>
<!-- raw HTML omitted -->
<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;repositories&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;repository&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;id&gt;</span>conholdate-repo<span style="color:#f92672">&lt;/id&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;name&gt;</span>Conholdate Maven Repository<span style="color:#f92672">&lt;/name&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;url&gt;</span>https://repository.conholdate.com/repo/<span style="color:#f92672">&lt;/url&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;/repository&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/repositories&gt;</span>
</span></span><span style="display:flex;"><span>
</span></span><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.conholdate<span style="color:#f92672">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;artifactId&gt;</span>conholdate-total<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;version&gt;</span>24.9<span style="color:#f92672">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;type&gt;</span>pom<span style="color:#f92672">&lt;/type&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/dependency&gt;</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<p>آخرین بسته SDK را از <a href="https://releases.conholdate.com/total/java/">صفحه دانلود</a> دریافت کنید. SDK به Java 8 یا بالاتر نیاز دارد و بر روی هر JVM استانداردی اجرا می‌شود. هیچ مؤلفه زمان اجرا اضافی مورد نیاز نیست.</p>
<h2 id="بهترین-روشها-برای-ایجاد-فهرست-مطالب-word-با-java">بهترین روش‌ها برای ایجاد فهرست مطالب Word با Java</h2>
<ul>
<li><strong>استفاده از سبک‌های سرفصل یکسان</strong> - فهرست مطالب (TOC) پاراگراف‌های دارای سطوح سرفصل داخلی (Heading 1، Heading 2 و غیره) را شناسایی می‌کند. اطمینان حاصل کنید که سند منبع شما از این سبک‌ها برای تولید ورودی‌های قابل اعتماد استفاده می‌کند.</li>
<li><strong>محدود کردن عمق سرفصل</strong> - گنجاندن سطوح بیش از حد می‌تواند فهرست مطالب را غیرقابل مدیریت کند. گزارش‌های معمولی از سطوح 1‑3 استفاده می‌کنند، همان‌طور که در مثال نشان داده شده است.</li>
<li><strong>فعال‌سازی پیوندهای فراخوانی</strong> - تنظیم <code>setUseHyperlinks(true)</code> ورودی‌های قابل کلیک ایجاد می‌کند و ناوبری در سند نهایی را بهبود می‌بخشد.</li>
<li><strong>اعتبارسنجی پس از درج</strong> - سند DOCX تولید شده را باز کنید و فیلدها را به‌روزرسانی کنید (Ctrl +A، F9) تا اطمینان حاصل شود شماره‌های صفحه <a href="https://docs.fileformat.com/spreadsheet/numbers/">numbers</a> صحیح هستند، به‌ویژه پس از ویرایش‌های بیشتر.</li>
<li><strong>بازاستفاده از شیء گزینه‌های TOC</strong> - اگر چندین سند را به‌صورت دسته‌ای تولید می‌کنید، گزینه‌ها را یک‌بار پیکربندی کنید و برای کاهش هزینهٔ ایجاد شیء، آن‌ها را مجدداً استفاده کنید.</li>
</ul>
<h2 id="نتیجهگیری">نتیجه‌گیری</h2>
<p>اضافه کردن فهرست مطالب به یک سند Word در Java به‌سادگی با <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> انجام می‌شود. با بارگذاری یک فایل DOCX، پیکربندی <code>TableOfContentsOptions</code> و درج فیلد، می‌توانید ایجاد گزارش‌ها و راهنمایی‌های حرفه‌ای را خودکار کنید. به‌خاطر داشته باشید که SDK را نصب کنید، توصیه‌های بهترین‑روش‌ها را دنبال کنید و فهرست مطالب تولید شده را در محیط هدف خود آزمایش کنید. برای استقرارهای تولیدی به یک نسخه دارای مجوز نیاز خواهید داشت؛ جزئیات قیمت‌گذاری در <a href="https://purchase.conholdate.com/pricing/total/family/">صفحهٔ قیمت‌گذاری</a> موجود است و می‌توانید یک مجوز موقت را از <a href="https://purchase.conholdate.com/temporary-license/">صفحهٔ مجوز موقت</a> دریافت کنید.</p>
<h2 id="سوالات-متداول">سوالات متداول</h2>
<ul>
<li>
<p><strong>ساده‌ترین روش برای افزودن فهرست مطالب به یک سند Word در Java چیست؟</strong><br>
از <code>DocumentBuilder.moveToDocumentStart()</code> استفاده کنید و سپس <code>insertTableOfContents</code> را با یک شیء <code>TableOfContentsOptions</code> پیکربندی‌شده به کار ببرید، همان‌طور که در مثال کد نشان داده شده است.</p>
</li>
<li>
<p><strong>چگونه می‌توانم سطوح عنوانی که در فهرست مطالب ظاهر می‌شوند را کنترل کنم؟</strong><br>
<code>setUpperHeadingLevel</code> و <code>setLowerHeadingLevel</code> را در نمونه <code>TableOfContentsOptions</code> تنظیم کنید تا فقط سطوح مورد نظر گنجانده شوند.</p>
</li>
<li>
<p><strong>آیا امکان تولید فهرست مطالب (TOC) برای یک قالب Word که بعداً پر خواهد شد وجود دارد؟</strong><br>
بله. فهرست مطالب را قبل از پر کردن محتوای پویا در فایل قالب قرار دهید؛ فهرست مطالب به‌صورت خودکار به عناوینی که بعداً اضافه می‌شوند ارجاع می‌دهد.</p>
</li>
<li>
<p><strong>آیا برای استفاده از این SDK به اتصال اینترنت نیاز دارم؟</strong><br>
خیر. Conholdate.Total for Java یک کتابخانه محلی است که بر روی سرور یا دسکتاپ شما اجرا می‌شود بدون هیچ تماس سرویس خارجی.</p>
</li>
</ul>
<h2 id="بیشتر-بخوانید">بیشتر بخوانید</h2>
<ul>
<li><a href="https://blog.conholdate.com/fa/total/add-shapes-to-pdf-in-java/">افزودن اشکال به PDF در جاوا</a></li>
<li><a href="https://blog.conholdate.com/fa/total/insert-table-of-contents-in-word-using-java/">درج فهرست مطالب در ورد با استفاده از جاوا</a></li>
<li><a href="https://blog.conholdate.com/fa/total/add-a-table-of-contents-in-word-using-csharp/">افزودن فهرست مطالب در ورد با استفاده از C#</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
