gpt4 book ai didi

javascript - 使用 java itextpdf 从 pdf 加载 javascript

转载 作者:行者123 更新时间:2023-12-03 04:59:56 24 4
gpt4 key购买 nike

这是我用 itext pdf 库从 java 创建 pdf 的代码,我成功了。我现在的问题是,我无法在调用 onload 时从 html 添加 javascript 代码,也不能从 java 代码添加 javascript 代码。我没有任何异常(exception)。我做错了什么?有可能实现吗?

public class App {
public static final String src = "new.pdf";
public static final String HTML = "test.html";

public static void main(String[] args) throws IOException, DocumentException {


Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(src));
// writer.addJavaScript("<script>alert('asdas')</script>");
document.open();
document.setJavaScript_onLoad("yourFunction()");
XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream(HTML));
document.close();
}

}

<html>
<head>
<style>.col{padding:3px 20px 3px 20px}</style>
<script type="text/javascript">
function yourFunction(){
alert('You clicked the bottom text');
}
</script>
</head>
<body style="font-family:tahoma" onload="yourFunction()">
<div style="background:rgb(230,230,230); padding:5px ;border:1px solid black;">
<b style="color:rgb(51,153,255)">Sample header</b>
<img style="float:right" height="25px" width="80px" src="resources/images/itext.png"/>
</div>
<br/>
<table border='0' style='border-collapse: collapse;'>
<tr>
<td class="col">String 1</td>
<td class="col">: 1234354545</td>
</tr>
<tr>
<td class="col">String 32</td>
<td class="col">: rere</td>
</tr>
<tr>
<td class="col">String 3</td>
<td class="col">: ureuiu</td>
</tr>
<tr>
<td class="col">Date</td>
<td class="col">: dfdfjkdjk</td>
</tr>
</table>
<br/>
<br/>
<br/>
<hr/>
<br/>
Contact us
</body>
</html>

最佳答案

XMLWorker 在生成 PDF 文件时无法解析 Javascript。 XMLWorker 实际上会忽略它,因此尝试使用 setJavaScript_onLoad() 调用它是行不通的,无论该函数是否在 HTML 文件中。我不确定您想在这里实现什么,但您可以使用 Java 功能来评估嵌入的 Javascript。您只是无法在 iText 上下文中运行该脚本。

如果您需要在 PDF 中嵌入 Javascript,我会在解析 HTML 后使用 iText 添加它。这需要您单独拥有 Javascript 并根据提供的 API 进行调整。您需要检查 Javascript API 以了解可以在 PDF 文件中执行哪些操作。一般来说,您将向页面、表单等添加“附加操作”字典,以便能够运行 Javascript。您可以查看 PDF 规范,了解如何构建 AA 字典以及提供了哪些触发器。但同样,不要指望能够将用于 HTML 的 Javascript 放入 PDF 中并指望它开箱即用。

您还需要更具体地说明您在 Javascript 中尝试执行的操作以及尝试执行此操作的时间,以便我们在回答中更加具体。

关于javascript - 使用 java itextpdf 从 pdf 加载 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42273259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com