2

カモノハシで reportlab PDF パッケージを使用して、いくつかの PDF ファイルを生成しています。LinuxサーバーとWindowsボックスには、同じpythonアプリケーション、同じバージョンのreportlabパッケージがあります(ただし、pythonバージョンはわずかに異なります-2.6.5と2.6.6)。システムフォントには依存せず、独自のフォントを使用しています。最近、これら 2 つのプラットフォームで生成された PDF が少し異なることに気付きました。一部の段落は、一方のバージョンでは、もう一方のバージョンと比べて垂直方向に数ポイント上になっています。

これらのプラットフォームの違いを見つけようとしましたが、違いを見つけることができませんでした。

最後に、PDF ファイルを比較すると、1 つは PDF 1.3 バージョンで、もう 1 つは PDF 1.4 バージョンなので、問題はこれに違いないと思います。reportlab で PDF バージョンを設定する方法を知りません。生成された PDF ファイルの適切なバージョンを設定する方法、または reportlab 出力のいくつかの追加プロパティを設定する方法を教えてください。

アップデート:

reportlab バージョン 2.4 を使用:

reportlab.__version__: $Id: __init__.py 3649 2010-01-20 14:45:53Z damian $

4

1 に答える 1

1

各システムで正確なコードを使用してそれらを生成しようとしていますか? reportlab のソース コードを簡単に検索したところ、setFillAlphaまたはsetStrokeAlphaメソッドを使用すると、1.3 ではなく PDF 1.4 が生成されるというコメントが見つかりました。

編集:

さらに調べてみると、これらのメソッドが、reportlab が PDF 1.4 ファイルを生成する唯一の理由であると確信しています。それ以外の場合は、常にデフォルトで 1.3 に設定されているようです。私が見る限り、バージョンを切り替えることができるインターフェイスはありません。ただし、そのためにソースをかなり簡単に変更できます。この行を検索しpdfdoc.pyて変更するだけです(reportlab 2.5では85行目あたりです)

PDF_VERSION_DEFAULT = (1, 3)

PDF_VERSION_DEFAULT = (1, 4)

これにより、常に PDF 1.4 ドキュメントが生成されます。

お役に立てれば。

于 2010-11-03T23:43:23.703 に答える