GroupDocs.Comparison for Python 26.5.0 พร้อมให้ใช้งานแล้ว รุ่นนี้เป็นการปล่อยครั้งแรกบน PyPI ของไลบรารีตั้งแต่ 25.12 และนำเสนอ wrapper แบบ pure‑Python, รวมไฟล์ AGENTS.md สำหรับการค้นหา AI‑assistant, สคริปต์คอนโซลใหม่, และการจัดโครงสร้างเอกสารใหม่อย่างกว้างขวาง

สิ่งใหม่ในรุ่นนี้

คีย์ ประเภท สรุป
COMPARISONPYTHON-34 Feature การสร้าง wrapper แบบ pure‑Python ใหม่ — API สาธารณะสามารถตรวจสอบได้ทั้งหมดจาก Python
COMPARISONPYTHON-35 Feature ส่งไฟล์ AGENTS.md ภายใน wheel เพื่อการค้นหา AI‑agent
COMPARISONPYTHON-36 Feature หน้าเอกสารใหม่: Agents and LLM Integration (เซิร์ฟเวอร์ MCP, รวม AGENTS.md, เอกสารที่ปรับให้เหมาะกับ LLM)
COMPARISONPYTHON-39 Feature สคริปต์คอนโซล groupdocs-comparison ติดตั้งพร้อม wheel — มี subcommand compare, info, list-formats
COMPARISONPYTHON-38 Enhancement การจัดโครงสร้างเอกสารใหม่ — developer-guide/comparing-documents/ รวม comparison-basic/ และ advanced-usage/comparison/; การโหลดและการบันทึกแบบแบน

การเปลี่ยนแปลง API สาธารณะ

Wrapper รุ่น 26.x ถูกสร้างใหม่ด้วยตัวสร้างใหม่ที่เปิดเผย API สาธารณะที่กว้างขึ้นและทำความสะอาดชื่อสมาชิกบางส่วน สคริปต์ส่วนใหญ่ที่เขียนกับ 25.12 จะทำงานโดยไม่ต้องแก้ไขบน 26.5; การเปลี่ยนแปลงด้านล่างจัดกลุ่มตามผลกระทบต่อความเข้ากันได้

คลาสระดับบนที่มองเห็นได้ใหม่

คลาสเหล่านี้มีอยู่ในโครงสร้างภายในของ 25.12 แต่ถูกซ่อนจากการตรวจสอบของ Python โดย wrapper ที่คอมไพล์ด้วย Nuitka ตอนนี้สามารถนำเข้าโดยตรงได้:

from groupdocs.comparison.license import License, Metered
from groupdocs.comparison.options import (
    Color, PdfCompareOptions, WordCompareOptions, CalculateCoordinatesModeEnumeration,
    ChangeType, ComparisonDisplayMode, DetalisationLevel, FolderComparisonExtension,
    ImagesInheritance, MetadataType, PagesSetup, PaperSize, PasswordSaveOption,
    PreviewFormats, PreviewResolution,
)
from groupdocs.comparison.result import ComparisonAction, FileType, Rectangle

คลาส Color ใหม่

StyleSettings.font_color, .highlight_color, .shape_color, และ .boarder_color ตอนนี้รับค่าได้หลายรูปแบบ:

from groupdocs.comparison.options import Color

# ฟังก์ชันสร้างสีจากชื่อ
style.font_color = Color.from_name("firebrick")

# ทูเพิล RGB / RGBA
style.font_color = (255, 0, 0)
style.font_color = (255, 0, 0, 128)

# สตริง Hex
style.font_color = "#FF8800"
style.font_color = "#80FF8800"  # AARRGGBB

# จำนวนเต็ม ARGB ที่บรรจุ
style.font_color = 0xFF0000

# หรืออินสแตนซ์ Color โดยตรง
style.font_color = Color(178, 34, 34, 255)

Color สามารถนำเข้าได้จาก groupdocs.comparison, groupdocs.comparison.options, และ groupdocs.pydrawing — ทั้งสามเส้นทางชี้ไปยังคลาสเดียวกัน

PreviewOptions ที่ใช้ Callable

คอนสตรัคเตอร์ของ PreviewOptions ยอมรับ Callable ของ Python สำหรับ delegate CreatePageStream รูปแบบของ callback คือ (page_number) -> writable_stream:

from groupdocs.comparison.options import PreviewOptions, PreviewFormats

def create_page_stream(page_number):
    return open(f"page-{page_number}.png", "wb")

def release_page_stream(page_number):
    pass  # ตัวเชื่อมได้ทำการ flush/close stream แล้ว

with Comparer("source.docx") as comparer:
    preview = PreviewOptions(create_page_stream, release_page_stream)
    preview.preview_format = PreviewFormats.PNG
    preview.page_numbers = [1, 2, 3]
    comparer.source.generate_preview(preview)

PreviewOptions(create_page_stream) (รับอาร์กิวเมนต์เดียว, ไม่มี callback ปล่อย) ก็ใช้ได้เช่นกัน

Rectangle ที่มีประเภทจากคุณสมบัติพิกัด

