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(); >> >
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).
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,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,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?
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 #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.