Base64 . Guru

A virtual teacher who reveals to you the great secrets of Base64

Convert Base64 to PDF in Java

To convert a Base64 string to PDF file in Java you have to use the Base64.Decoder class and any convenient way to write a byte array to file (it is important to note that Base64.getDecoder().decode() returns a byte array, not a string).

import java.io.File; import java.io.FileOutputStream; import java.util.Base64; class Base64DecodePdf < public static void main(String[] args) < File file = new File("./test.pdf"); try ( FileOutputStream fos = new FileOutputStream(file); ) < // To be short I use a corrupted PDF string, so make sure to use a valid one if you want to preview the PDF file String b64 = "JVBERi0xLjUKJYCBgoMKMSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgMTQxL04gMjAvTGVuZ3=="; byte[] decoder = Base64.getDecoder().decode(b64); fos.write(decoder); System.out.println("PDF File Saved"); >catch (Exception e) < e.printStackTrace(); >> >
Comments (32)
Arturo, 17 october 2019 at 18:00 # I get error getDecoder (). Decode (b64) that I have to do to initialize or fix that error Administrator, 17 october 2019 at 18:48 #↑ Hi! Can you please specify the full error message and your Java version? Sudhik, 6 november 2019 at 21:59 #

Thank You. I was writing the PDF file with String from decoder and it would show blank pages. When I write as byte[] it shows the content.

Dipak, 19 december 2019 at 20:35 #

Hello! Thanks for the code snippet. When I run the program, it created a PDF file but when I try open the file, it say "There was an error opening the file. The file is damaged and could not be opened". Please help!

Administrator, 19 december 2019 at 22:14 #↑

Hello,
To be short, the code snippet contains only first bytes of a PDF file, but as I pointed out in the example, you should specify a valid Base64 string (for example, use this one).

kolyfish, 2 may 2024 at 08:08 #↑ ME TOO . HELP Praveen, 18 march 2020 at 10:06 #

What if my encoded string size is more than 65535. Will it work?

Marwa, 7 may 2020 at 05:13 #

Hi , i've text more than 65535 so above is giving error string too long , will you help me how can i pass a long string like that to the decoder

PraveenRaj13, 12 may 2020 at 14:11 #

im try this code but script pass but pdf document open without content

Administrator, 12 may 2020 at 21:33 #↑ Hello,
Please read the code carefully. There is a comment explaining what's the problem. PraveenRaj13, 13 may 2020 at 03:40 #↑

Im using correct PDF Base64 content but unfortunately its not working manually its working fine with out issue please help us

Administrator, 13 may 2020 at 07:16 #↑ Please try to use the Base64 string from this page and let me know if it works. Rajeev, 11 june 2020 at 13:33 # If the string is more than 65535, I am getting error. Is there a work around for this? john, 26 june 2020 at 14:39 # hi, the code works, but i need to display the pdf on a web page, could you help me? Administrator, 26 june 2020 at 19:01 #↑ Hi,
You can embed it via Data URI. john, 24 july 2020 at 15:51 #↑ but can I show it on a content type apllication/pdf? Dylan, 27 july 2020 at 13:27 #

Hello!
I'm trying to print the decoder result on the web page with an out.print(), but when I see the content, some characters change.
How do I solve that problem?

vero, 11 november 2020 at 18:32 # thank you so much, it realy helps me. :D Silva, 10 november 2021 at 05:11 #

I have an encrypted binary file has been base64 encoded. I want to decode it. How can I do that?

maria, 6 march 2022 at 22:05 #

$< name > to display files from database. Can you make suggestions?

I hardcoded the strings you provided in your tutorial. The red dot displays without any problems. The pdf string does not :(

Aline, 3 may 2022 at 11:36 #

Hi, I'm trying to convert base64 to String (text), but when converting it's coming out all weird, a lot of special characters, without a specific text, would you know how to convert the text to normal writing.