gpt4 book ai didi

java - 将 pdf 转换为 byteArray - byteArray 转换为字符串 - 字符串转换为 byteArray - byteArray 转换为 pdf

转载 作者:行者123 更新时间:2023-11-30 06:25:39 28 4
gpt4 key购买 nike

我有以下代码,适用于文本文件,但不适用于 pdf 文件。我的文件包含英语和希腊语字符。我尝试将 pdf 文件转换为 byteStream 并将 byteStream 转换为 String 格式,以便将其保存为 数据库。之后,我尝试从保存的字符串创建 pdf

有什么帮助吗?

public class PdfToByteStream {

public static byte[] convertDocToByteArray(String path)throws FileNotFoundException, IOException{
File file = new File(path);

FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
for (int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum);
}
} catch (IOException ex) {
Logger.getLogger(genJpeg.class.getName()).log(Level.SEVERE, null, ex);
}
byte[] bytes = bos.toByteArray();
return bytes;
}

public static void convertByteArrayToDoc(String path, byte[] bytes)throws FileNotFoundException, IOException {
File someFile = new File(path);
FileOutputStream fos = new FileOutputStream(someFile);
fos.write(bytes);
fos.flush();
fos.close();
}

public static void main(String[] args) throws FileNotFoundException, IOException {
byte[] bytes = convertDocToByteArray("path/test.pdf");

String stream = new String(bytes, "UTF-8");//ok for txt
byte[] newBytes = stream.getBytes(Charset.forName("UTF-8")); // ok for txt

convertByteArrayToDoc("path/newTest.pdf", newBytes);
}
}

最佳答案

如果您使用Base64编码,您将能够将 PDF 转换为字符串并返回。

以下是需要更改的代码的相关部分:

import java.util.Base64;

...

public static void main(String[] args) throws FileNotFoundException, IOException {
byte[] bytes = convertDocToByteArray("some.pdf");
String stream = Base64.getEncoder().encodeToString(bytes);
byte[] newBytes = Base64.getDecoder().decode(stream);
convertByteArrayToDoc("some_new.pdf", newBytes);
}

关于java - 将 pdf 转换为 byteArray - byteArray 转换为字符串 - 字符串转换为 byteArray - byteArray 转换为 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47260421/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com