[PHP-users 19808]不定長の文章をPDF化するには?

Yoshio Funaki yoshio @ apl.pref.akita.jp
2004年 1月 9日 (金) 13:18:52 JST


お世話になっております。船木@秋田県立図書館です。
subjectにあるように、不定長の文字列をPDF化して出力したいのですが
実験してみた結果、思わしくないので、先達にご相談いたします。

データベースにある文字列を取得して、PDFを作成するアプリを作っています。

文字列をDBから取得すること、およびそれをPDF化することはできていますが
文字列長が不定のため、たとえばA4に固定ポイント数文字で出力すると
はみ出てしまいます。そこで折り返し関数を作って横幅(文字数)を
制限することはできたのですが、それに伴って行数が増加するため、
表示領域からはみ出す現象が起きます。

とりあえず、表示できる最大行数と、表示すべき文字行数を比較して、
ページあふれがあるかどうかをしらべ、あふれたら2ページ目に書くという
戦略をたてて、以下のような実験をしました。
# 文字だけでなく罫線も書かないといけないので、できるだけ簡単な
# 方法を採用したいと思いました。
# 表示できる最大文字列数は計算により求めています。

1)2ページ分の領域を最初から確保しておく
実際プリントすると、最初の半分部分(1ページ目に相当)だけが出力され
後半部分(2ページ目に相当)が出力されない。
プリンタ設定を色々いじってみたんですが、だめでした。
# PDF的には、縦長(2ページ分の領域を持っている)のPDFに
# 必要な情報が全て出力されていました。

2)1ページ分の領域を2つ確保し、それぞれにデータを書く
$pdf=pdf_open(),$pdf2=pdf_open()として、あらかじめ2つ作っておいて
それぞれにデータを書く。
pdf_close($pdf),pdf_close($pdf2)とすると、2ページ目のみ表示される
また、結局、あるデータが1ページ目に出されるか2ページ目に出されるかを
pdf_showするときにいちいち調べないといけない。
それだったら、1ページ出力、pdf_close,2ページ出力、pdf_closeとするのと
変わらない(罫線出力がメンドイ)

という状況で躓いています。
どなたか同様の経験をなさったかたで、「こんな解決策、あるよ」と言う方が
おられましたら、よろしくご教示下さい。


----
Yoshio Funaki  yoshio @ apl.pref.akita.jp


PHP-users メーリングリストの案内