【发布时间】:2016-01-25 18:45:57
【问题描述】:
我想在 PDF 上使用 itexsharp 填写草稿表格。但是当我运行代码时它不起作用。数据隐藏在 PDF 格式下。您可以在下面看到详细代码。我该如何解决?
我认为图片中的 Squares 可能是图像格式。
string oldFile ="~\Document\oldFile.pdf";
string newFile ="~\Document\newFile.pdf";
PdfReader reader = new PdfReader(oldFile);
Rectangle size = reader.GetPageSizeWithRotation(1);
Document document = new Document(size);
FileStream fs = new FileStream(newFile, FileMode.Create, FileAccess.Write);
PdfWriter writer = PdfWriter.GetInstance(document, fs);
document.Open();
PdfContentByte cb = writer.DirectContent;
BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
cb.SetColorFill(BaseColor.DARK_GRAY); cb.SetFontAndSize(bf, 8);
cb.BeginText();
string text = TextBox1.Text;
cb.ShowTextAligned(1, text, 350, 710, 0); // or cb.SetTextMatrix(1, text, 350, 710, 0);
cb.EndText();
cb.BeginText();
text = TextBox1.Text;
cb.ShowTextAligned(2, text, 520, 640, 0);
cb.EndText();
cb.BeginText();
text = "Signature";
cb.ShowTextAligned(3, text, 100, 200, 0);
cb.EndText();
PdfImportedPage page = writer.GetImportedPage(reader, 1);
cb.AddTemplate(page, 0, 0);
document.Close();
fs.Close();
writer.Close();
reader.Close();
【问题讨论】:
-
那些粉红色的框看起来像表单域,是一种注释形式,因此总是最上面的。如果是这样,您可以flatten the PDF(跳过循环)或者您可以填写表格。如果您在使用后者时遇到问题,请发布您的代码和 PDF 本身以供我们检查。
-
谢谢。我能够通过 Razvan 的答案找到解决方案。
标签: c# asp.net itextsharp