打印出乱码的PDF文件。角度6

时间:2018-12-17 06:27:33

标签: javascript angular6

这是二进制文件的样子。

enter image description here

这就是我如何订阅获取pdf blob文件的方法

public downloadDoc(token: any, docNumber: number) {
  this.loading = true;
  this._docService.getDocumentStreams(token, docNumber).subscribe(res => {
    this.loading = false;
    let file = new Blob([res._body], {
      type: 'application/pdf'
    });
    var fileURL = URL.createObjectURL(file);
    console.log(res)
    window.open(fileURL);
  }, (error => {
    console.log(`failed to download document: ${error}`);
  }))
}

这是服务中的方法

public getDocumentStreams(token: any, docNumber: number): Observable < any > {
  const body = {
    'DocNo': docNumber,
    'StreamNo': 0
  };
  const headers = new Headers();

  headers.append('Content-Type', 'application/json');
  headers.append('Accept', 'application/json');
  headers.append('TenantName', 'idl');
  headers.append('UseToken', '1');
  headers.append('Authorization', 'Basic ' + window.btoa('webapi' + ':' + token));
  headers.append('responseType', 'arraybuffer'
    as 'json');

  return this.http.post(`${this._therefore_apiBase}/GetDocumentStreamRaw`, body, {
    headers: headers
  }).pipe(
    map((response) => {
      return response;
    }));
}

这会打印出乱码的pdf文件

0 个答案:

没有答案