ITextsharp编辑现有的pdf

时间:2016-09-18 15:45:21

标签: winforms c#-4.0 itext

我从以下链接下载了pdf

http://ap.meeseva.gov.in/DeptPortal/Application%20Forms%20New/Revenue-pdf/Income%20General%20Application%20Form.pdf

我需要的是我想填写给定文本的空白,我尝试使用以下代码

using (FileStream outFile = new FileStream(@"E:\\residence(VRO)1.pdf", FileMode.Create))
  {
     PdfReader pdfReader = new PdfReader(@"E:\\residence(VRO).pdf");
     PdfStamper pdfStamper = new PdfStamper(pdfReader, outFile);
     pdfStamper.FormFlattening = true;
     AcroFields af = pdfReader.AcroFields;
     string[] fields = pdfStamper.AcroFields.Fields.Select(x => x.Key).ToArray();
     for (int key = 0; key <= fields.Count() - 1; key++)
      {
      }
    }

但我没有得到这些字段,所以有人可以帮助我

1 个答案:

答案 0 :(得分:4)

您所谓的所谓表格,并不是表格。那就是:它不是一种互动形式。我拿了那个PDF,然后添加了交互式字段。请下载adapted.pdf并检查它以发现差异。

现在,当您在其上运行代码时,您将看到这些字段,并且您将能够使用西方文本填写表单。您目前正在使用iTextSharp 5或更早版本。那个版本的iText并不支持印地语。印地语直到iText 7才被引入。因此,如果你想用印度书写系统(梵文,泰米尔语......)填写表格,你需要用于C#的iText 7和pdfCalligraph插件。请注意,pdfCalligraph插件保持闭源。您需要商业许可才能使用它。

我们保留了那部分资源,因为:

  • 太多公司在不尊重AGPL许可证且未购买许可证的情况下使用iText,
  • 据我所知,没有其他免费软件支持印度语写作系统。如果我们将pdfCalligraph作为开源软件发布,我们就会给予太多的价值。

<强>总结

  1. 您的表单不是表格。把它变成一个表格。
  2. 使用可以使用印度语书写系统填写此类表格的软件(例如iText 7 + pdfCalligraph附加组件)。