1. ผลิตภัณฑ์
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Python

Aspose.PDF FOSS สำหรับ Python

ไลบรารี Python แบบโอเพ่นซอร์สสำหรับการสร้าง, การอ่าน, การแก้ไข, การเรนเดอร์, และการตรวจสอบความถูกต้องของเอกสาร PDF — มีใบอนุญาต MIT โดยไม่มีค่าธรรมเนียมการทำงาน

Aspose.PDF FOSS — โอเพนซอร์ส Python PDF Library

Aspose.PDF FOSS for Python เป็นไลบรารีโอเพ่นซอร์สสำหรับสร้าง, อ่าน, แก้ไข, เรนเดอร์, และตรวจสอบความถูกต้องของเอกสาร PDF. สร้างขึ้นสำหรับ Python 3.11 และรุ่นต่อมา, มาพร้อมกับข้อมูลประเภท และสามารถรวมเข้ากับโครงการ Python ใดก็ได้ (ดูส่วนการติดตั้งด้านล่าง). โครงการอยู่ในระยะอัลฟา, ดังนั้น API และการครอบคลุมฟีเจอร์จะยังคงพัฒนาเรื่อย ๆ ก่อนการปล่อยเวอร์ชันเสถียรแรก.

Document class เป็นจุดเข้าใช้งานหลัก, เปิดเผย pages, form, outlines, และ tagged_content สำหรับการแก้ไขเชิงโครงสร้างพร้อมกับการดำเนินการ encrypt, decrypt, merge, optimize, และ flatten. ข้อความจะถูกเพิ่มด้วย Page.add_text() และดึงออก หรือค้นหาด้วย PdfExtractor และ TextFragmentAbsorber, รวมถึงการแทนที่และการทำให้เป็นสีที่ซ่อนโดยใช้วลีและ การแทนที่แบบ regex. หน้าเรนเดอร์เป็นภาพ PNG หรือ TIFF raster ผ่าน Page.render() และ Page.save_as_image(). ฟิลด์ AcroForm แบบโต้ตอบถูกสร้างและ เติมข้อมูลผ่าน Form และ Field, และเอกสารสามารถตรวจสอบหรือแปลงเพื่อให้สอดคล้องกับ PDF/A และ PDF/UA ด้วย Document.validate_pdfa(), Document.convert_to_pdfa(), และ Document.auto_tag().

Aspose.PDF FOSS for Python ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT โดยไม่มีค่าธรรมเนียมการรันไทม์หรือ ข้อจำกัดการใช้งาน. แพ็กเกจหลักขึ้นอยู่เพียง cryptography และ asn1crypto, พร้อมกับส่วนเสริมเพิ่มเติมสำหรับการสนับสนุนภาพแบบ Pillow, การถอดรหัส WOFF2 แบบ Brotli, และ การจัดวางข้อความซับซ้อนแบบ HarfBuzz. สำหรับฟีเจอร์และการสนับสนุนระดับองค์กร, ดู Aspose.PDF for Python — Enterprise Product.

การดำเนินการเอกสารและหน้า

  • สร้าง โหลด บันทึก และรวม PDF ผ่าน Document
  • จัดการหน้าโดยใช้ PageCollection ที่แก้ไขได้ซึ่งเปิดเป็น document.pages
  • เพิ่มข้อความ Standard-14 หรือ Unicode ที่ฝังไว้โดยกำหนดตำแหน่งด้วย Page.add_text()
  • วางรูปภาพ raw, JPEG หรือ PNG บนหน้าโดยใช้ Page.add_image()
  • วาดรูปร่างเวกเตอร์ด้วย Page.draw_rectangle() และ Page.draw_line()

สถานการณ์เชิงปฏิบัติ

  • สร้างใบแจ้งหนี้, ใบรับรอง, และรายงานโดยอัตโนมัติผ่านโปรแกรม
  • ผลิตเอกสารเป็นชุดจากเทมเพลตที่ใช้ร่วมกัน
  • ประกอบรายงานหลายหน้าโดยใช้ส่วนที่สร้างขึ้น
  • สร้างไฟล์ PDF ทั้งหมดในหน่วยความจำภายในเว็บเซอร์วิส

