使用itext-1.4.1来生成pdf的ByteArrayOutputStream文件流,然后将文件流加入使用jdom生成的xml中。
其中生成pdf文件到硬盘的测试已经通过,没有问题。
但是现在将ByteArrayOutputStream流放到xml中的时候,提示错误:下载文件[a]过程中出现错误:[org.jdom.IllegalDataException: The data “ 。”
is not legal for a JDOM character content: 0x10 is not a legal XML character.]其中文件[a]是xml的文件名, 上面错误中的双引号部分中大部分是乱码。请高手来指教,这是什么问题
其中生成pdf文件到硬盘的测试已经通过,没有问题。
但是现在将ByteArrayOutputStream流放到xml中的时候,提示错误:下载文件[a]过程中出现错误:[org.jdom.IllegalDataException: The data “ 。”
is not legal for a JDOM character content: 0x10 is not a legal XML character.]其中文件[a]是xml的文件名, 上面错误中的双引号部分中大部分是乱码。请高手来指教,这是什么问题
public static List<byte[]> getBlobToByteList(oracle.sql.BLOB blob) throws SQLException, IOException {
ArrayList<byte[]> arryResult = new ArrayList<byte[]>();
if (blob != null){
InputStream reader = blob.getBinaryStream();
BufferedInputStream buffReader = new BufferedInputStream(reader);
byte[] cbuftemp = new byte[1000];
while ((buffReader.read(cbuftemp)) != -1) {
arryResult.add(cbuftemp.clone());
}
}
return arryResult;
}
返回的是一个ArrayList的集合,这样你的BLOB类型的数据就可以被读取了,不过不知道你的.pdf文件在数据库中是不是以BLOB类型存储的,祝你好运!
BuildPDF pdf = new BuildPDF();//生成pdf的类
buffer = pdf.controlle(censor_ID);//调用方法 String strPdf = buffer.toString();//转换成String
下面的就是保存到xml中了。
我觉得是转换成String的时候出的问题,是不是和字符集有关,请高手看看