options = CompareOptions(calculate_coordinates=True)
with Comparer("source.docx") as comparer:
    comparer.add("target.docx")
    comparer.compare(options)
    for change in comparer.get_changes():
        b = change.box
        print(f"({b.x:.1f}, {b.y:.1f}) {b.width:.1f}x{b.height:.1f}")
# (488.96, 223.86) 71.09x36.80 — '…'

การแก้ไขนี้เป็นระดับผลิตภัณฑ์ทั้งหมด — ใช้กับทุก property ที่เป็น value‑typed ในทุกผลิตภัณฑ์ (Point, Size ฯลฯ, ไม่ใช่แค่ Rectangle)

kwargs ชื่อคุณสมบัติบนคอนสตรัคเตอร์ของ options

opts = ApplyChangeOptions(changes=changes, save_original_state=True)
save = SaveOptions(password="secret")
load = LoadOptions(password="open-sesame")
comp = CompareOptions(detect_style_changes=True, sensitivity_of_comparison=85)

รูปแบบ setter ยังคงทำงาน (opts = ApplyChangeOptions(); opts.changes = changes) คำสั่ง kwargs ที่ไม่รู้จักจะทำให้เกิด TypeError

เมธอดใหม่ที่มี suffix overload

ชุดเมธอดที่มี suffix overload ถูกเพิ่มเข้าไปในพื้นผิวสาธารณะเพื่อให้แต่ละ overload ของ .NET สามารถเรียกจาก Python ด้วยชื่อที่ชัดเจน ไม่ก ambiguous ตัวอย่าง:

  • Comparer.add_file(path), add_stream(stream), add_streams(streams), add_string(text)
  • Comparer.apply_changes_file(path, options), apply_changes_stream(stream, options), …
  • Comparer.compare_file(...), compare_stream(...), compare_streams(...), compare_string(...), compare_compare_options(...), compare_save_options(...)
  • Comparer.compare_directory_file(...), compare_directory_string(...)
  • Comparer.get_changes_change_type(...), get_changes_get_change_options(...)
  • License.set_license_file(...), set_license_stream(...), set_license_streams(...), set_license_string(...)
  • Metered.set_metered_key_file(...), set_metered_key_string(...)
  • Document.generate_preview_preview_options(...)
  • localization.SupportedLocales.is_locale_supported_culture_info(...), is_locale_supported_file(...), is_locale_supported_string(...)

Comparer.dispose() อย่างชัดเจน

มีให้สำหรับผู้เรียกที่ไม่ต้องการใช้ idiom ของ context‑manager with รูปแบบที่แนะนำยังคงเป็น:

with Comparer("source.docx") as comparer:
    comparer.add("target.docx")
    comparer.compare("result.docx")

การตั้งค่าตัวพิมพ์ใหญ่ของ Enum

Enum ทั้งหมดใช้รูปแบบ UPPERCASE ตามแนวปฏิบัติของ Python ตัวอย่าง Enum ที่พบบ่อย:

from groupdocs.comparison.result import ComparisonAction, FileType
from groupdocs.comparison.options import (
    ChangeType, ComparisonDisplayMode, DetalisationLevel,
    FolderComparisonExtension, ImagesInheritance, MetadataType,
    PaperSize, PasswordSaveOption, PreviewFormats, PreviewResolution,
)
from groupdocs.comparison.words.revision import RevisionAction

ComparisonAction.ACCEPT, ComparisonAction.REJECT, ComparisonAction.NONE
RevisionAction.ACCEPT, RevisionAction.REJECT, RevisionAction.NONE
PreviewFormats.PNG, PreviewFormats.JPG
MetadataType.SOURCE, MetadataType.TARGET, MetadataType.FILE_AUTHOR
PasswordSaveOption.USER, PasswordSaveOption.SOURCE, PasswordSaveOption.TARGET

หากคุณอ้างอิงเอกสารของ 25.12 ที่แสดงค่าแบบ .Accept/.Reject ให้ปรับเป็นรูปแบบตัวพิมพ์ใหญ่ตามที่แสดงด้านบน

ตัวอย่างโค้ด

ตัวอย่างที่เรียบง่ายต่อไปนี้แสดงการนำเข้าคลาสระดับบนที่มองเห็นได้ใหม่และทำการเปรียบเทียบอย่างง่าย:

from groupdocs.comparison import Comparer
from groupdocs.comparison.options import CompareOptions

options = CompareOptions(detect_style_changes=True)

with Comparer("source.docx") as comparer:
    comparer.add("target.docx")
    comparer.compare(options)
    for change in comparer.get_changes():
        print(f"Change type: {change.change_type}, Box: {change.box}")

วิธีรับการอัปเดต

PyPI

pip install groupdocs-comparison-net==26.5.0

wheel ถูกเผยแพร่บน PyPI สาธารณะ: https://pypi.org/project/groupdocs-comparison-net/

ดาวน์โหลดโดยตรง

ไม่มีลิงก์ดาวน์โหลดโดยตรง; ให้รับแพ็กเกจผ่าน PyPI หรือเว็บไซต์ของ GroupDocs

แหล่งข้อมูล