ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c#-iTextSharp-将文本放在现有内容的顶部

2019-11-23 01:07:21  阅读:150  来源: 互联网

标签:itextsharp c


我已经能够使用x,y坐标来绝对定位新文本,但是新文本隐藏在现有图像的后面.我玩过Stamper,OverContent,但没有成功.

这是我正在使用的代码:

PdfReader reader = new PdfReader(new RandomAccessFileOrArray(fileNameExisting), null);
Rectangle size = reader.GetPageSizeWithRotation(1);

using (var outStream = new FileStream(fileNameNew, FileMode.Create))
{
    Document document = new Document(size);
    PdfWriter writer = PdfWriter.GetInstance(document, outStream);

    document.Open();
    try
    {
        PdfContentByte cb = writer.DirectContent;

        cb.BeginText();
        try
        {
            cb.SetFontAndSize(BaseFont.CreateFont(), 12);
            cb.SetTextMatrix(10, 100);
            cb.ShowText("My new text");
        }
        finally
        {
            cb.EndText();
        }

        PdfImportedPage page = writer.GetImportedPage(reader, 1);
        cb.AddTemplate(page, 0, 0);

    }
    finally
    {
        document.Close();
        writer.Close();
        reader.Close();
    }
}

解决方法:

刚意识到我代码中的错误.在设置文本之前,应该已经调用GetImportedPage.
这是更新的代码:

          try
          {
            PdfImportedPage page = writer.GetImportedPage(reader, 1);
            cb.AddTemplate(page, 0, 0);
            cb.SetFontAndSize(BaseFont.CreateFont(), 12);
            cb.SetTextMatrix(10, 100);
            cb.ShowText("rando text");

          }

标签:itextsharp,c
来源: https://codeday.me/bug/20191123/2064103.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有