java - 如何将 Pdf 转换为 base64 并编码/解码

标签 java pdf base64 decode encode

好的,我有一些 pdf 需要通过 base64encoder 转换为 base64。

最后,我使用解码器转换回 pdf 格式,但我的内容丢失了。

我的代码:

byte[] input_file = Files.readAllBytes(Paths.get("C:\\user\\Desktop\\dir1\\dir2\\test3.pdf"));
    byte[] encodedBytes = Base64.getEncoder().encode(input_file);

    String pdfInBase64 = new String(encodedBytes);
    String originalString = new String(Base64.getDecoder().decode(encodedBytes));

    System.out.println("originalString : " + originalString);

    FileOutputStream fos = new FileOutputStream("C:\\user\\Desktop\\dir1\\dir2\\newtest3.pdf");
    fos.write(originalString.getBytes());
    fos.flush();
    fos.close();

结果:

编码:https://pastebin.com/fnMACZzH

Before base64encode

After decode

谢谢

最佳答案

您可以解码 base64 编码的字符串并将该 byte[] 传递给 FileOutputStream 写入方法来解决此问题。

        String filePath = "C:\\Users\\xyz\\Desktop\\";
        String originalFileName = "96172560100_copy2.pdf";
        String newFileName = "test.pdf";

        byte[] input_file = Files.readAllBytes(Paths.get(filePath+originalFileName));

        byte[] encodedBytes = Base64.getEncoder().encode(input_file);
        String encodedString =  new String(encodedBytes);
        byte[] decodedBytes = Base64.getDecoder().decode(encodedString.getBytes());

        FileOutputStream fos = new FileOutputStream(filePath+newFileName);
        fos.write(decodedBytes);
        fos.flush();
        fos.close();

关于java - 如何将 Pdf 转换为 base64 并编码/解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52069359/

相关文章:

java - 在ImageView中设置位图图像

javascript - 从图像 URL 转换时 Base64 图像未打开

java - 引起原因:java.lang.IllegalArgumentException:错误::0在切入点中正式未绑定(bind)

Java : how to send x emails per minute

java - 在带有 JDBC 驱动程序的 Java 中使用准备好的语句和变量绑定(bind) Order By

ruby-on-rails - 在 Rails 中生成 PDF

javascript - 如何使用 javascript 提交 PDF 表单

Java:如何在子进程中调用 prctl()

vb.net - 以编程方式打印到 pdf 打印机

html - 如果它位于单独的文件中,如何在 HTML 中显示 base64 编码的图像?