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
แหล่งข้อมูล
- หน้าโครงการบน PyPI: https://pypi.org/project/groupdocs-comparison-net/
- เอกสาร Agents and LLM Integration: https://docs.groupdocs.com/comparison/python-net/agents-and-llm-integration/
- ที่เก็บตัวอย่าง: https://github.com/groupdocs-comparison/GroupDocs.Comparison-for-Python-via-.NET
- ฟอรั่มรายงานปัญหา: https://forum.groupdocs.com/c/comparison/
- ศูนย์ช่วยเหลือแบบจ่ายเงิน: https://helpdesk.groupdocs.com/