使用 iTextSharp 在 PDF 草稿表单上书写

To write on the PDF draft form with iTextSharp

我想在 PDF 上使用 itexsharp 填写草稿表格。但是当我 运行 代码时它不起作用。数据隐藏在 PDF 格式下。您可以在下面看到详细代码。我该如何解决?

我认为图片中的Square可能是图片格式。

        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();

如果这是可编辑的表格(您可以用 Adob​​e Reader 填写的表格),那么您应该查看 PdfStamperAcroFields

这里有一篇关于它的好文章http://www.codeproject.com/Articles/23112/Fill-in-PDF-Form-Fields-using-the-Open-Source-iTex

这篇文章 How to bring added images using iTextSharp in C# to the forefront 建议 PDF 中的 z-order 是由添加到内容中的对象的顺序决定的。所以先导入源码页面,再画文字,应该可以解决问题。

方块也可能是实际的表单域。如果是这种情况,您可以使用 Acrobat 打开 PDF 以找出它们的名称(或者如果您没有可用的 Acrobat,则通过 iTextSharp 编码枚举它们)并使用 PdfStamper class 实际上 "fill them in" .

尽量放

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

在添加您自己的文本之前。 您在页面上写下文本,然后重叠原始 pdf。