pypdf เป็นไลบรารี PDF ไพธอนบริสุทธิ์แบบโอเพ่นซอร์สฟรีที่สามารถแยก ผสาน ครอบตัด และแปลงหน้าของไฟล์ PDF ได้ นอกจากนี้ยังสามารถเพิ่มข้อมูลที่กำหนดเอง ตัวเลือกการดู และรหัสผ่านลงในไฟล์ PDF ได้ pypdf สามารถดึงข้อความและข้อมูลเมตาจาก PDF ได้เช่นกัน
ดู pdf สำหรับแอปพลิเคชัน CLI ที่ใช้ pypdf เพื่อโต้ตอบกับ PDF
ติดตั้ง pypdf โดยใช้ pip:
pip install pypdf
สำหรับการใช้ pypdf ด้วยการเข้ารหัสหรือการถอดรหัส AES ให้ติดตั้งการอ้างอิงเพิ่มเติม:
pip install pypdf[crypto]
หมายเหตุ :
pypdf
3.1.0 ขึ้นไปมีการปรับปรุงที่สำคัญเมื่อเทียบกับเวอร์ชันก่อนหน้า โปรดดูคู่มือการย้ายข้อมูลสำหรับข้อมูลเพิ่มเติม
from pypdf import PdfReader
reader = PdfReader ( "example.pdf" )
number_of_pages = len ( reader . pages )
page = reader . pages [ 0 ]
text = page . extract_text ()
pypdf สามารถทำได้หลายอย่าง เช่น การแยก การรวม การอ่านและการสร้างคำอธิบายประกอบ การถอดรหัสและการเข้ารหัส และอื่นๆ อีกมากมาย ตรวจสอบเอกสารเพื่อดูตัวอย่างการใช้งานเพิ่มเติม!
สำหรับคำถามและคำตอบ โปรดไปที่ StackOverflow (แท็กด้วย pypdf)
การบำรุงรักษา pypdf เป็นความพยายามร่วมกัน คุณสามารถสนับสนุนโครงการได้โดยการเขียนเอกสาร ช่วยจำกัดปัญหาให้แคบลง และส่งรหัส ดูไฟล์ CONTRIBUTING.md สำหรับข้อมูลเพิ่มเติม
ประสบการณ์ที่ผู้ใช้ pypdf ครอบคลุมตั้งแต่ผู้เริ่มต้นที่ต้องการใช้ชีวิตให้ง่ายขึ้นไปจนถึงผู้เชี่ยวชาญที่พัฒนาซอฟต์แวร์ก่อนที่จะมี PDF คุณสามารถมีส่วนร่วมในชุมชน pypdf ได้โดยการตอบคำถามใน StackOverflow ช่วยในการสนทนา และขอให้ผู้ใช้ที่รายงานปัญหาสำหรับ MCVE (โค้ด + ตัวอย่าง PDF!)
ตั๋วข้อบกพร่องที่ดีประกอบด้วย MCVE ซึ่งเป็นตัวอย่างที่ตรวจสอบได้ครบถ้วนสมบูรณ์ขั้นต่ำ สำหรับ pypdf หมายความว่าคุณต้องอัปโหลด PDF ที่ทำให้เกิดข้อบกพร่อง รวมถึงโค้ดที่คุณกำลังดำเนินการกับเอาต์พุตทั้งหมด ใช้ print(pypdf.__version__)
เพื่อแจ้งให้เราทราบว่าคุณใช้เวอร์ชันใด
เรายินดีสนับสนุนโค้ดทั้งหมด แต่โค้ดที่มีขนาดเล็กกว่าจะมีโอกาสดีกว่าที่จะถูกรวมไว้ทันเวลา การเพิ่มการทดสอบหน่วยสำหรับคุณสมบัติใหม่หรือกรณีทดสอบสำหรับจุดบกพร่องที่คุณได้แก้ไขช่วยให้เรามั่นใจได้ว่า Pull Request (PR) นั้นใช้ได้
pypdf มีชุดทดสอบที่สามารถดำเนินการด้วย pytest
:
$ pytest
===================== test session starts =====================
platform linux -- Python 3.6.15, pytest-7.0.1, pluggy-1.0.0
rootdir: /home/moose/GitHub/Martin/pypdf
plugins: cov-3.0.0
collected 233 items
tests/test_basic_features.py .. [ 0%]
tests/test_constants.py . [ 1%]
tests/test_filters.py .................x..... [ 11%]
tests/test_generic.py ................................. [ 25%]
............. [ 30%]
tests/test_javascript.py .. [ 31%]
tests/test_merger.py . [ 32%]
tests/test_page.py ......................... [ 42%]
tests/test_pagerange.py ................ [ 49%]
tests/test_papersizes.py .................. [ 57%]
tests/test_reader.py .................................. [ 72%]
............... [ 78%]
tests/test_utils.py .................... [ 87%]
tests/test_workflows.py .......... [ 91%]
tests/test_writer.py ................. [ 98%]
tests/test_xmp.py ... [100%]
========== 232 passed, 1 xfailed, 1 warning in 4.52s ==========