使用iTextSharp从pdf中读取javascript

时间:2013-11-27 13:01:27

标签: c# javascript pdf itextsharp

我有一个脚本,在加载pdf文件后运行,并填充pdf中的一些表单字段。我认为这是在幕后运行的某种javascript。在javascript代码中存储了一些我需要检索的值。我使用iTextSharp来处理pdf文件。是否可以读取javascript代码或值,以便我可以用我的c#代码以某种方式使用它们?

1 个答案:

答案 0 :(得分:1)

从此SO answer修改:

var pdfReader = new PdfReader(infilename);
using (MemoryStream memoryStream = new MemoryStream())
{
    PdfStamper stamper = new PdfStamper(pdfReader, memoryStream);
    for (int i = 0; i <= pdfReader.XrefSize; i++)
    {
        PdfDictionary pd = pdfReader.GetPdfObject(i) as PdfDictionary;
        if (pd != null)
        {
            PdfObject poAA = pd.Get(PdfName.AA); //Gets automatic execution objects
            PdfObject poJS = pd.Get(PdfName.JS); // Gets javascript objects
            PdfObject poJavaScript = pd.Get(PdfName.JAVASCRIPT); // Gets other javascript objects
            //use poJS.GetBytes(), poJS.ToString() etc to inspect details...
        }
    }
    stamper.Close();
    pdfReader.Close();
    File.WriteAllBytes(rawfile, memoryStream.ToArray());
}

这是PdfObject class的参考页面。