iframe中的PDF显示标题为“匿名”

时间:2017-08-18 15:16:31

标签: javascript angular pdf iframe

我正在使用Angular2。我从后端API获取PDF响应作为BLOB。 PDF在iframe中显示正常,但它显示标题为“匿名”。有人可以指导吗?

html代码:

<iframe id="showPDFIframe" allowtransparency="false" title="TestPDF" width="100%" height="800" [attr.src]="dataLocalUrl" type="application/pdf"></iframe>

pdf.component.ts

    pdfDownload: any;
    protected dataLocalUrl: SafeResourceUrl;

    ngOnInit() {
    this.requestOptions = this.createRequestOptions();
    this.requestOptions.responseType = ResponseContentType.Blob;
    this._pdfModelService.showPDF(this.requestOptions)
    .subscribe( (res) => {
      this.pdfDownload = res;
      this.dataLocalUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(res));
    }, err => {
      console.log(err);
    })
   }

pdfModelService.ts

showPDF(options?: RequestOptions): any {
    return this._http.get(this.endpoints.showPDF.uri, options)
      .map( (res) => {
        return new Blob([res], { type: 'application/pdf' })
      });
  }

见下图'Anonymous'正在显示 enter image description here

注意:后端API给出了我们在BLOB中投射的字节。

2 个答案:

答案 0 :(得分:5)

您是否尝试在选项中提供标题:

showPDF(options?: RequestOptions): any {
return this._http.get(this.endpoints.showPDF.uri, options)
  .map( (res) => {
    return new Blob([res], { type: 'application/pdf', title: 'testpdf' })
  });
}

答案 1 :(得分:2)

虽然我不确定为什么指定的标题字段&#34; TestPDF&#34;在代码中没有出现在页面上,&#34;(匿名)&#34;显示的值可能只是从PDF文件本身中提取元数据。一种可能的解决方案是检查PDF文档属性中的标题字段以在那里设置标题。在Adobe Acrobat中,从文件菜单中选择Properties&gt;检查/更新标题字段的说明。

来自W3.org的参考文章:https://www.w3.org/TR/WCAG20-TECHS/PDF18.html