<?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/th/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>th</language>
    <lastBuildDate>Wed, 29 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/th/tag/python-pdf-reader-example/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>การทำงานกับไฟล์ PDF ในภาษา Python</title>
      <link>https://blog.fileformat.com/th/programming/working-with-pdf-files-in-python/</link>
      <pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/th/programming/working-with-pdf-files-in-python/</guid>
      <description>เรียนรู้วิธีการดึงข้อความจากไฟล์ PDF ในภาษา Python, หมุนหน้าของ PDF, รวมไฟล์ PDF หลายไฟล์, แยกไฟล์ PDF และเพิ่มลายน้ำลงใน PDF ของคุณโดยใช้ไลบรารี Python และตัวอย่างโค้ดง่ายๆ</description>
      <content:encoded><![CDATA[<p><strong>ปรับปรุงล่าสุด</strong>: 29 ม.ค. 2025</p>
<figure class="align-center ">
    <img loading="lazy" src="images/working-with-pdf-files-in-python.png#center"
         alt="หัวข้อ - การทำงานกับไฟล์ PDF ในภาษา Python"/> 
</figure>

<p>ในบทความนี้ เราจะนำเสนอคำแนะนำเกี่ยวกับ <strong>วิธีการทำงานกับไฟล์ PDF ด้วย Python</strong> สำหรับการนี้เราจะใช้ไลบรารี <a href="https://pypi.org/project/pypdf/"><strong>pypdf</strong></a></p>
<p>การใช้ไลบรารี <strong>pypdf</strong> เราจะแสดงวิธีการดำเนินการดังต่อไปนี้ใน Python:</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 ในภาษา Python"/> 
</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 ใน Python</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="1-การดงขอความจากไฟล-pdf-โดยใช-python">1. การดึงข้อความจากไฟล์ PDF โดยใช้ Python</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>1. การสร้างวัตถุเครื่องอ่าน 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>2. วนรอบผ่านหน้า</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>หมายเลขหน้าเริ่มต้นจาก 1</strong></li>
</ul>
<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-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="2-การหมนหนาของ-pdf-โดยใช-python">2. การหมุนหน้าของ PDF โดยใช้ Python</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>90° ทวนเข็มนาฬิกา</strong> และบันทึกไฟล์ PDF ที่แก้ไขโดยไม่กระทบกับหน้าที่อื่น</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-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>2. กำหนดเส้นทางไฟล์นำเข้าและไฟล์ส่งออก</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>3. อ่าน 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>4. หมุนหน้าแรกด้วย 90 องศา</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"># หมุน 90 องศาทวนเข็มนาฬิกา</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>หน้า 1</strong> หมุน <strong>90 องศา</strong> และเพิ่มไปยัง PDF ใหม่</li>
</ul>
<p><strong>5. เพิ่มหน้าที่เหลือโดยไม่เปลี่ยนแปลง</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>6. บันทึก 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>7. พิมพ์การยืนยัน</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 โดยใช้ Python"  />
</p>
<h2 id="3-การรวมไฟล-pdf-โดยใช-python">3. การรวมไฟล์ PDF โดยใช้ Python</h2>
<p>สคริปต์ Python นี้แสดงวิธีการ <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>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-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>2. กำหนดไดเรกทอรีและไฟล์ส่งออก</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>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-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>4. สร้างวัตถุ 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>5. วนรอบไฟล์ 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>6. อ่าน PDF แต่ละไฟล์และเพิ่มหน้าใน Writer</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>7. เขียนไฟล์ 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>8. พิมพ์การยืนยัน</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="4-การแยกไฟล-pdf-โดยใช-python">4. การแยกไฟล์ PDF โดยใช้ Python</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>สคริปต์ Python ข้างต้นแยกไฟล์ 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="5-การเพมลายนำลงใน-pdf-โดยใช-python">5. การเพิ่มลายน้ำลงใน PDF โดยใช้ Python</h2>
<p>คุณสามารถเพิ่มลายน้ำลงใน PDF โดยใช้ไลบรารี PyPDF โดยการซ้อนทับไฟล์ 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>สคริปต์ Python ข้างต้นอ่านไฟล์ PDF นำเข้า ดึงสาระ PDF ของลายน้ำที่มีเพียงหน้าเดียว ซ้อนทับลายน้ำในแต่ละหน้าของไฟล์ PDF นำเข้า และบันทึกไฟล์ PDF ที่มีลายน้ำสุดท้าย</p>
<p><strong>โครงสร้างของโค้ด</strong></p>
<p>นี่คือคำอธิบายโดยสังเขปของแต่ละส่วน</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-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>2. กำหนดเส้นทางไฟล์</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 ที่มีหน้าเดียวที่ใช้เป็นลายน้ำ</li>
<li><code>output_pdf</code>: ไฟล์เอาต์พุตที่มีหน้าที่มีลายน้ำ</li>
</ul>
<p><strong>3. อ่านไฟล์ 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>4. สร้างวัตถุ Writer</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>จะใช้ในการสร้างไฟล์ PDF สุดท้ายที่มีลายน้ำ</li>
</ul>
<p><strong>5. ดึงหน้าลายน้ำ</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>6. วนรอบหน้าของไฟล์ PDF นำเข้า &amp; รวมลายน้ำ</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"># เพิ่มหน้าที่รวมแล้วไปยัง writer</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>7. บันทึกไฟล์ 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>8. พิมพ์ยืนยัน</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 ที่มีลายน้ำโดยใช้ Python"  />
</p>
<h2 id="สรป">สรุป</h2>
<p>ในคำแนะนำนี้ เราได้สำรวจการทำงานที่สำคัญของ PDF ใน Python รวมถึงการดึงข้อความ หมุนหน้า รวม แยก และเพิ่มลายน้ำ ด้วยทักษะเหล่านี้ คุณสามารถสร้างตัวจัดการ PDF ของคุณเองและทำงานอัตโนมัติกับ PDF ต่างๆ ได้อย่างมีประสิทธิภาพ.</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
