当前位置: 首页 > 知识库问答 >
问题:

IText7-IText7中pdfReader类中getJavascript的等效方法

锺离嘉茂
2023-03-14

IText7中pdf阅读器中的getJavascript有没有等价的方法?我们正在寻找使用IText7清除pdf文档中的恶意内容。

共有1个答案

郑正阳
2023-03-14

据我所知,在iText7中还没有一个专门的方法。

不过,从本质上说,旧的pdfreader.getJavaScript()方法只是查找JavaScript名称树,并将所有值放入字符串缓冲区。

您可以在iText 7中这样输出这些值:

PdfNameTree javascript = pdfDocument.getCatalog().getNameTree(PdfName.JavaScript);
Map<String, PdfObject> objs2 = javascript.getNames();
for (Map.Entry<String, PdfObject> entry : objs2.entrySet())
{
    System.out.println();
    System.out.println(entry.getKey());
    System.out.println();

    PdfObject object = entry.getValue();
    if (object.isDictionary()) {
        object = ((PdfDictionary)object).get(PdfName.JS);
        if (object.isString()) {
            System.out.println(((PdfString)object).getValue());
        } else if (object.isStream()) {
            System.out.println(new String(((PdfStream)object).getBytes()));
        }
    }

    System.out.println();
}

我尝试使用(并扩展)您的答案,但无法检测到当我打开示例PDF时触发的JavaScript弹出窗口

将上面的代码应用到@James提供的PDF文件中,我得到了输出:

e.pdf Freeware Hinweis

if (app.viewerVersion>=5)
{
var result=app.alert(
    "Diese Datei wurde mit der Freeware Version von CIB e.pdf erzeugt.\n\nMöchten Sie nähere Informationen?"
    , 3
    , 2
    , "e.pdf Freeware Hinweis"
    );
if (result==4)
    getURL("http://www.cib.de/deutsch/products/pdfplugin/epdfbeta.asp", false);
}

在这里,JavaScript弹出窗口可以明显地被视为app.alert调用。因此,我不能重复这问题。

 类似资料:
  • 我在IText7中找不到PdfGraphics2D类的任何引用。请让我知道如何迁移到最新的iText7。我们正在使用itext 2.1.5进行POC迁移到iText7。 我们在应用程序中使用itext来呈现PDF文档中的图形。PDF文档本身使用其他不使用iText的库生成。

  • 我正处于从iTextSharp转移到iText7的早期阶段,但很早就失败了。这是代码片段: 这将产生一个错误: 对象似乎是有效的,并且返回一个长度和返回。我已经成功地使用类似的代码来创建和写入一个PDF,但是不能从一个PDFReader对象创建一个PDF文档。我错过了一些简单的东西吗?谢谢

  • 当我通过iText7阅读pdf文件时,出现了一个错误,然后我下载了资源代码进行调试,最后发现了iText7中的一个bug。

  • 我的代码是这样的:

  • 我正在将一些PDF编辑工具从iTextSharp更新到iText7。 在iTextSharp中,pdfStamper类中有一个方法:pdfStamper。ReplacePage()。然而,iText7中的pdfStamper类已被删除,我在复制相同的功能时遇到困难。 假设我有文档X,需要用文档Y的第1页替换第4页,但我希望结果保存到一个新的文档Z。 到目前为止,我有3行使用CopyPageTo方法

  • 我使用iText7和pdfHTML插件将表添加到PDF中。要设置表的可访问性,我想设置表的摘要。我在下面一个找到了同样的问题。但这并没有明确的答案。如何设置表摘要。请指教。 iText7 508表摘要