【问题标题】:How to Show PDF file from local in Angular?如何在 Angular 中显示本地的 PDF 文件?
【发布时间】:2020-12-19 15:24:19
【问题描述】:

我有 Angular Web 应用程序,我需要显示和打印位于我计算机中的 PDF。如何显示带有打印选项的 PDF 文件? 我想显示 pdf 位于 C:\Users\xx\Desktop\xyz.pdf。

<iframe
    src="https://drive.google.com/viewerng/viewer?embedded=true&url=http://infolab.stanford.edu/pub/papers/google.pdf#toolbar=0&scrollbar=0"
    frameBorder="0"
    scrolling="auto"
    height="100%"
    width="100%"
></iframe>

我尝试过 iframe 和其他工具,但正如我必须从本地显示的那样,它给出了错误。

【问题讨论】:

  • 你不能直接从文件系统加载一些东西,这将是一个巨大的安全问题。所以 Randy 是对的,你必须使用文件输入,然后你可以使用 fileReader API 来加载它。
  • 当用户单击按钮时,在我的服务器端,我正在创建 pdf 文件。所以在角度方面,我应该展示这个 pdf 文件,而且它必须是可打印的。有没有没有用户选择选项的方法?谢谢。

标签: html angular


【解决方案1】:

您可以使用ng2-pdf-viewer 包。

步骤:

PdfViewerModule 导入您的模块:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app/app.component';

import { PdfViewerModule } from 'ng2-pdf-viewer';
 
@NgModule({
  imports: [BrowserModule, PdfViewerModule],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})

class AppModule {}

在您的模板中使用此组件后:

import { Component } from '@angular/core';
 
@Component({
  selector: 'example-app',
  template: `
  <pdf-viewer [src]="pdfSrc"
              [render-text]="true"
              style="display: block;"
  ></pdf-viewer>
  `
})
export class AppComponent { }

渲染本地 PDF 文件

在您的 html 模板中添加输入:

<input (change)="onFileSelected()" type="file" id="file">

然后将 onFileSelected 方法添加到您的组件中:

onFileSelected() {
  let $img: any = document.querySelector('#file');

  if (typeof (FileReader) !== 'undefined') {
    let reader = new FileReader();

    reader.onload = (e: any) => {
      this.pdfSrc = e.target.result;
    };

    reader.readAsArrayBuffer($img.files[0]);
  }
}

【讨论】:

  • 我想显示位于 C:\Users\xx\Desktop\xyz.pdf 的 pdf。我想从本地上传。
  • 实际上我已经尝试过您发布的内容,但是对于 C:\Users\xx\Desktop\xyz.pdf 之类的路径,它不起作用。
  • 感谢您的回答,有没有办法,不用输入选择选项?
猜你喜欢
  • 2012-03-22
  • 2017-11-26
  • 2017-09-02
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多