使用 pdf.js 库和 Angularjs 在 IBM Mobile fist 平台应用程序中显示 PDF 文件
Display PDF file inside the IBM Mobile fist platform app using pdf.js library and Angularjs
我正在尝试在应用程序中显示 pdf 文件,我已经测试了所有基于 pdf.js 库 https://github.com/mozilla/pdf.js and using angular directives and I tried whit this one https://github.com/akrennmair/ng-pdfviewer which provide a directive and inside it has a service and controller but our application structure is a little different and I had to broke in parts the service and controller, and when I finished the implementation does not work, Then I took a different approach https://github.com/sayanee/angularjs-pdf angular-pdf 指令的不同选项,似乎更直接和易于实施,但不幸的是,结果是一样的。它根本不加载文档,可能是我的 url 路径 pdf 文件错误,我尝试复制与示例相同的结构,
这是一个示例 https://github.com/sayanee/angularjs-pdf/tree/master/example 为了 pdf 可以加载并在 canvas
中查看
这是控制器的外观,与 sayanee 基本相同
例子
这是我的文件夹结构
/content
-----/mypdf.pdf
/app
----/JS
-----/pdfviewer
------/partials
--------/canvas.html
------/pdfviewer.html
------/pdfviewer.controller.html
------/pdfviewer.module.html
----/index.html
在我的 controller.js
$scope.pdfUrl ='./content/mypdf.pdf';
console.log( 'controller PDFViewerCtrl::'+ $scope.pdfUrl);
$scope.scroll = 0;
$scope.loading = 'loading';
$scope.getNavStyle = function(scroll) {
if(scroll > 100) return 'pdf-controls fixed';
else return 'pdf-controls';
};
$scope.onError = function(error) {
console.log(error);
};
$scope.onLoad = function() {
$scope.loading = '';
};
$scope.onProgress = function(progress) {
console.log(progress);
};
在pdfviewer.html中我只保留canvas
<hr>
{{loading}}
<canvas id="pdf" class="rotate0" ng-model="pdfUrl"></canvas>
在我的 pdfviewer.html
<ion-view class="pdfViewer" view-title="PDF" hide-nav-bar="false">
<ion-nav-buttons side="right">
</ion-nav-buttons>
<ion-nav-buttons side="left">
Done
</ion-nav-buttons>
<ion-content>
<div class="wrapper" ng-controller="PDFViewerCtrl">
<ng-pdf template-url="templates/pdfViewer/partials/canvas.html" canvasid="pdf" scale="page-fit" page=1>
</ng-pdf>
</div>
</ion-content>
</ion-view>
模块如下所示:
angular.module('myapp', ['pdf'])
我还在 index.html
中添加了 pdf.js 库和指令
<script src="js/lib/pdf.js"></script>
<script src="js/directives/angular-pdf.js"></script>
我可以看到它调用指令,然后转到 pdf 库,但是,它挂在 PDFJS.getDocument 中,再也没有回来,所以我只能看到加载标签。
我很确定 pdf.js 和指令有效,但我不确定它是否适用于使用 cordova、Angularjs 和 Ionic 的混合移动应用程序。
对于在应用程序内部或外部显示 pdf 的任何其他建议,我将不胜感激。
好吧,我终于可以将 pdf.js 与 IBM Mobile 第一个项目集成,然后我可以在 Mobile 混合应用程序中显示 pdf 文件,所以除了 inAppBrowser cordova 插件 https://github.com/apache/cordova-plugin-inappbrowser,这里还有其他选项,这是 link,其中 pdf.js 和 angular ionic 在 IBM Mobile first 应用程序中实现。
我希望它可以帮助那些在移动混合应用程序中寻找 pdf 查看器的人。
我正在尝试在应用程序中显示 pdf 文件,我已经测试了所有基于 pdf.js 库 https://github.com/mozilla/pdf.js and using angular directives and I tried whit this one https://github.com/akrennmair/ng-pdfviewer which provide a directive and inside it has a service and controller but our application structure is a little different and I had to broke in parts the service and controller, and when I finished the implementation does not work, Then I took a different approach https://github.com/sayanee/angularjs-pdf angular-pdf 指令的不同选项,似乎更直接和易于实施,但不幸的是,结果是一样的。它根本不加载文档,可能是我的 url 路径 pdf 文件错误,我尝试复制与示例相同的结构, 这是一个示例 https://github.com/sayanee/angularjs-pdf/tree/master/example 为了 pdf 可以加载并在 canvas
中查看这是控制器的外观,与 sayanee 基本相同
例子 这是我的文件夹结构
/content
-----/mypdf.pdf
/app
----/JS
-----/pdfviewer
------/partials
--------/canvas.html
------/pdfviewer.html
------/pdfviewer.controller.html
------/pdfviewer.module.html
----/index.html
在我的 controller.js
$scope.pdfUrl ='./content/mypdf.pdf';
console.log( 'controller PDFViewerCtrl::'+ $scope.pdfUrl);
$scope.scroll = 0;
$scope.loading = 'loading';
$scope.getNavStyle = function(scroll) {
if(scroll > 100) return 'pdf-controls fixed';
else return 'pdf-controls';
};
$scope.onError = function(error) {
console.log(error);
};
$scope.onLoad = function() {
$scope.loading = '';
};
$scope.onProgress = function(progress) {
console.log(progress);
};
在pdfviewer.html中我只保留canvas
<hr>
{{loading}}
<canvas id="pdf" class="rotate0" ng-model="pdfUrl"></canvas>
在我的 pdfviewer.html
<ion-view class="pdfViewer" view-title="PDF" hide-nav-bar="false">
<ion-nav-buttons side="right">
</ion-nav-buttons>
<ion-nav-buttons side="left">
Done
</ion-nav-buttons>
<ion-content>
<div class="wrapper" ng-controller="PDFViewerCtrl">
<ng-pdf template-url="templates/pdfViewer/partials/canvas.html" canvasid="pdf" scale="page-fit" page=1>
</ng-pdf>
</div>
</ion-content>
</ion-view>
模块如下所示:
angular.module('myapp', ['pdf'])
我还在 index.html
中添加了 pdf.js 库和指令<script src="js/lib/pdf.js"></script>
<script src="js/directives/angular-pdf.js"></script>
我可以看到它调用指令,然后转到 pdf 库,但是,它挂在 PDFJS.getDocument 中,再也没有回来,所以我只能看到加载标签。
我很确定 pdf.js 和指令有效,但我不确定它是否适用于使用 cordova、Angularjs 和 Ionic 的混合移动应用程序。
对于在应用程序内部或外部显示 pdf 的任何其他建议,我将不胜感激。
好吧,我终于可以将 pdf.js 与 IBM Mobile 第一个项目集成,然后我可以在 Mobile 混合应用程序中显示 pdf 文件,所以除了 inAppBrowser cordova 插件 https://github.com/apache/cordova-plugin-inappbrowser,这里还有其他选项,这是 link,其中 pdf.js 和 angular ionic 在 IBM Mobile first 应用程序中实现。
我希望它可以帮助那些在移动混合应用程序中寻找 pdf 查看器的人。