如何将文本移动到.PDF中的X,Y位置

时间:2020-06-22 14:51:04

标签: c# pdf model-view-controller itext

我正在使用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。但是,该图像执行以下操作。有帮助吗?

enter image description here

非常感谢您的宝贵时间,

1 个答案:

答案 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的参数

  1. 该短语
  2. lower-left-x
  3. lower-left-y
  4. 右上x(llx +宽度)
  5. 右上y(高度+高度)
  6. 开头(打印行之间的空白量)
  7. 对齐。