将PDF文件的内容转换为Java中的Base 64,反之亦然

时间:2018-08-16 15:01:19

标签: java pdf base64

我需要将PDF内容转换为Base64,并将其用作字符串。 当我使用以下程序测试out.pdf时,将为空白。

    byte[] pdfRawData =  FileUtils.readFileToByteArray(new File("C:\\in.pdf")) ;
    String pdfStr = new String(pdfRawData);

//My data is available in the form of String

    BASE64Encoder encoder = new BASE64Encoder();
    String encodedPdf = encoder.encode(pdfStr.getBytes());
    System.out.println(encodedPdf);


// Decode the encoded content to test


    BASE64Decoder decoder = new BASE64Decoder();        
    FileUtils.writeByteArrayToFile(new File("C:\\out.pdf") , decoder.decodeBuffer(encodedPdf));

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

你为什么这样做:

tests={'esp','isakm'}   
with open(fn) as f:
    for line in f:
        data=line.split()
        if data[0] in tests:
            print(data[1:])

不是将pdfRawData传递给编码器?

这样做会导致很多编码问题,因为您没有指定用于构建字符串的字节数组的编码(它将使用平台默认值)。这显然是redondant(字节数组->字符串->字节数组)