2012-02-03 5 views
3

Je suis en train de convertir html en pdf en utilisant itextsharp. Je dois placer le texte à côté de l'image pas au-dessous de l'image. En html je suis en mesure de placer du texte à côté de l'image, mais en pdf la ligne de texte commence après l'imageplacer le texte à côté de l'image html en pdf en utilisant itextsharp

S'il vous plaît aider.

+0

HTML dans iTextSharp est très limitée en fonction de la façon dont vous le faites. Si vous fournissez un échantillon de code, nous pourrons peut-être vous aider davantage. Sinon, la solution simple consiste simplement à utiliser un tableau HTML. –

Répondre

9

Depuis que vous mentionnez HTML, vous comprenez bloc et en ligne affichage, non? Par analogie, l'affichage Image par défaut d'iTextSharp est , bloc. Pour inlineImage objets que vous devez:

  1. Ajouter des images à Chunk objet (s)
  2. Ajouter texte dans Phrase objet (s)
  3. Ajoutez ensuite les objets à un objet Paragraph

Quelque chose comme ceci:

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); 

Remplacez imagePath ci-dessus par le chemin physique de votre image

+0

mais je convertis le pdf directement à partir de la balise d'image html en utilisant – user634036

+0

j'utilise HTmlWorker.ParseToList metod pour pasre le html tag.then comment le faire dans le code derrière la logique. – user634036

+0

Utilisez [XmlWorker] (http://demo.itextsupport.com/xmlworker/itextdoc/flatsite.html). Ensuite, vous n'avez pas le problème de bloc/inline en ce qui concerne les images; les images sont affichées ** en ligne ** par défaut. Mais vous ** devez ** configurer un 'ImageProvider' pour prendre en compte: [1] l'URL de l'image relative, [2] la façon dont iText [Sharp] gère le dimensionnement de l'image. Voir la documentation fournie dans le lien au début de ** cet ** engagement. – kuujinbo

2

Vous pouvez essayer l'exemple de code suivant.

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); 

source: http://www.mikesdotnetting.com/Article/87/iTextSharp-Working-with-images

par le soutien parsing Mikesdotnetting

Questions connexes