如何在离子应用程序中显示pdf文件,无需下载

时间:2017-04-19 12:57:27

标签: html angularjs pdf ionic-framework hybrid-mobile-app

我做的事情:

  1. 使用inappbrowser
  2. 使用谷歌文档
  3. 使用了webview
  4. 所以我尝试了所有这些方法来使用离子在Android设备中显示pdf文件。但没有用,我可以在所有这些方法中看到下载按钮。任何人都可以告诉我如何在没有用户下载选项的情况下显示pdf。

    我的代码:

     <div  class="col col-50 clsGrid" ng-click="showFile('http://www.orimi.com/pdf-test.pdf')">
    </div>
    

    我的pdf文件:

    http://www.orimi.com/pdf-test.pdf

    我的JS:

    $scope.showModal = function(templateUrl) {
            $ionicModal.fromTemplateUrl(templateUrl, {
                scope: $scope,
                animation: 'slide-in-up'
            }).then(function(modal) {
                $ionicLoading.show({
                duration: 1000
    });
                $scope.modal = modal;
                $scope.modal.show();
            });
        }
    
        // Close the modal
        $scope.closeModal = function() {
            $scope.modal.hide();
            $scope.modal.remove()
        };
    
        $scope.showFile = function(FileUrl) {
            var file = FileUrl;
            console.log(file);
            //var openurl = cordova.InAppBrowser.open(file, '_blank');
          //  var openurl = cordova.InAppBrowser.open(file,'_blank', 'location=yes');
    
              // var openurl = cordova.InAppBrowser.open("https://docs.google.com/viewer?url=" + file, '_blank');
    
        // var openurl = cordova.InAppBrowser.open('https://docs.google.com/viewer?url=http://www.orimi.com/pdf-test.pdf&embedded=true', '_blank');
    
              //window.open("https://docs.google.com/viewer?url=http://www.orimi.com/pdf-test.pdf&embedded=true",'_blank');
    
    
        var openurl = cordova.InAppBrowser.open('https://docs.google.com/viewer?url=http://www.orimi.com/pdf-test.pdf&embedded=true&toolbar=0&navpanes=0&scrollbar=0', '_blank');
    
    
    
          }
    

    我尝试过各种方式。但是无法找到解决方案。如果有人知道它会有用。如果有任何专家,我可以发送我的演示项目以供参考。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

您需要使用ng-pdfviewer

使用pdf.js的AngularJS PDF查看器指令。

<button ng-click="prevPage()">&lt;</button>
<button ng-click="nextPage()">&gt;</button>
<br>
<span>{{currentPage}}/{{totalPages}}</span>
<br>
<pdfviewer src="test.pdf" on-page-load='pageLoaded(page,total)' id="viewer"></pdfviewer>

并在您的AngularJS代码中:

var app = angular.module('testApp', [ 'ngPDFViewer' ]);

app.controller('TestCtrl', [ '$scope', 'PDFViewerService', function($scope, pdf) {
    $scope.viewer = pdf.Instance("viewer");

    $scope.nextPage = function() {
        $scope.viewer.nextPage();
    };

    $scope.prevPage = function() {
        $scope.viewer.prevPage();
    };

    $scope.pageLoaded = function(curPage, totalPages) {
        $scope.currentPage = curPage;
        $scope.totalPages = totalPages;
    };
}]);