【问题标题】:Read javascript from pdf using iTextSharp使用 iTextSharp 从 pdf 中读取 javascript
【发布时间】:2013-11-27 13:01:26
【问题描述】:

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

【问题讨论】:

    标签: c# javascript pdf itextsharp


    【解决方案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 的参考页面。

    【讨论】:

    • 谢谢!尽管我没有发现任何值,但这很有效。我认为它可能在 fdf 文件中。但我不知道 pdf 文件中 fdf 文件的路径存储在哪里以及如何访问它?答案是正确的,所以我将其标记为答案,但它似乎不是我需要的答案:)
    • @Janspeed 你能把 pdf 发给检查吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多