我从Web服务获取此字符串。从Java中的二进制数据创建PDF
“JVBERi0xLjQKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAyIDAgUgovR3JvdXAgPDwvVHlwZSAvR3JvdXAgL1MgL1RyYW5zcGFyZW5jeSAvQ1MgL0RldmljZVJHQj4”
它应该是一个PDF文件,我想这个库PDFBOX来自Apache的,但它写入内容为PDF中文字。我试过ByteArrayInputStream但创建的pdf无效,损坏,这是我写的一些代码。
public void escribePdf(String texto, String rutaSalida) throws IOException{
byte[] biteToRead = texto.getBytes();
InputStream is = new ByteArrayInputStream(biteToRead);
DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(new File(rutaSalida))));
int c;
while((c = is.read()) != -1) {
out.writeByte(c);
}
out.close();
is.close();
}
该字符串很可能是二进制的一个有效的PDF文件,但你要知道什么编码它是用Java编写的。默认情况下,Java使用UTF-16,但并不是所有的编码都是相同的值。 –
pdf是用php创建的。 – OJVM
请勿使用DataOutputStream。直接写入BufferedOutputStream。 –