下载 PDF 失败

问题描述 投票:0回答:1

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
中是否需要进行任何设置才能下载工作?

codenameone
1个回答
0
投票

您的代码基于使用 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 结构时遇到的问题。我认为它从未实现过,从而引发不可避免的失败,这是可以预期的编程语言转码的混合。

因此,我会挺身而出,说由于多层安全封锁,这条路线似乎不可能或不太可能成功。

© www.soinside.com 2019 - 2024. All rights reserved.