<?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>python pdf reader example on File Format Blog</title>
    <link>https://blog.fileformat.com/fa/tag/python-pdf-reader-example/</link>
    <description>Recent content in python pdf reader example on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fa</language>
    <lastBuildDate>Wed, 29 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/fa/tag/python-pdf-reader-example/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>کار با فایل‌های PDF در پایتون</title>
      <link>https://blog.fileformat.com/fa/programming/working-with-pdf-files-in-python/</link>
      <pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/fa/programming/working-with-pdf-files-in-python/</guid>
      <description>یاد بگیرید که چگونه متن را از یک PDF در پایتون استخراج کنید، صفحات PDF را بچرخانید، چندین PDF را ادغام کنید، PDF ها را تقسیم کنید و به PDF های خود با استفاده از کتابخانه‌های پایتون و نمونه‌های کد ساده، واترمارک اضافه کنید.</description>
      <content:encoded><![CDATA[<p><strong>آخرین به‌روزرسانی</strong>: ۲۹ ژانویه ۲۰۲۵</p>
<figure class="align-center ">
    <img loading="lazy" src="images/working-with-pdf-files-in-python.png#center"
         alt="عنوان - کار با فایل‌های PDF در پایتون"/> 
</figure>

<p>در این مقاله، راهنمایی می‌کنیم که <strong>چگونه با فایل‌های PDF با استفاده از پایتون کار کنید</strong>. برای این کار، از کتابخانه <a href="https://pypi.org/project/pypdf/"><strong>pypdf</strong></a> استفاده خواهیم کرد.</p>
<p>با استفاده از کتابخانه <strong>pypdf</strong>، عملیات‌های زیر را در پایتون نشان خواهیم داد:</p>
<ul>
<li>استخراج متن از PDF</li>
<li>چرخاندن صفحات PDF</li>
<li>ادغام چندین PDF</li>
<li>تقسیم PDF‌ها به فایل‌های مجزا</li>
<li>افزودن واترمارک به صفحات PDF</li>
</ul>
<p><em><strong>توجه</strong>: این مقاله شامل جزئیات ارزشمندی است، بنابراین در صورت نیاز به قسمت‌های مورد علاقه‌تان مستقیماً بروید! محتوا به گونه‌ای سازماندهی شده است که بتوانید به راحتی بر روی مواردی که برای شما مهم‌ترین است تمرکز کنید.</em></p>
<figure class="align-center ">
    <img loading="lazy" src="images/pdf-manipulation-with-pypdf.webp#center"
         alt="تصویر - کار با فایل‌های PDF در پایتون"/> 
</figure>

<h2 id="کدهای-نمونه">کدهای نمونه</h2>
<p>شما می‌توانید تمام کدهای نمونه استفاده شده در این مقاله را از لینک زیر دانلود کنید. این شامل کدها، فایل‌های ورودی، و فایل‌های خروجی است.</p>
<ul>
<li><a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python">مثال‌های کد و فایل‌های ورودی برای کار با فایل‌های PDF در پایتون</a></li>
</ul>
<h2 id="نصب-pypdf">نصب pypdf</h2>
<p>برای نصب pypdf، کافی است دستور زیر را در ترمینال یا کامند پرامپت خود اجرا کنید:</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>pip install pypdf
</span></span></code></pre></div><p><strong>توجه:</strong> دستور بالا به حروف بزرگ و کوچک حساس است.</p>
<h2 id="۱-استخراج-متن-از-یک-فایل-pdf-با-استفاده-از-پایتون">۱. استخراج متن از یک فایل PDF با استفاده از پایتون</h2>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/e2b43a49dbad9e89745f8f9777817acb.js?file=extract-text-from-pdf-using-pypdf-in-python.py"></script>

<h3 id="توضیح-کد"><strong>توضیح کد</strong></h3>
<p><strong>۱. ایجاد یک شیء خواننده PDF</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-python" data-lang="python"><span style="display:flex;"><span>reader <span style="color:#f92672">=</span> PdfReader(pdf_file)
</span></span></code></pre></div><ul>
<li><code>PdfReader(pdf_file)</code> فایل PDF را به یک <strong>شیء خواننده</strong> بارگذاری می‌کند.</li>
<li>این شیء امکان دسترسی به صفحات و محتوای آنان را فراهم می‌کند.</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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> page_number, page <span style="color:#f92672">in</span> enumerate(reader<span style="color:#f92672">.</span>pages, start<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>):
</span></span></code></pre></div><ul>
<li><code>reader.pages</code> لیستی از صفحات در فایل PDF بر می‌گرداند.</li>
<li><code>enumerate(..., start=1)</code> یک <strong>شماره صفحه از ۱ به بالا</strong> اختصاص می‌دهد.</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-python" data-lang="python"><span style="display:flex;"><span>    print(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;Page </span><span style="color:#e6db74">{</span>page_number<span style="color:#e6db74">}</span><span style="color:#e6db74">:&#34;</span>)
</span></span><span style="display:flex;"><span>    print(page<span style="color:#f92672">.</span>extract_text())
</span></span><span style="display:flex;"><span>    print(<span style="color:#e6db74">&#34;-&#34;</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">50</span>)  <span style="color:#75715e"># جداکننده برای خوانایی</span>
</span></span></code></pre></div><ul>
<li><code>page.extract_text()</code> محتویات متنی را از صفحه جاری استخراج می‌کند.</li>
<li>اسکریپت متن استخراج شده را به همراه <strong>شماره صفحه</strong> چاپ می‌کند.</li>
<li><code>&quot;-&quot; * 50</code> یک خط جداکننده (<code>--------------------------------------------------</code>) برای خوانایی بهتر چاپ می‌کند.</li>
</ul>
<h3 id="فایل-pdf-ورودی-استفاده-شده-در-کد">فایل PDF ورودی استفاده شده در کد</h3>
<ul>
<li><strong>فایل ورودی:</strong> <a href="https://github.com/fileformat-blog-gists/code/blob/main/working-with-pdf-files-in-python/pdf-to-extract-text/">لینک دانلود</a></li>
</ul>
<h3 id="خروجی-کد">خروجی کد</h3>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/ab6976aa3a0fc2999093f5f9320a9e20.js?file=Output%20-%20extract-text-from-pdf-using-pypdf-in-python.txt"></script>

<h2 id="۲-چرخاندن-صفحات-pdf-با-استفاده-از-پایتون">۲. چرخاندن صفحات PDF با استفاده از پایتون</h2>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/760d480cfede4178296c353d60662e1a.js?file=rotate-pdf-page-using-pypdf-in-python.py"></script>

<h3 id="توضیح-کد-1">توضیح کد</h3>
<p>کد اساساً <strong>اولین صفحه</strong> را به <strong>۹۰ درجه در جهت موافق ساعت</strong> می‌چرخاند و فایل PDF تغییر یافته را بدون تاثیر بر روی سایر صفحات ذخیره می‌کند.</p>
<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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">from</span> pypdf <span style="color:#f92672">import</span> PdfReader, PdfWriter
</span></span></code></pre></div><ul>
<li><code>PdfReader</code>: فایل PDF ورودی را می‌خواند.</li>
<li><code>PdfWriter</code>: یک PDF جدید با تغییرات ایجاد می‌کند.</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-python" data-lang="python"><span style="display:flex;"><span>input_pdf <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdf-to-rotate/input.pdf&#34;</span>
</span></span><span style="display:flex;"><span>output_pdf <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdf-to-rotate/rotated_output.pdf&#34;</span>
</span></span></code></pre></div><ul>
<li>اسکریپت از <code>input.pdf</code> می‌خواند و فایل تغییر یافته را به عنوان <code>rotated_output.pdf</code> ذخیره می‌کند.</li>
</ul>
<p><strong>۳. خواندن PDF و ایجاد یک شیء نویسنده</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-python" data-lang="python"><span style="display:flex;"><span>reader <span style="color:#f92672">=</span> PdfReader(input_pdf)
</span></span><span style="display:flex;"><span>writer <span style="color:#f92672">=</span> PdfWriter()
</span></span></code></pre></div><ul>
<li><code>reader</code> فایل PDF موجود را بارگذاری می‌کند.</li>
<li><code>writer</code> برای ذخیره صفحات تغییر یافته استفاده می‌شود.</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-python" data-lang="python"><span style="display:flex;"><span>page <span style="color:#f92672">=</span> reader<span style="color:#f92672">.</span>pages[<span style="color:#ae81ff">0</span>]
</span></span><span style="display:flex;"><span>page<span style="color:#f92672">.</span>rotate(<span style="color:#ae81ff">90</span>)  <span style="color:#75715e"># چرخش ۹۰ درجه در جهت موافق ساعت</span>
</span></span><span style="display:flex;"><span>writer<span style="color:#f92672">.</span>add_page(page)
</span></span></code></pre></div><ul>
<li><strong>صفحه ۱</strong> را استخراج می‌کند، به اندازه <strong>۹۰ درجه</strong> می‌چرخاند و آن را به PDF جدید اضافه می‌کند.</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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> i <span style="color:#f92672">in</span> range(<span style="color:#ae81ff">1</span>, len(reader<span style="color:#f92672">.</span>pages)):
</span></span><span style="display:flex;"><span>    writer<span style="color:#f92672">.</span>add_page(reader<span style="color:#f92672">.</span>pages[i])
</span></span></code></pre></div><ul>
<li>بر روی سایر صفحات حلقه می‌زند و آنان را به همان صورت اضافه می‌کند.</li>
</ul>
<p><strong>۶. ذخیره PDF جدید</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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">with</span> open(output_pdf, <span style="color:#e6db74">&#34;wb&#34;</span>) <span style="color:#66d9ef">as</span> file:
</span></span><span style="display:flex;"><span>    writer<span style="color:#f92672">.</span>write(file)
</span></span></code></pre></div><ul>
<li><code>rotated_output.pdf</code> را در حالت نوشتن باینری باز می‌کند و PDF جدید را ذخیره می‌کند.</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-python" data-lang="python"><span style="display:flex;"><span>print(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;Rotated page saved to </span><span style="color:#e6db74">{</span>output_pdf<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>)
</span></span></code></pre></div><ul>
<li>پیامی به منظور موفقیت‌آمیز بودن نمایش می‌دهد.</li>
</ul>
<h3 id="فایل-pdf-ورودی-استفاده-شده-در-کد-و-خروجی-چرخانده-شده">فایل PDF ورودی استفاده شده در کد و خروجی چرخانده شده</h3>
<ul>
<li><strong>فایل PDF ورودی:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-rotate/">لینک دانلود</a></li>
<li><strong>فایل PDF خروجی چرخانده شده:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-rotate/rotated_output.pdf">لینک دانلود</a></li>
</ul>
<p><strong>تصویر</strong>
<img loading="lazy" src="https://raw.githubusercontent.com/fileformat-blog-gists/content/main/working-with-pdf-files-in-python/rotated-pdf.png" alt="تصویر صفحه چرخانده شده در PDF با استفاده از پایتون"  />
</p>
<h2 id="۳-ادغام-فایلهای-pdf-با-استفاده-از-پایتون">۳. ادغام فایل‌های PDF با استفاده از پایتون</h2>
<p>این اسکریپت پایتون نحوه <strong>ادغام چندین فایل PDF</strong> از یک دایرکتوری را در یک PDF واحد با استفاده از کتابخانه <strong>PyPDF</strong> نشان می‌دهد.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/a1a571783e0f5e699678d1094bf1afa5.js?file=merge_pdf_files_using_pypdf_in_python.py"></script>

<h3 id="توضیح-کد-2">توضیح کد</h3>
<ul>
<li>این اسکریپت تمام فایل‌های PDF موجود در دایرکتوری مشخص شده (<code>pdfs-to-merge</code>) را به طور خودکار ادغام و به یک فایل خروجی واحد (<code>merged_output.pdf</code>) ذخیره می‌کند.</li>
<li>مطمئن می‌شود دایرکتوری خروجی موجود است و صفحات هر PDF را به ترتیب لیست‌شده اضافه می‌کند.</li>
<li>فایل نهایی ادغام شده را در زیرپوشه <code>output-dir</code> خروجی می‌دهد.</li>
</ul>
<p><strong>جزئیات کد</strong></p>
<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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">import</span> os
</span></span><span style="display:flex;"><span><span style="color:#f92672">from</span> pypdf <span style="color:#f92672">import</span> PdfReader, PdfWriter
</span></span></code></pre></div><ul>
<li><code>os</code>: برای تعامل با سیستم فایل استفاده می‌شود، مانند خواندن دایرکتوری‌ها و مدیریت مسیرهای فایل.</li>
<li><code>PdfReader</code>: محتوای یک فایل PDF را می‌خواند.</li>
<li><code>PdfWriter</code>: یک فایل PDF جدید ایجاد و می‌نویسد.</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-python" data-lang="python"><span style="display:flex;"><span>directory <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdfs-to-merge&#34;</span>
</span></span><span style="display:flex;"><span>output_file <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output-dir/merged_output.pdf&#34;</span>
</span></span></code></pre></div><ul>
<li><code>directory</code>: پوشه‌ای که فایل‌های PDF در آن ذخیره شده‌اند را مشخص می‌کند.</li>
<li><code>output_file</code>: مسیر خروجی و نام فایل PDF ادغام شده را تعریف می‌کند.</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-python" data-lang="python"><span style="display:flex;"><span>os<span style="color:#f92672">.</span>makedirs(os<span style="color:#f92672">.</span>path<span style="color:#f92672">.</span>join(directory, <span style="color:#e6db74">&#34;output-dir&#34;</span>), exist_ok<span style="color:#f92672">=</span><span style="color:#66d9ef">True</span>)
</span></span></code></pre></div><ul>
<li>اطمینان می‌دهد که <strong>دایرکتوری خروجی</strong> موجود است و در صورت عدم وجود آن، آن را ایجاد می‌کند.</li>
</ul>
<p><strong>۴. ایجاد یک شیء PdfWriter</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-python" data-lang="python"><span style="display:flex;"><span>writer <span style="color:#f92672">=</span> PdfWriter()
</span></span></code></pre></div><ul>
<li><code>writer</code> برای جمع‌آوری و ترکیب تمام صفحات از فایل‌های PDF استفاده می‌شود.</li>
</ul>
<p><strong>۵. تکرار بر روی تمام فایل‌های PDF در داخل دایرکتوری</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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> file_name <span style="color:#f92672">in</span> sorted(os<span style="color:#f92672">.</span>listdir(directory)):
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> file_name<span style="color:#f92672">.</span>endswith(<span style="color:#e6db74">&#34;.pdf&#34;</span>):
</span></span><span style="display:flex;"><span>        file_path <span style="color:#f92672">=</span> os<span style="color:#f92672">.</span>path<span style="color:#f92672">.</span>join(directory, file_name)
</span></span><span style="display:flex;"><span>        print(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;Adding: </span><span style="color:#e6db74">{</span>file_name<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>)
</span></span></code></pre></div><ul>
<li>این حلقه تمام فایل‌ها در دایرکتوری مشخص‌شده را بررسی و به دنبال فایل‌هایی با پسوند <code>.pdf</code> می‌گردد. از <code>sorted()</code> برای پردازش آن‌ها به ترتیب حروف الفبا استفاده می‌کند.</li>
</ul>
<p><strong>۶. خواندن هر PDF و اضافه کردن صفحات به نویسنده</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-python" data-lang="python"><span style="display:flex;"><span>reader <span style="color:#f92672">=</span> PdfReader(file_path)
</span></span><span style="display:flex;"><span>writer<span style="color:#f92672">.</span>append(reader)
</span></span></code></pre></div><ul>
<li>برای هر PDF، <code>PdfReader</code> فایل را خوانده و سپس تمام صفحات آن PDF به <code>writer</code> اضافه می‌شوند.</li>
</ul>
<p><strong>۷. نوشتن فایل PDF ادغام شده به یک فایل خروجی</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-python" data-lang="python"><span style="display:flex;"><span>output_path <span style="color:#f92672">=</span> os<span style="color:#f92672">.</span>path<span style="color:#f92672">.</span>join(directory, output_file)
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">with</span> open(output_path, <span style="color:#e6db74">&#34;wb&#34;</span>) <span style="color:#66d9ef">as</span> output_pdf:
</span></span><span style="display:flex;"><span>    writer<span style="color:#f92672">.</span>write(output_pdf)
</span></span></code></pre></div><ul>
<li>پس از جمع‌آوری تمام صفحات، <code>writer.write()</code> PDF ادغام شده را به مسیر خروجی مشخص‌شده می‌نویسد.</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-python" data-lang="python"><span style="display:flex;"><span>print(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;Merged PDF saved as: </span><span style="color:#e6db74">{</span>output_path<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>)
</span></span></code></pre></div><ul>
<li>یک پیام موفقیت‌آمیز برای تایید مکان ذخیره شده فایل PDF ادغام شده نمایش می‌دهد.</li>
</ul>
<h3 id="فایلهای-pdf-ورودی-استفاده-شده-در-کد-و-فایل-pdf-خروجی-ادغام-شده">فایل‌های PDF ورودی استفاده شده در کد و فایل PDF خروجی ادغام شده</h3>
<ul>
<li><strong>فایل‌های PDF ورودی:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdfs-to-merge">لینک دانلود</a></li>
<li><strong>فایل PDF خروجی ادغام شده:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdfs-to-merge/output-dir">لینک دانلود</a></li>
</ul>
<h2 id="۴-تقسیم-یک-pdf-با-استفاده-از-پایتون">۴. تقسیم یک PDF با استفاده از پایتون</h2>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/0dee64422ac0dcf44cf027d90567bbf8.js?file=split-pdf-using-pypdf-in-python.py"></script>

<h3 id="توضیح-کد-3">توضیح کد</h3>
<p>اسکریپت پایتون بالا یک فایل PDF را با استفاده از کتابخانه <strong>PyPDF</strong> به صفحات جداگانه تقسیم می‌کند. ابتدا مطمئن می‌شود که دایرکتوری خروجی وجود دارد، سپس فایل PDF ورودی را می‌خواند. اسکریپت برای هر صفحه یک شیء <strong>PdfWriter</strong> جدید ایجاد کرده و هر صفحه را به عنوان یک فایل PDF مجزا ذخیره می‌کند. فایل‌های خروجی به ترتیب نامگذاری شده‌اند (مثلاً <strong>page_1.pdf, page_2.pdf</strong>) و در پوشه <strong><code>output-dir</code></strong> ذخیره می‌شوند. در نهایت، یک پیام تایید برای هر فایل ایجاد شده نمایش می‌دهد و فرآیند را تکمیل می‌کند.</p>
<h3 id="فایل-pdf-ورودی-و-فایلهای-خروجی-تقسیمشده">فایل PDF ورودی و فایل‌های خروجی تقسیم‌شده</h3>
<ul>
<li><strong>فایل PDF ورودی:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-split">لینک دانلود</a></li>
<li><strong>فایل‌های خروجی تقسیم‌شده:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-split/output-dir">لینک دانلود</a></li>
</ul>
<h2 id="۵-افزودن-واترمارک-به-یک-فایل-pdf-با-استفاده-از-پایتون">۵. افزودن واترمارک به یک فایل PDF با استفاده از پایتون</h2>
<p>می‌توانید با استفاده از کتابخانه PyPDF واترمارک را به یک PDF اضافه کنید، به طوری که یک PDF واترمارک روی یک PDF موجود قرار گیرد. اطمینان حاصل کنید که PDF واترمارک دارای تنها یک صفحه باشد تا به درستی بر روی هر صفحه از PDF اصلی اعمال شود.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/af057943580e2fcde6a635df34d7e39a.js?file=watermark-pdf-using-pypdf-in-python.py"></script>

<h3 id="توضیح-کد-4">توضیح کد</h3>
<p>اسکریپت پایتون بالا یک فایل PDF ورودی را می‌خواند، یک فایل PDF واترمارک تک صفحه‌ای را استخراج می‌کند، واترمارک را بر روی هر صفحه از فایل PDF ورودی اعمال می‌کند و فایل PDF خروجی که حاوی واترمارک است را ذخیره می‌کند.</p>
<p><strong>جزئیات کد</strong></p>
<p>در اینجا توضیح مختصری در مورد هر قسمت آورده شده است</p>
<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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">from</span> pypdf <span style="color:#f92672">import</span> PdfReader, PdfWriter
</span></span></code></pre></div><ul>
<li><strong><code>PdfReader</code></strong> برای خواندن فایل‌های PDF موجود استفاده می‌شود.</li>
<li><strong><code>PdfWriter</code></strong> برای ایجاد و نوشتن یک فایل PDF جدید استفاده می‌شود.</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-python" data-lang="python"><span style="display:flex;"><span>input_pdf <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdf-to-watermark/input.pdf&#34;</span>
</span></span><span style="display:flex;"><span>watermark_pdf <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdf-to-watermark/watermark.pdf&#34;</span>
</span></span><span style="display:flex;"><span>output_pdf <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdf-to-watermark/output_with_watermark.pdf&#34;</span>
</span></span></code></pre></div><ul>
<li><code>input_pdf</code>: فایل PDF اصلی که قرار است واترمارک به آن اضافه شود.</li>
<li><code>watermark_pdf</code>: یک PDF <strong>تک صفحه‌ای</strong> جداگانه که به عنوان واترمارک عمل می‌کند.</li>
<li><code>output_pdf</code>: فایل خروجی که حاوی صفحات دارای واترمارک خواهد بود.</li>
</ul>
<p><strong>۳. خواندن فایل‌های PDF</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-python" data-lang="python"><span style="display:flex;"><span>reader <span style="color:#f92672">=</span> PdfReader(input_pdf)
</span></span><span style="display:flex;"><span>watermark <span style="color:#f92672">=</span> PdfReader(watermark_pdf)
</span></span></code></pre></div><ul>
<li><code>reader</code>: فایل PDF ورودی را می‌خواند.</li>
<li><code>watermark</code>: فایل PDF واترمارک را می‌خواند.</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-python" data-lang="python"><span style="display:flex;"><span>writer <span style="color:#f92672">=</span> PdfWriter()
</span></span></code></pre></div><ul>
<li>این برای ایجاد فایل نهایی حاوی واترمارک استفاده خواهد شد.</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-python" data-lang="python"><span style="display:flex;"><span>watermark_page <span style="color:#f92672">=</span> watermark<span style="color:#f92672">.</span>pages[<span style="color:#ae81ff">0</span>]
</span></span></code></pre></div><ul>
<li>فرض می‌کند که فایل PDF واترمارک تنها <strong>یک صفحه</strong> دارد که برای قرارگیری بر روی تمام صفحات استفاده می‌شود.</li>
</ul>
<p><strong>۶. حلقه بر روی صفحات فایل PDF ورودی و ادغام واترمارک</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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> page <span style="color:#f92672">in</span> reader<span style="color:#f92672">.</span>pages:
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># ادغام واترمارک با صفحه جاری</span>
</span></span><span style="display:flex;"><span>    page<span style="color:#f92672">.</span>merge_page(watermark_page)
</span></span><span style="display:flex;"><span>    
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># اضافه کردن صفحه ادغام شده به نویسنده</span>
</span></span><span style="display:flex;"><span>    writer<span style="color:#f92672">.</span>add_page(page)
</span></span></code></pre></div><ul>
<li>بر روی هر صفحه از <code>input_pdf</code> تکرار می‌شود.</li>
<li><strong><code>merge_page(watermark_page)</code></strong> واترمارک را روی صفحه جاری قرار می‌دهد.</li>
<li>صفحه تغییر داده شده را به <code>writer</code> اضافه می‌کند.</li>
</ul>
<p><strong>۷. ذخیره فایل PDF حاوی واترمارک</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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">with</span> open(output_pdf, <span style="color:#e6db74">&#34;wb&#34;</span>) <span style="color:#66d9ef">as</span> output_file:
</span></span><span style="display:flex;"><span>    writer<span style="color:#f92672">.</span>write(output_file)
</span></span></code></pre></div><ul>
<li>صفحات تغییر داده شده را در یک فایل PDF جدید می‌نویسد.</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-python" data-lang="python"><span style="display:flex;"><span>print(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;Watermarked PDF saved as: </span><span style="color:#e6db74">{</span>output_pdf<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>)
</span></span></code></pre></div><ul>
<li>مسیر فایل خروجی را برای تایید نمایش می‌دهد.</li>
</ul>
<h3 id="فایل-pdf-ورودی-فایل-pdf-واترمارک-و-فایل-pdf-خروجی">فایل PDF ورودی، فایل PDF واترمارک، و فایل PDF خروجی</h3>
<ul>
<li><strong>فایل PDF ورودی:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-watermark">لینک دانلود</a></li>
<li><strong>فایل PDF واترمارک:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-watermark">لینک دانلود</a></li>
<li><strong>فایل PDF خروجی حاوی واترمارک:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-watermark">لینک دانلود</a></li>
</ul>
<p><strong>تصویر</strong>
<img loading="lazy" src="https://raw.githubusercontent.com/fileformat-blog-gists/content/main/working-with-pdf-files-in-python/watermark-pdf.png" alt="تصویر PDF دارای واترمارک با استفاده از پایتون"  />
</p>
<h2 id="نتیجهگیری">نتیجه‌گیری</h2>
<p>در این راهنما، به عملیات‌های اساسی PDF در پایتون از جمله استخراج متن، چرخاندن صفحات، ادغام کردن، تقسیم کردن، و افزودن واترمارک پرداختیم. با این مهارت‌ها، اکنون می‌توانید مدیر فایل PDF خود را بسازید و وظایف مختلف PDF را به طور موثری خودکار کنید.</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
