2011年12月8日木曜日

puppyPDF修正

puppyPDFというツールが入っていますが、PuppyLinux4.3.1JPのバージョンでは日本語に修正したスクリプトが一部古いままです。と言うか古い日本語バージョンから使い回した為、修正されていないのだろうと思います。もっともこのpuppyPDFを使用してPDFにする事があるかと言われると、かなり苦しい。せっかくあるんだから使える方が良いとしか言いようが無い。

このpuppyPDFはAbiwordで扱う事が出来るファイル形式をAbiwordのコマンドでPostScriptに変換し、さらにGhostscriptのps2pdfでPDFにするものです。(なんでこんな面倒な事するのか理由は知りません。)

ところがAbiwordのコマンドが変更になったのに、日本語スクリプトを修正していないのでうまく変換できないと言う事でしょうか。

以下の部分を修正します。
/usr/sbin/ja/puppypdf をエディタで開き、228行目付近にあるAbiwordのコマンドを変更する。コメントアウトした方が元のもの。

# res=`abiword --print="$TEMP" "$INPUT"`
res=`abiword --to=ps --to-name="$TEMP" "$INPUT"`



これでOK。日本語版スクリプトだけがおかしいのでオリジナルは修正不要。
----------------------------
以下UbuntuのAbiword2.8.6 man より抜粋。

OPTIONS
-t DEST, --to=DEST
Convert the given file to another format, writing the result to
DEST. The format of DEST is determined by its extension.
See also --to=FORMAT and --to-name.

-t FORMAT, --to=FORMAT
Convert the given files(s) to the given format. Unless
explicitly specified with --to-name, the original filename will
be used (with a different extension, if necessary). See also
EXAMPLES.

The more popular values for FORMAT include:

abw Abiword XML format (zabw for gzip, bzabw for bzip2
compression)
dbk DocBook XML
doc Microsoft Word binary format
docx Office Open XML (newer Microsoft Word versions)
html Hypertext Markup Language
kwd KWord
odt OpenDocument Text
pdf Portable Document Format
rtf Rich Text Format
sxw OpenOffice.org Writer 1.0
txt Plain text

--to-name=DEST
Only useful in conjunction with --to=FORMAT. Specifies where
the converted document shall be written to.

EXAMPLES
To convert the document example.abw to RTF:
abiword --to=rtf example.abw
The resulting file will be named example.rtf.

To print a document:
abiword --to=ps --to-name=fd://1 FILENAME | lp

いつもながらAbiwordのマニュアルには記載されていないので、仕方なくmanを探した。