首页 > 解决方案 > 从 Angular 中的 PDFTron 导入具有函数的命名空间

问题描述

我正在尝试使用PDFTron库 "@pdftron/webviewer": "^6.2.3" ,从这个示例开始 - https://github.com/PDFTron/webviewer-angular-sample

他们有CoreControls命名空间,描述如下:

export declare namespace CoreControls {}

在我的 app.component.ts 我正在使用

import {CoreControls} from '@pdftron/webviewer';

接下来我想使用这个:

ngOnInit() {
  CoreControls.createDocument('blabla');
}

并得到了这个错误

"ERROR TypeError: Cannot read property 'createDocument' of undefined".

一般来说,我需要在没有 WebViewer 的情况下使用他们的 API,比如这里 - https://www.pdftron.com/documentation/web/guides/get-file-data-without-viewer/。但是确实有问题,也许我不了解角度正确或 TS,或者 PDFTron 可能没有针对角度进行优化。

我不明白我不明白的。

标签: angulartypescriptpdftron

解决方案


我认为CoreControls那是从声明中导入的

import {CoreControls} from '@pdftron/webviewer';

是类型声明,而不是实际的类。这可以解释为什么当您尝试访问 CoreControls 时它会未定义。

要解决此问题,您需要将 CoreControls 脚本直接附加到 HTML 文件中。具体来说,在此文件https://github.com/PDFTron/webviewer-angular-sample/blob/master/src/index.html中,您需要添加一个<script src=path></script>路径是CoreControls.jsnpm 包中的位置的位置。

希望这可以帮助!


推荐阅读