如何在退出pdf的不同页面上编写文本,这些页面有1页以上。 例如'Hitesh Second Page'我想在第二页上写下这个单词 'Hitesh Third Page'我想在第三页上写下这个词
下面的代码只适用于有一页的pdf。
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 Third Page";
cb.ShowTextAligned(3, text,500,500, 0);
cb.EndText();
cb.BeginText();
text = "Hitesh Second Page";
cb.ShowTextAligned(2, 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;
谢谢, Hitesh
答案 0 :(得分:1)
使用Document
/ PdfWriter
对创建文档时,您可以按照最终顺序创建页面,即首先创建第一页,然后是第二页,然后是第三页,..
在您的代码中,您似乎尝试从创建第三页开始,然后继续创建第二页。您必须相应地对代码进行排序。
只要您对代码进行了排序,就可以使用Document
方法NewPage
切换到下一页:
document.NewPage();
请注意,如果相关页面上没有任何内容,iText会忽略NewPage
来电。要覆盖此内容,您可以在调用PdfWriter
之前使用PageEmpty
属性NewPage
让iText认为它不为空:
writer.PageEmpty = false;
document.NewPage();
虽然说过......
如何在退出pdf的情况下在不同页面上书写文字
对于此类任务,您不应该使用Document
/ PdfWriter
对开始,使用PdfReader
/ PdfStamper
对!在PdfStamper
中,您可以在页面之间自由跳转......