2017-02-17 15 views
3

PDF文書をレイアウトするオプションを探していますが、これはきちんとしていて正確でなければなりません。PDFBox:PDPageContentStreamまたはPDPageに書き込むときにテキストを切り取る

ドキュメントはレポートの一種で、既存の背景にデータを表示します。 場合によっては、テキストが収まる大きさよりも大きい場合があります。

テキストは、入力が許可されている正確な領域にクリップしたいと思います(これは折り返しまたは "elipsizing"ほとんどの時代の数字)。

これは私が探している効果です(これは例ですが、文字列を短くすることは検討していませんが、文字列をそのままにしておきたいですが、

enter image description here

おかげで、

JM

答えて

3

まず、例えば、パスを作成PDPageContentStream.addRect()となります。その後、PDPageContentStream.clip()に電話してください。これにより、現在のクリッピングパスとパスが交差します。次に、クリップしたいものを描画します。

saveGraphicsState()restoreGraphicsState()の間に全体を入れることを忘れないでください。また、交差しているため、しばらくするとクリッピングパスが空になります。

開発中にクリッピングパスが正しいことを確認するには、stroke()clip()コールを置き換えて、どこにあるかを確認します。

+0

Hhmmm、私はすべての 'PDPageContentStream'クリッピングメソッドがパスに対して' n'を自動的に実行することを知りました。どうして?ストロークや充填を同時に禁止する理由は? – mkl

+0

@mkl "それはいつもそうだった" :-)私はそれを変更する必要はないと思っています。私は見たことのあるPDFで "n"以外のもので "W"を見たことはありません。 –

+0

Thxs @ TilmanHausherr、それは魅力的に働いた。もし可能性があるのであれば、なぜPDFBoxに高水準の機能がないのか不思議です。私たちはすべて、左揃え、右揃え、切り抜き、テキストの正当化、およびその他の機能を開発する必要があると私は考えています。私はそれがキットの一部ではないことに驚いています。どんな考え? – jmc34

関連する問題