我有两个文件,其中一个是使用jasper生成的,另一个文件是在本地磁盘上生成的。我想要做的是在第三个文件上合并这两个文件。
FileInputStream supportingDocInputStream = new FileInputStream("/home/xyz/Desktop/reject.pdf");
FileOutputStream mergedFile = new FileOutputStream(new File("/home/xyz/Desktop/original.pdf"),true);
HashMap<String, Object> map = new HashMap<String, Object>(1);
map.put("request_id", id);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
JasperDesign design = JRXmlLoader.load("/home/xyz/Desktop/jaspers/sample.jrxml");
JasperReport report = JasperCompileManager.compileReport(design);
JasperPrint print = JasperFillManager.fillReport(report, map, con);
JasperExportManager.exportReportToPdfStream(print, mergedFile);
int read=0;
while((read=supportingDocInputStream.read())!=-1){
mergedFile.write(read); // overwriting the jasper's data
}
但我没有得到预期结果,mergedFile
仅包含supportedDocInputStream
的数据
答案 0 :(得分:1)
连接两个PDF文件的内容不会导致合并的PDF文件。
如果要合并两个PDF文件,可以使用iText,例如参见function that can use iText to concatenate / merge pdfs together - causing some issues
答案 1 :(得分:0)
由于您使用两种不同的方法将数据写入流中,请尝试使用
mergedFile.flush();
直接在exportReportToPdfStream
之后。