การแยกข้อความและการค้นหา

  • ดึงข้อความของทุกหน้าโดยใช้ PdfExtractor และ get_text()
  • วนลูปข้อความหน้าโดยหน้าโดยใช้ has_next_page_text() และ get_next_page_text()
  • ค้นหาวลีที่ตรงกันและรูปแบบ regex ด้วย TextFragmentAbsorber
  • แทนที่ข้อความที่ตรงกันด้วย Document.replace_text()
  • ทำการลบข้อความที่ตรงกันด้วย Document.redact_text() โดยอาจวาดแถบทับซ้อนเพิ่มเติม

สถานการณ์เชิงปฏิบัติ

  • สร้างดัชนีการค้นหาข้อความเต็มสำหรับเอกสารที่เก็บเป็นคลัง
  • ลบข้อมูลส่วนบุคคลที่สามารถระบุตัวตนได้ก่อนแชร์
  • ค้นหาและแทนที่ข้อความแม่แบบทั่วไปในสัญญาเทมเพลต
  • ตรวจสอบเอกสารที่เข้ามาสำหรับคำที่มีความอ่อนไหว

การเรนเดอร์หน้าเป็นภาพ

  • แสดงผลหน้าเป็น raster RGB ที่ไม่พึ่งพาไลบรารีด้วย Page.render()
  • บันทึกผลลัพธ์ที่แสดงเป็น PNG หรือ TIFF ผ่าน Page.save_as_image()
  • ทำการแสดงผลหลายหน้าเอกสารทั้งหมดเป็นชุดด้วย Document.save_page_as_image()
  • ควบคุมความละเอียดด้วยพารามิเตอร์ dpi และคุณภาพขอบด้วย antialias
  • อ่านข้อมูลพิกเซลดิบจาก RasterizedPage ที่ส่งกลับ

สถานการณ์เชิงปฏิบัติ

  • สร้างภาพย่อของหน้าเอกสารสำหรับไลบรารีการจัดการเอกสาร
  • ผลิตภาพพิสูจน์ TIFF พร้อมพิมพ์จากเค้าโครงที่เสร็จสมบูรณ์
  • สร้างแกลเลอรีแสดงตัวอย่างหน้าสำหรับโปรแกรมดูเอกสาร
  • แปลงไฟล์ PDF เก่าเป็นรูปแบบการดูแบบอิงภาพ

แบบฟอร์มและฟิลด์แบบโต้ตอบ

  • อ่านและวนซ้ำฟิลด์ AcroForm ผ่าน Document.form
  • สร้างฟิลด์ข้อความด้วย Form.add_text_field()
  • สร้างกล่องกาเครื่องหมายและกลุ่มวิทยุด้วย Form.add_checkbox() และ Form.add_radio_group()
  • สร้างกล่องรายการและคอมโบบ็อกซ์ด้วย Form.add_list_box() และ Form.add_combo_box()
  • ตั้งค่าโดยใช้ชื่อฟิลด์ผ่าน Field.value จากนั้นทำให้แบนด้วย Document.flatten()

สถานการณ์เชิงปฏิบัติ

  • อัตโนมัติกระบวนการกรอกแบบฟอร์มใบแจ้งหนี้และสัญญา
  • เติมค่าล่วงหน้าในเทมเพลตแอปพลิเคชันก่อนการแจกจ่าย
  • จัดเก็บแบบฟอร์มที่กรอกแล้วเป็น PDF ที่ไม่สามารถแก้ไขและมีเนื้อหาแบบคงที่
  • ดึงค่าฟิลด์ที่ส่งมาเพื่อการประมวลผลต่อไป

ความปลอดภัย, การเข้ารหัส, และลายเซ็น

  • เข้ารหัสเอกสารด้วย Document.encrypt() โดยใช้รหัสผ่านของผู้ใช้และเจ้าของ
  • เปลี่ยนหรือเคลียร์รหัสผ่านด้วย Document.change_passwords() และ Document.decrypt()
  • ตรวจสอบความถูกต้องของลายเซ็นดิจิทัลที่ฝังอยู่ด้วย PdfSignature.validate()
  • จำกัดข้อมูลที่ไม่เชื่อถือได้ด้วย PdfLoadLimits ที่กำหนดค่าได้
  • ตรวจสอบผู้ลงนาม ความเชื่อถือ และสถานะการเพิกถอนผ่าน ValidationResult

