0

これは、私が複製しようとしている参照 pdf です。

http://www.depo.com.tw/asp/pdf/R_VW_PASAT_2.pdf

私はPDFカタログに取り組んでおり、赤いテキスト領域のようなものを出力しようとしています.

PDF でわかるように、文字441-11B2-LDHEM の出力は非常に簡単です。ただし、441-11A7-LD/RD-EM1の出力はできません。

private void PlaceChunck(String text, int x, int y)
{
    PdfContentByte cb = writer.DirectContent;
    cb.SaveState();
    cb.BeginText();
    cb.MoveText(x, y);
    cb.ShowText(text);
    cb.EndText();
    cb.RestoreState();
}

私が考えることができるのは、対応する領域にチャンクを配置することだけです。しかし、これは非常に長いプロセスであり、キャラクターの多くの計算が必要です...

誰かがこれをより簡単な方法で行う方法を知っているかどうか疑問に思っていましたか? ありがとう。

4

1 に答える 1

1

OK、今私は質問を理解しています。

これを行う最善の方法は、小さなPdfTemplateオブジェクトを作成し、LD と RD を正しい場所 (上下に配置) に追加することです。次にPdfTemplateImageオブジェクトの内側をラップし、Image内側をChunk(おそらく Y オフセットで) ラップします。Phraseこれで、「441-11A7-」、イメージ チャンク、「-EM1」の順でを作成できます。残念ながら、それが私が知っている最も簡単な方法です。

別の方法はChunkwithを使用するsetTextRise()ことですが、その場合は文字数を返す方法を見つける必要があります。これは可能かもしれませんが、おそらくより難しく、エラーが発生しやすくなります。

最後に、DrawInterface または VerticalMark のカスタム実装を作成することもできますが、そのような例を作成するにはもっと時間が必要です (現在時間がありません。現在、ウィーンの PDF に関する ISO 委員会にいます)。 .

これまでに試したことを教えていただけますか?

于 2013-05-13T09:51:41.053 に答える