Itext 如何定位和包装长文本?
我目前可以制作的PDF:Itext 如何定位和包装长文本?,itext,Itext,我目前可以制作的PDF: (来源:) 我想让文本填满左下角的空白。我该怎么做?谢谢 这是我的代码: 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
(来源:) 我想让文本填满左下角的空白。我该怎么做?谢谢 这是我的代码:
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();
}
解决
对于Cocoa Dev,我们可以使用PdfPCell的SetLeading属性设置文本的行距,如下所示:
PdfPCell.SetLeading(浮点固定前导,浮点相乘前导)代码>正是我想要的:)也适用于AS3中的PurePDF。如何调整行距?可以将行距设置为短语对象的第一个参数。新短语(float-leading,Chunk-Chunk)@CocoaDev@abbottmw在这种情况下,短语
构造函数的前导
参数不起作用,因为它将被SetSimpleColumn
的前导
参数覆盖,该参数在本例中为值25。所以你只需要改变这个值。
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();