BrowserComponent
中设置的以下网址使用JavaScript将HTML转换为PDF,可以通过单击按钮下载。
这可以在网络浏览器中运行,但无法在 Codename One 模拟器或设备中安装的应用程序中下载。
Form form = new Form("Generate Pdf", new BorderLayout());
BrowserComponent browser = new BrowserComponent();
browser.setURL("https://coltish-stoppering.000webhostapp.com/GeneratePdf.html");
//browser.setURL("https://coltish-stoppering.000webhostapp.com/GeneratePdfPdfMake.html");
browser.addWebEventListener("onLoad", (e) -> {
form.revalidate();
});
form.add(CENTER, browser);
form.show();
BrowserComponent
中是否需要进行任何设置才能下载工作?
您的代码基于使用 HTML 来框出文本位置,相当于使用基于 web.JS 的 js.PDF 将文本写入 PDF。
doc.html(pdfjs, {
callback: function (doc) {
doc.save("cn-newpdf.pdf");
Codename-One 是 Java 而不是 JS,因此通常不适合 HTML 开发应用程序。事实上,有些能力会被贬值。
来自 Git HUB 上的代码库
- @deprecated HTML 包不再使用或维护,可能会在未来的版本中删除 */ 公共类 HTMLUtils { // 防止实例化 - 该类仅具有静态方法 私有 HTMLUtils() {...
许多 JS 功能通过仿真运行,请参阅 wiki,了解使用 JS 和浏览器的 2 种受支持的途径,https://github.com/codenameone/CodenameOne/wiki/Working-With-Javascript。
因为没有人描述过在基于 Java 的 CodeOne 中浏览沙盒 js.pdf 结构时遇到的问题。我认为它从未实现过,从而引发不可避免的失败,这是可以预期的编程语言转码的混合。
因此,我会挺身而出,说由于多层安全封锁,这条路线似乎不可能或不太可能成功。