使用iTextSharp 5.0.0在Pdf页面上插入文本

时间:2018-01-30 10:33:22

标签: asp.net asp.net-web-api c#-4.0 itext

我有以下代码将文本插入pdf文件。我使用ItextSharp 2.0.0,它工作正常。

 string fileName = "test.pdf";
            string oldFile = System.Web.Hosting.HostingEnvironment.MapPath("~/AuthDoc/CoverPage.pdf");
            string newFile = System.Web.Hosting.HostingEnvironment.MapPath(fileName);
            // open the reader
            PdfReader reader = new PdfReader(oldFile);
            Rectangle size = reader.GetPageSizeWithRotation(1);
            Document document = new Document(size);

            // open the writer
            FileStream fs = new FileStream(newFile, FileMode.Create, FileAccess.Write);
            PdfWriter writer = PdfWriter.GetInstance(document, fs);
            document.Open();

            // the pdf content
            PdfContentByte cb = writer.DirectContent;

            // select the font properties
            BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            cb.SetColorFill(BaseColor.DARK_GRAY);
            cb.SetFontAndSize(bf, 8);
            string text = "";
            cb.BeginText();
            text = "Hitesh";
            cb.ShowTextAligned(1, text,500,500, 0);
            cb.EndText();
            PdfImportedPage page = writer.GetImportedPage(reader, 1);
            cb.AddTemplate( page, 0, 0);             
            document.Close();
            fs.Close();
            writer.Close();
            reader.Close();
            byte[] bytes = System.IO.File.ReadAllBytes(newFile);
            return bytes;

现在我已将iTextSharp从2.0.0更新到5.0.0 所以下面的行给出了错误:cb.AddTemplate(page,0,0);

错误:'类型'Matrix'在未引用的程序集中定义。您必须添加对程序集'System.Drawing,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。'

由于 Hitesh

1 个答案:

答案 0 :(得分:2)

如果您要开始新项目,则应使用iText 7.1.x。 最新版本将始终包含更多错误修正,并得到更好的支持。

关于您的问题,这是一个如何使用iText7在PDF文档中插入文本的代码示例:

PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new File("output.pdf")));
Document layoutDocument = new Document(pdfDocument);

PdfFont fontHelvetica = PdfFontFactory.createFont("C:\\Windows\\Fonts\\NotoSans-Bold.ttf", BaseFont.IDENTITY_H);

layoutDocument.add(new Paragraph("Lorem Ipsum Dolor Sit Amet").setFont(fontHelvetica));

layoutDocument.close();

有关更多示例,请查看iText网站 https://developers.itextpdf.com/examples-itext7