Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to position and wrap long text?

Tags:

The PDF I can produce at the moment: screenshot
(source: yart.com.au)

I want the text to fill up the space in the lower left. How can I do that? Thanks!

This is my code:

private static void CreatePdf4(string pdfFilename, string heading, string text, string[] photos, string emoticon) {   Document document = new Document(PageSize.A4.Rotate(), 26, 36, 0, 0);   PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(pdfFilename, FileMode.Create));   document.Open();    // Heading   Paragraph pHeading = new Paragraph(new Chunk(heading, FontFactory.GetFont(FontFactory.HELVETICA, 54, Font.NORMAL)));   document.Add(pHeading);    // Photo 1   Image img1 = Image.GetInstance(HttpContext.Current.Server.MapPath("/uploads/photos/" + photos[0]));   img1.ScaleAbsolute(350, 261);   img1.SetAbsolutePosition(46, 220);   img1.Alignment = Image.TEXTWRAP;   document.Add(img1);    // Photo 2   Image img2 = Image.GetInstance(HttpContext.Current.Server.MapPath("/uploads/photos/" + photos[1]));   img2.ScaleAbsolute(350, 261);   img2.SetAbsolutePosition(438, 220);   img2.Alignment = Image.TEXTWRAP;   document.Add(img2);    // Text    PdfContentByte cb = writer.DirectContent;   cb.BeginText();   cb.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, false), 18);   cb.SetTextMatrix(46, 175);   cb.ShowText(text);   cb.EndText();    // Photo 3   Image img3 = Image.GetInstance(HttpContext.Current.Server.MapPath("/uploads/photos/" + photos[2]));   img3.ScaleAbsolute(113, 153);   img3.SetAbsolutePosition(556, 38);   document.Add(img3);    // Emoticon   Image imgEmo = Image.GetInstance(HttpContext.Current.Server.MapPath("/Content/images/" + emoticon));   imgEmo.ScaleToFit(80, 80);   imgEmo.SetAbsolutePosition(692, 70);   document.Add(imgEmo);    document.Close(); } 
like image 274
Aximili Avatar asked May 03 '10 00:05

Aximili


People also ask

How can you wrap the long text within a cell?

In a worksheet, select the cells that you want to format. On the Home tab, in the Alignment group, click Wrap Text. (On Excel for desktop, you can also select the cell, and then press Alt + H + W.)

How do I adjust text wrapping in Word?

Select Format and then under Arrange, select Wrap Text. Choose the wrapping option that you want to apply. Tip: To change a picture or drawing object's position on the page relative to the text, select the picture or object, select Format > Position, and then select the position that you want.


1 Answers

Solved

  PdfContentByte cb = writer.DirectContent;   ColumnText ct = new ColumnText(cb);   ct.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.NORMAL))),                      46, 190, 530, 36, 25, Element.ALIGN_LEFT | Element.ALIGN_TOP);   ct.Go();  
like image 119
Aximili Avatar answered Sep 21 '22 18:09

Aximili