gpt4 book ai didi

javascript - 使用jspdf将pdf直接保存到文件

转载 作者:行者123 更新时间:2023-11-28 08:02:24 27 4
gpt4 key购买 nike

我的脚本是一个 Firefox 插件,因此可以访问敏感代码,例如访问文件系统等。
我显示一个填充有 html 内容的 Panel,我可以使用 postMessage
轻松地将输入发送到插件代码当我运行下面的代码时,会生成 pdf 并显示下载提示,以便我可以选择放置文件的目录,但我想使用 javascript 将文件直接保存到后台文件中,而不需要显示下载提示。
类似于: doc.saveToFile("/path/to/file")//我的插件代码中的自定义方法
使用 jsPDF 对象可以实现这一点吗?

<html>

<head>
<script type='text/javascript' src='jspdf.source.js'></script>
</head>

<body>
Hey
<script>
var doc = new jsPDF();
doc.text(20, 20, 'Hello bob');
doc.save('test.pdf');
</script>

</body>
</html>

最佳答案

这应该适用于您的 Firefox 附加代码:

const { OS } = require("resource://gre/modules/osfile.jsm");

var pathToFile = OS.Path.join("path", "to", "file.pdf");

var doc = new jsPDF();
doc.text(20, 20, 'Hello bob');

var ab = doc.output('arraybuffer');
var u8 = new Uint8Array(ab);

OS.File.writeAtomic(pathToFile, u8).then(
function()
{
alert('File written!');
},
function(e)
{
alert('Error ' + e);
}
);

如果您不使用附加 SDK,而是使用普通扩展,请将第一行替换为:

const { OS } = Components.utils.import("resource://gre/modules/osfile.jsm", {});

查看此内容以获取有关 OS.File 的更多信息:https://developer.mozilla.org/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread

关于javascript - 使用jspdf将pdf直接保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25233344/

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