私はかなり新しいnodeJs
です。サーバー上にjsPdf
というpdfを作成しようとしています。nodejsとjspdfを使ってpdfにpng画像を追加
nodeJsがjspdfに使用したatob
をサポートしていdoestよう私はnpm install jspdf --save
を用いjspdfをインストールしている、私は
npm install atob --save
を添加し
png-js
のために必要とされる
var atob = require('atob');
var PNG = require('png-js');
を追加しましたjspdf
にpngファイルを追加する。 私は次のコード
let imgData=request.payload.canvasobj;
let pdfContent = new jsPDF();
pdfContent.addImage(imgData, 'PNG', 40, 20, 0, 0);
let data = pdfContent.output('arraybuffer');
let buffer = Buffer.from(data);
let arraybuffer = Uint8Array.from(buffer);
fs.appendFile('./canvas.pdf', new Buffer(arraybuffer), function (err) {
if (err) {
console.log(err);
} else {
console.log("PDF created");
}
});
でPDFにPNGファイルを追加しようとすると、次のエラーが、私は何を逃していない
Debug: internal, implementation, error
TypeError: Uncaught error: Cannot read property 'buffer' of undefined
at Object.jsPDFAPI.processPNG (C:\LearningPro\NodeJsProjects\pdfexport-nodejs\node_modules\jspdf\dist\jspdf.debug.js:8796:80)
at Object.jsPDFAPI.addImage (C:\LearningPro\NodeJsProjects\pdfexport-nodejs\node_modules\jspdf\dist\jspdf.debug.js:4696:50)
at canvas (C:\LearningPro\NodeJsProjects\pdfexport-nodejs\requestHandler.js:105:16)
at Object.internals.handler (C:\LearningPro\NodeJsProjects\pdfexport-nodejs\node_modules\hapi\lib\handler.js:99:36)
at request._protect.run (C:\LearningPro\NodeJsProjects\pdfexport-nodejs\node_modules\hapi\lib\handler.js:30:23)
at internals.Protect.run (C:\LearningPro\NodeJsProjects\pdfexport-nodejs\node_modules\hapi\lib\protect.js:59:12)
at exports.execute (C:\LearningPro\NodeJsProjects\pdfexport-nodejs\node_modules\hapi\lib\handler.js:24:22)
at each (C:\LearningPro\NodeJsProjects\pdfexport-nodejs\node_modules\hapi\lib\request.js:382:16)
at iterate (C:\LearningPro\NodeJsProjects\pdfexport-nodejs\node_modules\hapi\node_modules\items\lib\index.js:36:13)
at done (C:\LearningPro\NodeJsProjects\pdfexport-nodejs\node_modules\hapi\node_modules\items\lib\index.js:28:25)
Debug: internal, implementation, error
TypeError: fn is not a function
at C:\LearningPro\NodeJsProjects\pdfexport-nodejs\node_modules\png-js\png-node.js:246:16
at Inflate.onEnd (zlib.js:227:5)
at emitNone (events.js:91:20)
at Inflate.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickDomainCallback (internal/process/next_tick.js:122:9)
を誘発していますか? JPEG Imageでうまく動作します。
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...QmCC
画像データは完璧です質問の画像データを垣間見るように追加しました – DharanBro
私は自分の答えを更新しました。自分で働いていて、ライブラリを使用するためにいくつかのグローバル変数を作成する必要があります。参照してください。 –
'png-js'は' jspdf'と完全には動作しません。私は 'png-js'を' jspdf'で提供された 'png.js'から修正しました。また、私はアプリケーションでより多くのDOM機能が必要だったので、ドキュメントのために 'jsdom'を使用しました。 – DharanBro