GordonKit Document Converter

はじめに

GordonKit ドキュメントコンバーター

DOCX をはじめとするドキュメント形式を、Python ライブラリ、CLI、HTTP API から PDF、HTML、Markdown、画像などへ変換します。

このプロジェクトについて

この GordonKit オープンソースプロジェクトは、Microsoft Word、LibreOffice、Gotenberg、Pandoc を組み合わせてドキュメントを組版します。エンジンの選択、検証、フォールバックの報告、変換結果を明示的で診断しやすい状態に保ちます。

利用方法

ワークフローに合った利用方法を選べます。どの方法も同じ application service を経由し、構造化された結果、エンジンポリシー、診断情報を保持します。

Python ライブラリ

型付きの公開契約を使って、単一変換、独立したバッチ処理、エンジン調査、service injection を実行します。

from gordon_doc_converter import convert

CLI

変換、比較、エンジン確認を実行し、スクリプトや CI ワークフロー向けに安定した JSON 結果を出力します。

gordon-doc convert report.docx --to pdf

HTTP API

FastAPI extra をインストールし、認証 hook、レート制限、上限付き並行実行を備えたプライベート配備を構築します。

POST /conversions

対応フォーマット

この表でプロジェクトの主な変換機能を確認できます。一部の変換経路では、表に記載のとおり任意のエンジンまたは出力パッケージが必要です。

対応する入力および出力フォーマット
入力DOCXPDFODTHTMLMarkdownYAMLJSONページ画像
DOCX該当なしAutoLO✓✓✓✓PDF
PDF—該当なし—✓✓✓✓✓
ODTLOLO該当なし✓✓✓✓PDF
HTMLPP+—該当なし✓✓✓—
MarkdownPP+——該当なし———

インストール

まずコアパッケージをインストールし、配備に必要な任意機能だけを追加します。

uv add gordon-doc-converter
uv add 'gordon-doc-converter[images,gotenberg]'

最初の変換

ソースパスからリクエストを作成します。サービスはポリシーが許可するエンジンを選択し、一時出力を検証し、検証に成功した場合のみ結果を公開します。

from pathlib import Path
from gordon_doc_converter import ConversionRequest, convert

request = ConversionRequest.from_source(Path("report.docx"))
result = convert(request)
print(result.artifacts[0].path)