我們很高興宣佈 GroupDocs.Metadata for Python v26.9 已於 2026 年 9 月 發佈。此版本將底層引擎從 26.6 升級至 26.8,加入命令列介面,支援五種全新壓縮檔格式(Apple Archive、GZIP、BZ2、XZ 與 Zstandard),在所有平台恢復 PowerPoint 簡報的支援,並修復影響 Python 3.5–3.7 以及較舊 Linux/macOS 系統的關鍵相容性問題。請注意,此版本包含一項重大變更:105 個格式類別已從子命名空間移至其父模組。

本次發佈的新增功能

  • [Feature] 在套件內提供命令列介面 (METADATAPYTHON-39)
  • [Feature] 新增對 Apple Archive (AAR)、GZIP、BZ2、XZ 與 Zstandard 壓縮檔的讀取支援 (METADATAPYTHON-62)
  • [Enhancement] 將 GroupDocs.Metadata 引擎從 26.6 更新至 26.8 (METADATAPYTHON-63)
  • [Enhancement] 將內嵌的 .NET 執行階段從 10.0.0 更新至 10.0.12 (METADATAPYTHON-64)
  • [Enhancement] 將 Ogg、FB2、Mobi、MSG、DNG、SVG、raw 標籤、CR2 與 3D 格式類別移至其父模組,與 26.8 引擎保持一致 (METADATAPYTHON-65)
  • [Enhancement] 移除 Linux 與 macOS 上對 libgdiplus / mono-libgdiplus 的需求 (METADATAPYTHON-66)
  • [Enhancement] 在 Python API 中加入 FileTypeFeatureSupport 以及 ProductFeature、SupportLevel、FormatFamily 列舉 (METADATAPYTHON-67)
  • [Enhancement] 為索引套件與集合新增 get(),為 IptcRecordSet 新增 append(),並提供無參數的 Rectangle() 建構子 (METADATAPYTHON-68)
  • [Enhancement] 為每個模組(包括 formats.* 與 standards.*)發布 API 參考文件 (METADATAPYTHON-69)
  • [Fix] 無法開啟 PowerPoint 簡報:DllNotFoundException 針對 aspose.slides.drawing.capi (METADATAPYTHON-50)
  • [Fix] 以 TiffTagID 讀取 EXIF 標籤在 Python 3.5 – 3.10 失敗 (METADATAPYTHON-51)
  • [Fix] 無法在 Python 3.5 – 3.7 上使用套件 (METADATAPYTHON-70)
  • [Fix] pip 會在無法執行的 Linux 與 macOS 版本上安裝套件 (METADATAPYTHON-71)

公開 API 變更

新增類別與成員

  • groupdocs.metadata.formats.archive:AarRootPackage、AarPackage、AarFile、GzipRootPackage、GzipPackage、Bz2RootPackage、Bz2Package、XzRootPackage、XzPackage、ZstdRootPackage、ZstdPackage。
  • FileType.AAR、FileType.GZIP、FileType.BZ2、FileType.XZ、FileType.ZSTD,以及 FileFormat、MetadataType 中相同的五個成員,還有 FileType.AVIF。
  • groupdocs.metadata.common:FileTypeFeatureSupport、FeatureSupport,以及 ProductFeature、SupportLevel、FormatFamily 列舉。
  • 在索引套件與集合上使用 get()(如 MetadataPackage、ExifDictionaryBasePackage、IptcRecordSet、IptcRecord、XmpLangAlt 等)作為 package[key] 的替代方案。原本的 item 屬性已移除且無法呼叫。
  • IptcRecordSet.append(),以及無參數的 Rectangle() 建構子。

移至父模組

