umair
umair

Reputation: 95

Facing Error when Converting Base64 to PDF file in ReactJS/Javascript

i am struggling to display the PDF as attachment in ReactJS. i have managed to bring the base64 to the front end but after i try to create the blob object it doesn't work and although it goes to the Acrobat reader but shows the error. any suggestions please as how can i convert base64 to pdf correctly.

I have also uploaded the base64 code that i am getting when console logging at pastebin, https://pastebin.com/W4zEXyPy

Note: As when i try to repair at https://base64.guru/ it shows invalid strings and character(data:application/pdf;), i have tried to use content.slice(29); so it will start from JVB...(rather from data:application/pdf;base64,JVBERi0xL........) but getting the same error. Link to pic of Repair Base64 atbase64guru

Error: not decoded properly


    let generateFile = (content, fileName) => {
    
        console.log("content", content); // here at console if i copy the code and use online tool(https://base64.guru/converter/decode/pdf) it shows the correct pdf

        let content1= content.slice(29);// content1 is correct base64 as if i use it online tool it correctly generate the PDF document
        const blob = new Blob([content1], { type: "application/pdf" });
        console.log(blob);
        const link = document.createElement("a");
        link.href = window.URL.createObjectURL(blob);
        link.download = fileName;
        link.click();
      };

Upvotes: 3

Views: 2228

Answers (1)

Victor
Victor

Reputation: 5769

A simple console.log(content.slice(29)) could reveal your mistake. The problem is that the content1 variable contains a string that begins with "VBE…" while it must begin with "JVBE…". So, your mistake is that the slice() function discards too many characters.

Upvotes: 1

Related Questions