angular - Syncfusion PdfViewer - Ladda data direkt från blob


Min fråga är hur man laddar en PDF direkt från en blob. Jag vill inte göra ett anrop till API:et för att få svar. Problemet är att koden nedan gör ett anrop till API:et på /load. Varför och hur kan jag undvika det?

Typescript :

  public service = 'http://localhost:4200/api/';
  public load() {
    this.gdvService.getData(this.data.id, this.data.configuration)
    .subscribe(gdvData => {
      const responseData = gdvData[this.data.configuration.dataColumn];
      const blob = new Blob([responseData], { type: 'application/pdf' });
      const reader = new FileReader();
      reader.readAsBinaryString(blob);
      reader.onloadend = () => {
        const base64data = reader.result;
        const pdfviewer = (document.getElementById('pdfViewer') as any).ej2_instances[0];
        pdfviewer.load(base64data, null);
      };
    });
  }

HTML :

<ejs-pdfviewer id="pdfViewer" [serviceUrl]='service' style="height:640px;display:block"></ejs-pdfviewer>

Svar #1

Syncfusion PDF Viewer-kontrollen är både server- och klientsidesorienterad. PDF Viewer-kontrollen bearbetar PDF-dokumentet på serversidan (utvecklat med .NET-miljö) och skickar de bearbetade PDF-data till klienten med hjälp av webbtjänsten för att rendera PDF-dokumentet och för vidare operationer i PDF Viewer. Så för närvarande är det inte möjligt att ladda PDF-dokumentet i PDF Viewer utan serversida.

Med vänliga hälsningar, Akshaya