我們很高興宣佈 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 檔案。