我可以将pdfjs与magento 2 requireJS集成。已从以下位置下载文件:https://cdnjs.com/libraries/pdf.js并将它们放在my_theme/web/js/文件夹中
将pdfjs添加到requirejs脚本:
my_theme/web/js/requirejs-config.js
var config = {
paths: {
'pdfjs-dist/build/pdf': 'js/pdf.min',
'pdfjs-dist/build/pdf.worker': 'js/pdf.worker.min'
}
};
将脚本添加到页面:
require(["js/pdf", "js/pdf.worker"],function(pdfjsLib, pdfWorker){
//define url other parts of script..
pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
pdfDoc = pdfDoc_;
document.getElementById('page_count').textContent = pdfDoc.numPages;
// Initial/first page rendering
renderPage(pageNum);
});
});
脚本已经加载,我可以看到pdf.min.js和pdf.worker.min.js都加载了magento。
但仍收到以下错误:无法读取未定义的属性"getDocument"。从测试来看,两个变量都是未定义的:pdfjsLib、pdfWorker
知道这里出了什么问题吗?
如果我们使用:require(["pdfjs-dist/build/pdf", "pdfjs-dist/build/pdf.worker"],function(pdfjsLib, pdfWorker){
我们得到404,因为它将尝试从website/pub/static/vvendor/theme/pdfjs-dist/build/pdf.min.js 加载脚本
但文件位于website/pub/static/vvendor/theme/js/pdf.min.js
我没有Magento2设置,但我做了一个简单的HTML设置,它正在工作:
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
<script>
var config = {
paths: {
'pdfjs-dist/build/pdf': 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.min',
'pdfjs-dist/build/pdf.worker': 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.worker.min'
}
};
requirejs.config(config);
require(["pdfjs-dist/build/pdf", "pdfjs-dist/build/pdf.worker"],function(pdfjsLib, pdfWorker){
console.log(pdfjsLib, pdfWorker);
});
</script>
也许这会对你有所帮助:(