2011年04月03日

Power Tab Editor 出力帳票の文字位置修正

今回もPower Tab Editor関連の話です。

前回「便利なんだけどいくつか難点が…」と書いたことの一つに「帳票に出力されたタイトルや作者といった文字列が正しく配置されない」というのがあります。
これはPTE本体ではどうにもならない問題で、今までは仮想プリンタドライバからイメージファイルとして出力した後に、イメージファイル上で修正をしていました。
が、前回PostScriptファイルをいじっている時、「あれ?もしかして文字列の位置もPostScriptで修正できる?」と思いつき早速試してみたところ、完璧ではありませんが、なんとかすることができましたので、またまたご紹介します。

あ、ちなみに最初に断っておきますが、多分これらの修正作業はPDFに出力した後、Adobe Acrobat を使えばGUIで簡単にできるものと思われます(爆)
が、Acrobat は安くても3万円はしますし、安価な代替ツールといってもそこそこのお値段がする上に、目的の処理が必ずできるとも限りません。
なので、ここで紹介するのは「フリーで手に入るもので、一応ここまでできますよ」ってことで。

■必要なもの
前回と同じ。
 ・Power Tab Editor (当然w)
 ・PDFCreator

手順も前回に書いたものと同じです。一旦PostScriptとして吐き出した帳票を修正します。

■PostScriptでタイトル等がどう書かれてるか?
PDFCreatorで出力したPostScriptを開くと、こんな箇所があります。

 2479 464 M (LANDSCAPE)[120 132 126 132 102 126 132 108 0]xS

Mは moveto コマンド、xS は xshow コマンドの別定義で、

 x y moveto (hogehoge)[n0 n1 n2 n3 ...]xshow

というのは
「座標(x, y)に移動し、そこから hogehoge という文字列を文字幅 n0, n1, n2 ... で書け」
ということらしいです。

なので、x の部分を書き換えてやれば、ズレてしまった文字列を正しい場所に直せるということになります。

で、テキストエディタでちょこまか修正すれば目的は達成できるのですが、少し直してはまた結果を見て…というのが結構大変。
ということで、ちょこっとその辺を手助けしてくれるプログラムを作りました。

■PTE帳票修正プログラム
ダウンロードはこちらから→ edit_pte_print_0_1.zip
Windows XP Pro SP3、Windows 7 Home Premium では動作を確認しています。あとは知りません。
使用するには .NET Framework 2.0 以上が必要になります。
基本的に、本プログラムを使っていかなることが起きても責任は負いかねます。あくまで自己責任でお願いします。
また、「バグっているとか」「こうして欲しい」ということに関しても、基本的にはスルーしますが、気が向いたら対応しますw

zipを解凍して、"edit_pte_print.exe" を実行すると、最初に修正対象のpsファイルを聞いてくるので、ファイルを指定するとこんな画面になります。

2011-04-03fig1.png

psファイルに含まれる文字列部分が一覧に羅列されるので、位置を修正する文字列にチェックを入れて、「左寄せ」「中寄せ」「右寄せ」のいずれからから、位置を選びます。
水平線と垂直線を細くする場合は、その下にチェックを入れて、「修正」ボタンを押すだけ。
ファイルは上書きされますのでご注意を。

■注意事項(というか言い訳)
PDFCreator で出力された PostScript ファイルだけを対象としてます。その他のツールで出したものは知ったこっちゃありません。
xshow コマンドで書かれた文字列は、なぜか最後の文字の文字幅が0で書かれていますので、正確な文字列長が分からず厳密に位置を調整できてません。
あくまで「だいたい」ってことで、後はテキストエディタで微調整してくださいw
また、showコマンドでかかれたものも同様に正確な文字列長がわからず(以下同文)

Y座標が同じ複数の文字列は、一連の一つの文字列とみなします。
PTEでは、"Music by" と、"Transcribed by" が左右の同じ位置に出力されるので、予めテキストエディタでY座標を少しずらしておく等の対処が必要です。

あと、どういうわけか不要な(と思える)rectclipが邪魔をして、文字が見えなくなる場合があります。
そういう場合は、テキストエディタで psファイルを開いて、見えなくなっている文字の前の方にある

 : 4730 816 228 84 rc

こんな箇所を見つけて(rc が rectclip の別定義のようです)、

 : %4730 816 228 84 rc

こんな感じに rectclip をコメントアウトしてやると、見えるようになったりするみたいです。
(PostScriptでは、%から行末までがコメントになります)

■Tips (おまけ)
PTEではどういうわけか、必ずタイトルが全部大文字で出力されます。これを例えば「頭大文字で後は小文字にしたいんだけど」なんていう場合は、

 2479 464 M (LANDSCAPE)[120 132 126 132 102 126 132 108 0]xS

こうなっているのを

 2479 464 M (Landscape)S

こうすればいいようです。
ただし、修正前より文字列の幅が短くなるので、中寄せにする場合は位置の再調整が必要になります。
posted by みっつん at 12:27| Comment(2) | その他 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
お疲れ様でした。そういう探究心、好きです。
参考にさせていただきます♪

プログラム作れるって凄いっすね!
Posted by Noriya at 2011年04月03日 12:55
☆Noriyaさん

ぶっちゃけプログラムは大したことないです(^^;
とてもじゃないですがソースは公開できない(爆)

しかしこの方法でちゃんとした帳票が作れると、PDFにした時にすごく綺麗に作れますねー。
今まで作ってきたタブも全部これで置き換えたくなりますw
Posted by みっつん at 2011年04月03日 16:59
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。