我正在使用iTextSharp生成pdf。我想将文本“ LayerX”对齐到每个图像上。但是,我不确定该怎么做。我看到图像具有.SetAbsolutePosition方法,不确定为什么文本没有。到目前为止,这是我的代码。
using(Document document = new Document(PageSize.A4, 25, 25, 30, 30))
{
PdfWriter writer = PdfWriter.GetInstance(document, Response.OutputStream);
document.Open();
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(Server.MapPath("~/Content/layer.jpg"));
var textAttributes = FontFactory.GetFont("Calibri", 6, BaseColor.BLACK);
int temp = 0;
image.ScaleAbsolute(36, 12); //scale image
for (int i = 1; i < 4; i++)
{
temp = 698 + (10 * i);
Chunk coreText = new Chunk(" Layer" + i, textAttributes);
//don't know what to put here, would like something like the following
//coreText.SetAbsolutePosition(25, temp); ---> something like this
document.Add(coreText);
image.SetAbsolutePosition(25, temp);
document.Add(image);
document.Add(new Paragraph());
}
document.Close();
writer.CloseStream = false;
System.Diagnostics.Debug.WriteLine("test2");
Response.ContentType = "Application/pdf";
Response.AddHeader("content-disposition",
"attachment;filename=Diagram - " + variable.Substring(0,8) + ".pdf");
}
我想将文本LayerX对准图像,例如Layer1。但是,该图像执行以下操作。有帮助吗?
非常感谢您的宝贵时间,
答案 0 :(得分:0)
我能够用此代码放置文本。
Document document = new Document(pageSize, 25, 25, 30, 30)
PdfWriter writer = PdfWriter.GetInstance(document, Response.OutputStream);
PdfContentByte cb = writer.DirectContent;
ColumnText ct = new ColumnText(cb);
ct.SetSimpleColumn(corePhrase, 65, 0, 35, temp + 14, 0, Element.ALIGN_LEFT);
ct.Go();
.SetSimpleColumn的参数