舊模組 (26.7) 新模組 (26.9) 類別
groupdocs.metadata.formats.audio.ogg groupdocs.metadata.formats.audio OggPackage、OggRootPackage、OggUserComment
groupdocs.metadata.formats.ebook.fb2 groupdocs.metadata.formats.ebook Fb2Author、Fb2DocumentInfo、Fb2Genre、Fb2PublishInfo、Fb2Sequence、Fb2TitleInfo
groupdocs.metadata.formats.ebook.mobi groupdocs.metadata.formats.ebook MobiHeader、MobiPackage、MobiRootPackage、PDBHeader
groupdocs.metadata.formats.fb2 groupdocs.metadata.formats.ebook Fb2Package
groupdocs.metadata.formats.email.msg groupdocs.metadata.formats.email MsgKnownProperties
groupdocs.metadata.formats.image.dng groupdocs.metadata.formats.image DngPackage、DngRootPackage
groupdocs.metadata.formats.image.svg groupdocs.metadata.formats.image SvgPackage、SvgRootPackage
groupdocs.metadata.formats.image groupdocs.metadata.formats.raw RawDoubleTag、RawFloatTag、RawRationalTag、RawSByteTag、RawSLongTag、RawSRationalTag、RawSShortTag、RawUndefinedTag
groupdocs.metadata.formats.raw.tag groupdocs.metadata.formats.raw RawTag、RawArrayTag、RawAsciiTag、RawByteTag、RawLongTag、RawShortTag
groupdocs.metadata.formats.raw.cr2 groupdocs.metadata.formats.raw 其 58 個類別中的 56 個(如 Cr2MakerNotePackage、Cr2CameraSettingsPackage、Cr2…Index 列舉等)
groupdocs.metadata.formats.three_d.dae / .fbx / .gltf / .stl / .three_ds groupdocs.metadata.formats.three_d DaeNode、DaePackage、DaeRootPackage、Fbx…、Gltf…、Stl…、ThreeDS… 類別

上述 13 個舊模組已被移除。API 回傳的物件不受影響:例如 root.ogg_package 等仍返回相同類別,只是現在從新模組匯入。

新功能

命令列:groupdocs-metadata

安裝套件後會在 PATH(亦可使用 python -m groupdocs.metadata)中放置 groupdocs-metadata 命令,方便在 shell、Make 規則與 CI 步驟中使用:

groupdocs-metadata info photo.jpg                        # 格式、MIME 類型、大小、頁數、加密資訊
groupdocs-metadata show report.docx --tag person         # 作者、編輯者…以及其標籤
groupdocs-metadata clean report.docx                     # 產生 report.clean.docx
groupdocs-metadata remove photo.jpg --tag person.creator -o photo-anon.jpg
groupdocs-metadata export report.pdf -o metadata.json    # json、csv、xlsx、xls 或 xml
groupdocs-metadata list-formats

--tag 接受類別(person、time、content …)或該類別中的單一標籤(如 person.creator),格式與 show 輸出相同。檔案透過串流讀取,支援唯讀輸入,且 clean / remove 除非使用 -o 指定輸出檔名,否則不會覆寫原始檔。每個指令皆可使用 --password,而 --license 會先套用授權。

Apple Archive、GZIP、BZ2、XZ 與 Zstandard 壓縮檔

26.8 引擎已能讀取上述五種壓縮檔的中繼資料。每種格式在 groupdocs.metadata.formats.archive 中都有自己的根套件:

from groupdocs.metadata import Metadata

with Metadata("archive.gz") as metadata:
    print(metadata.get_document_info().file_type.file_format.name)  # GZIP
    print(metadata.get_root_package().gzip_package.total_entries)

with Metadata("archive.aar") as metadata:
    aar = metadata.get_root_package().aar_package
    print(aar.total_entries)
    for entry in aar.files:
        print(entry.name, entry.length, entry.is_directory)

bz2_package、xz_package 與 zstd_package 的使用方式相同(請參閱 已知問題 了解尚未填寫的欄位)。在 26.7 版中,GZIP、BZ2 與 AAR 會拋出 NotImplementedError,而 XZ 與 Zstandard 則被誤讀為 MP3 音訊。

PowerPoint 簡報再次支援

在 26.7 版中,開啟 .pptx、.ppt、.pot 等簡報檔案會在 Windows、Linux 與 macOS 上出現 DllNotFoundException: Unable to load … aspose.slides.drawing.capi…,原因是引擎所需的原生簡報庫未包含在 wheel 中。26.9 版的每個 wheel 均已內建此庫,且在 Windows 上套件會自行載入,因此即使在 Microsoft Store 版 Python(不會搜尋 PATH)中也能正常開啟簡報。

程式碼範例

from groupdocs.metadata import Metadata

# 讀取 GZIP 中繼資料
with Metadata("archive.gz") as metadata:
    print("Format:", metadata.get_document_info().file_type.file_format.name)
    print("Total entries:", metadata.get_root_package().gzip_package.total_entries)

# 讀取 Apple Archive 中繼資料
with Metadata("archive.aar") as metadata:
    aar = metadata.get_root_package().aar_package
    print("Total files:", aar.total_entries)
    for entry in aar.files:
        print(f"- {entry.name} ({entry.length} bytes)")

如何取得更新

PyPI

透過 PyPI 安裝或升級:

pip install groupdocs-metadata-net==26.9.0

套件頁面:groupdocs-metadata-net 26.9.0 on PyPI

直接下載

從 GroupDocs.Metadata for Python 26.9 版本說明頁面 下載所有平台的 wheel 檔案。

資源