为什么pdf_doc对象为空;关闭问题?节点> Sqlite>文件> PDF

时间:2015-11-02 17:36:02

标签: javascript node.js sqlite

我想在下面阅读图像文件并将其转换为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)

1 个答案:

答案 0 :(得分:0)

正如@FelixKling所暗示 - 有两个不同的东西:jsPDF和Node-jsPDF。 虽然一个是库(在浏览器中工作,客户端),但第二个是Node的桥接器。似乎我对缺乏文档感到困惑,也要注意:从Github获取存档,因为它似乎并非所有发行版都包含相同的文件... 希望这可以为您节省几个小时,享受!