我從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。 –