2011-11-11 22 views
1

itextsharp文書の要素をステップ実行し、作成した後に要素を変更するにはどうすればよいですか?具体的には、私は文書内の画像要素を見つけて、画像の位置合わせ属性を変更したいと思います。iTextSharpで画像の位置を固定する

私はいくつかの非常に複雑な動的な契約を使用してアプリケーションを持っている - ここで


は地獄、あなたがこの記事をやろうとしている理由は避けられないをオフに頭にシナリオです。私は、コントラクトロジックをより簡単に定義するために、変数、条件付きブロック、ループ、および「関数」を使ってXMLで定義されたコントラクトを可能にするクラスを作成しました。私のコードは動的要素をitextsharp xmlparserで解析できるXML文書に変換します。

チェックボックス以外はうまく動作します。ビルトインされたフォントにはチェックボックスのグリフは含まれていないように見えますが、それらを表示させる唯一の方法はイメージとして含めることです。これは動作しますが、表示プロパティのコントロールが非常に限られています。xmlの配置を設定すると何もしません。常にテキストが次の行に表示されて表示されます。

私が問題を解決するために考えることができるのは、文書が作成された後にそれを通過し、ぼくがもっと制御できるコードから遡及的に画像の配置を修正することだけです。何か案は?

答えて

1

チェックボックスまたはその内部にチェックマークが付いたチェックボックスだけが必要ですか?

Paragraph p = new Paragraph(); 
p.Add(new Phrase("Test ")); 
p.Add(new Chunk(image, 0, 0)); 
p.Add(new Phrase(" end.")); 
document.Add(p); 

テスト済み:チャンクで画像をラップするために改行を回避するために

int CheckBoxChar = 113; 
Font ZapfFont = FontFactory.GetFont(BaseFont.ZAPFDINGBATS, 20); 
Chunk C = new Chunk((char)CheckBoxChar, ZapfFont); 
Paragraph P = new Paragraph(); 
P.Add(C); 
1

一つの方法である:ちょうどチェックボックスは、あなたは、組み込みのZAPFDINGBATSフォントと文字113を使用することができる場合5.1.2.0と等しい。 Imageオブジェクトをチャンクでラップする前に一度インスタンス化すると、再利用されます。