3

itextsharpを使用してhtmlをpdfに変換しています。画像の下ではなく、画像の横にテキストを配置する必要があります。HTMLでは画像の隣にテキストを配置できますが、pdfではテキスト行は画像の後に始まります

助けてください。

4

2 に答える 2

10

HTMLについて言及しているので、ブロックインライン表示について理解していますよね?類推すると、iTextSharpのデフォルトのImage表示はブロックです。オブジェクトをインライン化 Imageするには、次のことを行う必要があります。

  1. Chunkオブジェクトに画像を追加する
  2. Phraseオブジェクトにテキストを追加します
  3. 次に、それらのオブジェクトをオブジェクトに追加しParagraphます

このようなもの:

Image image = Image.GetInstance(imagePath);  
Paragraph p = new Paragraph();
p.Add(new Phrase("Text next to the image "));
p.Add(new Chunk(image, 0, 0));
p.Add(new Phrase(" and text after the image.")); 
document.Add(p);

imagePath上記を画像への物理パスに置き換えます

于 2012-02-03T15:50:59.073 に答える
2

これらの次のコード サンプルを試すことができます。

Image jpg = Image.GetInstance(imagepath + "/Sunset.jpg");
Paragraph paragraph = new Paragraph(@"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse blandit blandit turpis. Nam in lectus ut dolor consectetuer bibendum. Morbi neque ipsum, laoreet id; dignissim et, viverra id, mauris. Nulla mauris elit, consectetuer sit amet, accumsan eget, congue ac, libero. Vivamus suscipit. Nunc dignissim consectetuer lectus. Fusce elit nisi; commodo non, facilisis quis, hendrerit eu, dolor? Suspendisse eleifend nisi ut magna. Phasellus id lectus! Vivamus laoreet enim et dolor. Integer arcu mauris, ultricies vel, porta quis, venenatis at, libero. Donec nibh est, adipiscing et, ullamcorper vitae, placerat at, diam. Integer ac turpis vel ligula rutrum auctor! Morbi egestas erat sit amet diam. Ut ut ipsum? Aliquam non sem. Nulla risus eros, mollis quis, blandit ut; luctus eget, urna. Vestibulum vestibulum dapibus erat. Proin egestas leo a metus?");
paragraph.Alignment = Element.ALIGN_JUSTIFIED;
jpg.ScaleToFit(250f, 250f);
jpg.Alignment = Image.TEXTWRAP | Image.ALIGN_RIGHT;
jpg.IndentationLeft = 9f;
jpg.SpacingAfter = 9f;
jpg.BorderWidthTop = 36f;
jpg.BorderColorTop = Color.WHITE;
doc.Add(jpg);
doc.Add(paragraph);

ソース: http://www.mikesdotnetting.com/Article/87/iTextSharp-Working-with-images

マイクスドットネッティング

于 2012-06-22T14:15:32.130 に答える