Вы упомянули, что файл уже содержит строку в кодировке base64.
Файл ConvertedJPGPDF.pdf, используемый ниже, содержит строку в кодировке Base64.
Итак, вам не нужно запускать эту строку:
byte[] encodedBytes = Base64.getEncoder().encode(input_file);
Тем самым вы пытаетесь снова закодировать эти байты.
Непосредственное декодирование массива input_file
, а затем сохранение полученного байтового массива в файл .pdf.
Обновление:
На самом деле ConvertedJPGPDF.pdf
не обязательно должно называться .pdf
. Это действительно простой текстовый файл, учитывая, что он закодирован в формате base64.
В любом случае, у меня работает следующий фрагмент кода:
String filePath = "C:\\Users\\xyz\\Desktop\\";
String originalFileName = "ConvertedJPGPDF.pdf";
String newFileName = "test.pdf";
byte[] input_file = Files.readAllBytes(Paths.get(filePath+originalFileName));
byte[] decodedBytes1 = Base64.getMimeDecoder().decode(input_file);
Files.write(Paths.get(filePath+newFileName), decodedBytes1);
Надеюсь, это поможет!