IText7中pdf阅读器中的getJavascript有没有等价的方法?我们正在寻找使用IText7清除pdf文档中的恶意内容。
据我所知,在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表摘要