こんにちは、
pdf.jsライブラリをelectronアプリと統合しようとしています。 その背後にある主な理由は、アプリにPDFビューアを用意し、ドキュメントを印刷することです。
まず、2つの方法でライブラリを統合しようとしました。
次の質問があります。
</div>
<canvas id="theCanvas"></canvas>
<div>
PDFJS.getDocument(pdfPath).then(function getPdfHelloWorld(pdf) {
pdf.getPage(1).then(function getPageHelloWorld(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
var canvas = document.getElementById('theCanvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
});
});
しかし、これは私が欲しいもののほんの一部です。 Viewer.htmlのようなビューアコントロールが必要です。 そこで、次のように直接viewer.htmlで新しいウィンドウを開こうとしました。
var pdfPath = __dirname + '/pdfs/trial.pdf';
mainWindow.loadURL('file://' + __dirname + '/generic/web/viewer.html?file=' + pdfPath);
ビューアを見ることができましたが、PDFファイルをロードしているときに、コンソールに次のエラーがスローされます。
Uncaught(in promise)TypeError:PDFJS.getDocumentは関数ではありません
Object.pdfViewOpenでopenとして
webViewerInitializedで(file:///.../src/generic/web/viewer.js:7686:26)
ここで何が間違っているのか理解できません。 これは推奨される方法ですか? また、そのビューア全体をキャンバスまたはiframeに埋め込みたい場合、どうすればよいですか? 私が試しているような特定の一般的なタスクを実行するために、プロジェクトにAPIリストがあると便利です。 申し訳ありませんが、すでにそこにあり、私がそれを見つけることができない場合。
誰かがここで私を助けてくれれば幸いです。
前もって感謝します...
構成:
PDF.jsバージョン:0.8.0
それは本当に古いバージョンです。 私たちのリリースからすでにビルドされたバージョン(またはgulp generic
もの)は、PDFを自分でUint8Arrayにロードできることを除いて、正常に動作します。
PDFJS.getDocumentは関数ではありません
これは、コアPDF.jsライブラリ( './build/pdf.js'ファイル)がロードされていないことを示しています。
迅速な返信をありがとうユーリー。
それは本当に古いバージョンです。
その古いバージョンをどうやって入手したのかわかりません。 プロジェクトを取得するためにgit clone git://github.com/mozilla/pdf.js.git
以外の特別なことは何もしませんでした。 ただし、ここを見ると、package.jsonは0.8.0を示しています。
pdfを自分でUint8Arrayにロードできることを除いて、私たちのリリースからすでにビルド済みのバージョン(またはgulpジェネリックバージョン)は正常に動作します。
これは、コアPDF.jsライブラリ( './build/pdf.js'ファイル)がロードされていないことを示しています。
gulp genericを実行した後、2つの場所でpdf.jsとpdf.worker.jsを取得しました。 1つはgenericディレクトリの外側にあり、もう1つはgeneric / build /ディレクトリの内側にあります。 私は現在、外側のものを指しています。 間違ったものを指している場合はお知らせください。
もう一度助けてくれてありがとう!
package.jsonはまだ0.8.0を示しています。
package.jsonには、ビルドされたライブラリバージョンが含まれていません。正しいバージョン番号については、pdf.jsファイルまたはPDFJS.versionプロパティを参照してください。
間違ったものを指している場合はお知らせください。
それらの両方は同一でなければならない。 「generic /」フォルダー全体を使用する必要があるため、pdf.jsが適切な場所に配置されます。
pdf.jsファイルまたはPDFJS.versionプロパティを参照してください
バージョン:1.4.174と書かれています
また、私は問題を理解しました。 汎用ディレクトリから適切なものをコピーしました。 ただし、viewer.htmlURLでウィンドウを開くと; windowプロパティには次のものが必要です。
webPreferences: {
nodeIntegration: false
}
そして、それは今うまくロードすることができます。
ユーリーの助けをありがとう!
最も参考になるコメント
バージョン:1.4.174と書かれています
また、私は問題を理解しました。 汎用ディレクトリから適切なものをコピーしました。 ただし、viewer.htmlURLでウィンドウを開くと; windowプロパティには次のものが必要です。
webPreferences: { nodeIntegration: false }
そして、それは今うまくロードすることができます。
ユーリーの助けをありがとう!