itextsharp - sistema - ¿Cómo posicionar y envolver texto largo?
sistema de etiquetado en textos h1 h2 h3 h5 h5 paragraph (2)
Para Cocoa Dev, sí, podemos establecer el espaciado de línea para el texto usando la propiedad SetLeading de PdfPCell como: PdfPCell.SetLeading(float fixedleading, float multiplied leading);
El PDF que puedo producir en este momento: captura de pantalla http://yart.com.au/junk/itextsharp_problem.jpg
Quiero que el texto llene el espacio en la parte inferior izquierda. ¿Cómo puedo hacer eso? ¡Gracias!
Este es mi código:
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();
}
Resuelto
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();