2011年12月8日木曜日

AbiwordからのPDF作成

PuppyLinux4.3.1JPのAbiword2.7はPDFの作成に不具合があるみたいです。AbiwordでA4をPDFにし、ファイルを解析すると 793.701x1122.52 pts というサイズになっています。これをミリ単位に変換すると 280x396mm となり、A4(210x297mm)より少し大きなサイズになっています。このサイズ(280x396mm)が何を意味するのか不明です。

ちなみに、この用紙サイズ(280x396mm)をピクセル300dpiに換算すると 3307x4677ピクセル になります。この数値はA4サイズ(210x297mm)をピクセル400dpiに変換した際のピクセル数と同じになります。関係ありそうですがイマイチ理解できません。

PDF表示ソフトでは自動的に用紙サイズに合わせて表示する機能があるため一見問題ない様に見える場合があります(完全におかしい場合もある)が、PDFから印刷すると正しく印刷されない事があります。

多少関係しているのはGhostscriptの用紙設定が初期値でLetterになっている事です。これはA4にするのが無難だと思います。この設定はCUPSからPostScriptを作成する際影響します。CUPS-PDFは動作に問題はないので、こちらでPDFにした方が無難です。CUPSからPostScript作成の場合も用紙設定をA4にすれば問題ありません。なんでAbiwordからのPDFがおかしいのか不明です。

詳しい原因は解りませんが新しくAbiword2.8.6をコンパイルしインストールする事で解決できています。

--------------------------------
ポイントについて:
ポイントは主に出版関係で利用される長さの単位。ptと略され、印刷関係やDTPソフトなどで使用されています。PDFフォーマットもこれに準じ用紙サイズがポイントで表わされています。ポイントにはDTP用とjisなどに規定されているものとがあり若干違うようです。ここではとりあえずDTP用ポイントで考えます。ポイントについては詳しい印刷関連のサイトが沢山ありますので、詳細はそちらで調べて下さい。

1pt=1/72インチ なので 1pt=0.352777mm となり、A4サイズは 595.276x841.89 pts (210x297mm)という事になります。

PDFファイルの情報を得るには Poppler のツール pdfinfo コマンドを使用します。

# pdfinfo testcase.pdf
Creator: cairo 1.8.6 (http://cairographics.org)
Producer: cairo 1.8.6 (http://cairographics.org)
Tagged: no
Pages: 1
Encrypted: no
Page size: 595.276 x 841.89 pts (A4)
File size: 4028 bytes
Optimized: no
PDF version: 1.4

--------------------------------
PuppyLinux4.3.1JPにあるPDF関連コマンド(抜粋)

Poppler-utils関係
/usr/bin/pdffonts
/usr/bin/pdfimages
/usr/bin/pdfinfo
/usr/bin/pdftoabw
/usr/bin/pdftohtml
/usr/bin/pdftoppm
/usr/bin/pdftops
/usr/bin/pdftotext

Ghostscript関係
/usr/bin/pdf2dsc
/usr/bin/pdf2ps
/usr/bin/pdfopt
/usr/bin/ps2ascii
/usr/bin/ps2epsi
/usr/bin/ps2pdf
/usr/bin/ps2pdf12
/usr/bin/ps2pdf13
/usr/bin/ps2pdf14
/usr/bin/ps2pdfwr
/usr/bin/ps2ps
/usr/bin/ps2ps2
/usr/bin/ps2txt

Wary5.2.2のAbiword2.8.6はGhostscriptの初期用紙設定をA4にすればPDFの作成に問題はありません。