gpt4 book ai didi

angular - ng2-pdf-viewer 错误 : Invalid parameter object: need either . 数据,.range 或 .url

转载 作者:太空狗 更新时间:2023-10-29 19:32:07 25 4
gpt4 key购买 nike

我正在尝试在我的 Angular 7 项目中使用 ng2-pdf-viewer。最初,我遇到了一个我解决的 cors 问题 with this advice .现在,我遇到以下错误:

Invalid parameter object: need either .data, .range or .url
at Object.getDocument (pdf.js:7919)
at PdfViewerComponent.push.../../../node_modules/ng2-pdf-viewer/ng2-pdf-viewer.es5.js.PdfViewerComponent.loadPDF

我试图实现答案 from this post ,但没有运气。它可能是正确的,但我误解了如何实现。

我的老师:

import {Component, OnInit} from '@angular/core'
import {DomSanitizer, SafeUrl} from '@angular/platform-browser'

@Component({
selector:'app-help-dialog',
templateUrl:'./helpDialog.html',
styleUrls:['../../style/style.css']
})
export class HelpDialog implements OnInit {

pdfSource:string = 'https://url/to/my/pdf.pdf'
safeUrl:SafeUrl

constructor(private sanitizer: DomSanitizer) {
}

ngOnInit() {
this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.pdfSource)
}
}

和我的模板:

<pdf-viewer [src]='safeUrl'>
</pdf-viewer>

最佳答案

如果您使用的是 url,那么您应该做的就是使用 pdfSource 而不是 safeUrl

如果您使用的是 base64 编码,这就是我修复它的方法:在 .html 文件中

<pdf-viewer [src]="pdfSource"></pdf-viewer>

在 .ts 文件中

import { Component, OnInit } from '@angular/core';

@Component({
...
})
export class testComponent implements OnInit {
base_64_string = 'this_is_where_you_put_base_64';
pdfSource;

constructor() {}

ngOnInit() {
this.pdfSource = this._base64ToArrayBuffer(this.pdfSource);
}

_base64ToArrayBuffer(base64) {
const binary_string = window.atob(base64);
const len = binary_string.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) {
bytes[i] = binary_string.charCodeAt(i);
}
return bytes.buffer;
}
}

关于angular - ng2-pdf-viewer 错误 : Invalid parameter object: need either . 数据,.range 或 .url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53877582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com