2013-04-25 53 views
11

生成报告:JasperReports的:可以看到背景图像中PDF导出,但不是在DOCX出口

下面的代码驻留在Servlet和同时生成“letter.docx” word文档下载和“pika.pdf “C中的文件:

我能够看到我在pika中定义的背景图像,但不能在”字母“中定义。

 InputStream is = request.getServletContext().getResourceAsStream("/resources/reports/" +name);  
     JasperReport jr = JasperCompileManager.compileReport(is);       
     JasperPrint jp = JasperFillManager.fillReport(jr, params, ds);  
     JRExporter exp = new JRDocxExporter(); 
     exp.setParameter(JRExporterParameter.JASPER_PRINT, jp);   
     ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
     exp.setParameter(JRExporterParameter.OUTPUT_STREAM, bos);  
     exp.exportReport(); 

     JasperExportManager.exportReportToPdfFile(jp, "C:\\pika.pdf"); 

     byte[] bytes = bos.toByteArray();  

     response.reset();  
     response.setContentType("application/octet-stream"); 
     response.setHeader("Content-disposition", "attachment; filename=\"letter.docx\"");    
     response.getOutputStream().write(bytes); 
     response.getOutputStream().flush(); 
     response.getOutputStream().close();  
+0

你的图片是什么格式?你有没有试过改变格式? – 2018-01-06 05:03:01

+0

@RuslanLópezCarropng图片 – SinistraD 2018-01-09 17:14:00

回答

1

在碧玉社区Looking for an answer,我可以看到你不是第一个问这个。 Here is another question like yours全都表示您无法在文档报告中将图片设置为背景。 我在旅行中发现的最后一件事是三种选择: JOD Reports最激进的选择,如果你可以改变你的报告引擎,检查了这一点。 Other tutorial显示如何嵌入图像,但我不确定在Word文档特定的情况下工作。 The last tutorial在这里,在这里,有点味道把文字作为背景。

希望这会有所帮助,欢呼声。

1

我的案件信息不足,但是一旦我有一个非常令人讨厌的Excel导出问题,一个单元格并未在XLS中显示,但在PDF中显示正常。我发现只是同一列的标题带和值带之间的单个像素错位。这为每个值行带来了额外的单元格,JR无法正确填充它。 因此,根据以前的经验,我的建议是检查JRXML中的错位。由于MS Office格式不能很好地标准化为PDF或HTML格式,因此它们的出口往往会更加“出毛病”。