สถานการณ์เชิงปฏิบัติ

  • ปกป้องรายงานที่เป็นความลับด้วยรหัสผ่านสำหรับผู้รับแต่ละคน
  • ตรวจสอบสัญญาที่ลงนามก่อนการจัดเก็บ
  • เสริมความแข็งแกร่งให้กับกระบวนการรับ PDF เพื่อต้านการอัปโหลดที่เป็นอันตราย
  • บังคับใช้ข้อจำกัดการพิมพ์และคัดลอกบนไฟล์ที่แจกจ่าย

PDF/A และ PDF/UA การปฏิบัติตาม

  • ดำเนินการตรวจสอบ PDF/A แบบเชิงเหตุผลด้วย Document.validate_pdfa()
  • แปลงเอกสารเป็น PDF/A ด้วย Document.convert_to_pdfa()
  • ดำเนินการตรวจสอบการเข้าถึง PDF/UA แบบเชิงเหตุผลด้วย Document.validate_pdfua()
  • ทำการแท็กอัตโนมัติเนื้อหาในหน้าที่มีอยู่เป็นโครงสร้างต้นไม้ด้วย Document.auto_tag()
  • ตรวจสอบและแก้ไขต้นไม้ของแท็กผ่าน Document.tagged_content

สถานการณ์เชิงปฏิบัติ

  • เตรียมเอกสารออกสำหรับการเก็บถาวรดิจิทัลระยะยาว
  • ตรวจสอบไฟล์ PDF ที่เข้ามาเพื่อหาช่องโหว่ด้านการเข้าถึงก่อนการเผยแพร่
  • สร้างรายงานการปฏิบัติตามสำหรับอุตสาหกรรมที่อยู่ภายใต้การควบคุม
  • ปรับปรุง PDF เก่าให้สอดคล้องกับมาตรฐานการเข้าถึง

สร้าง PDF และเพิ่มข้อความ

สร้างเอกสาร PDF ใหม่และเพิ่มข้อความที่กำหนดตำแหน่งลงในหน้าในไม่กี่บรรทัด

git clone https://github.com/aspose-pdf-foss/Aspose-PDF-FOSS-for-Python.git
cd Aspose-PDF-FOSS-for-Python
pip install -e .
from aspose_pdf import Document
with Document() as document:
    page = document.pages.add()
    page.add_text(
        "Hello from Aspose.PDF FOSS!",
        x=72,
        y=720,
        font_size=18,
    )
    document.save("hello.pdf")

เรนเดอร์หน้าเป็นภาพ

โหลด PDF ที่มีอยู่แล้วและบันทึกหน้าที่หนึ่งเป็นภาพเรสเตอร์ที่สามารถกำหนด DPI ได้

from aspose_pdf import Document
with Document() as document:
    document.load_from("input.pdf")
    document.pages[0].save_as_image("page-1.png", dpi=144)

สกัดข้อความจาก PDF

ผูกเอกสารและดึงข้อความทั้งหมดของแต่ละหน้ามาโดยใช้ extractor facade.

from aspose_pdf import PdfExtractor
with PdfExtractor() as extractor:
    extractor.bind_pdf("input.pdf")
    extractor.extract_text()
    print(extractor.get_text())

รวมไฟล์ PDF

ต่อไฟล์ PDF หลายไฟล์เข้าด้วยกันเป็นเอกสารผลลัพธ์ไฟล์เดียว.

from aspose_pdf import PdfFileEditor
with PdfFileEditor() as editor:
    if not editor.concatenate(["part-1.pdf", "part-2.pdf"], "merged.pdf"):
        raise RuntimeError(editor.last_exception)
  

ทรัพยากรสนับสนุนและการเรียนรู้

 ภาษาไทย