我有以下代码将文本插入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
答案 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