我想在下面阅读图像文件并将其转换为PDF格式。这些文件存储在磁盘上,文件名存储在SQLite数据库中。
var fs = require('fs');
var pdf_doc = new jsPDF();
pdf_doc.text(20, 20, 'Hello, world.');
db.all("SELECT * FROM media", function(err, rows) {
rows.forEach(function(row) {
var file_content = read_image_file(row.url);
add_image_to_pdf_doc(file_content);
});
});
function read_image_file(image_url) {
var img_data = fs.readFileSync("./public/uploads/"+image_url);
return img_data;
}
function add_image_to_pdf_doc(img_data) {
pdf_doc.addImage(img_data, 'JPEG', 15, 40, 180, 160);
}
pdf_doc
似乎是空的(“Uncaught TypeError:undefined不是函数”),我无法理解为什么以及如何解决这个问题。
编辑:这是完整的错误日志:
[2084:1102/173032:ERROR:nw_shell.cc(336)] TypeError: undefined is not a function
at Object.jsPDFAPI.binaryStringToUint8Array (file:///Users/j/App/dev/0002/app.nw/libs/jspdf/dist/jspdf.debug.js:2560:35)
at Object.jsPDFAPI.addImage (file:///Users/j/App/dev/0002/app.nw/libs/jspdf/dist/jspdf.debug.js:2756:23)
at add_image_to_pdf_doc (file:///Users/j/App/dev/0002/app.nw/controllers/main.js:122:10)
at file:///Users/j/App/dev/0002/app.nw/controllers/main.js:113:3
at Array.forEach (native)
at Statement.<anonymous> (file:///Users/j/App/dev/0002/app.nw/controllers/main.js:111:7)
--> in Database#all('SELECT * FROM media', [Function])
at file:///Users/j/App/dev/0002/app.nw/controllers/main.js:110:4
[2084:1102/173032:INFO:CONSOLE(28)] "Uncaught TypeError: undefined is not a function", source: /Users/j/App/dev/0002/app.nw/node_modules/sqlite3/lib/trace.js (28)
答案 0 :(得分:0)
正如@FelixKling所暗示 - 有两个不同的东西:jsPDF和Node-jsPDF。 虽然一个是库(在浏览器中工作,客户端),但第二个是Node的桥接器。似乎我对缺乏文档感到困惑,也要注意:从Github获取存档,因为它似乎并非所有发行版都包含相同的文件... 希望这可以为您节省几个小时,享受!