带有magento 2的pdfjs

问题描述

我可以将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"],pdfWorker){

我们得到404,因为它将尝试从website / pub / static / vendor / theme / pdfjs-dist / build / pdf.min.js加载脚本

文件位于网站/pub/static/vendor/theme/js/pdf.min.js

解决方法

我没有Magento2设置,但是我做了一个简单的HTML设置,并且可以正常工作:

    @ParameterType("[a-z]*")
    public MyEnum myEnum(String name) {
        try {
            return MyEnum.valueOf(name);
        } catch (IllegalArgumentException e){
            return null;
        }
    }

    @Given("I'm parsing enum \"{myEnum}\"")
    public void i_m_parsing_enum(MyEnumo arg1) throws Throwable {
        System.out.println(arg1);
    }

也许这会帮助您:)