将文件合并为单个pdf会生成不同的视图

时间:2014-10-01 18:37:55

标签: java jasper-reports itext export-to-pdf

我正在尝试使用 iText 将一个或多个 PDF 文件存储文件和 JasperReports 文件合并到一个文件中。

我做了这个方法。

Map<String, Object> parameters = new HashMap<String, Object>();

List<String> arquivos = new LinkedList<String>();
arquivos.add("/Formulario/teste.jrxml");
arquivos.add("/Formulario/teste.pdf");

try {
    Document document = new Document(PageSize.A4);
    document.setMargins(0F, 0F, 0F, 0F);
    PdfCopy pdfCopy = new PdfCopy(document, new FileOutputStream("c:\\labels\\teste.pdf"));
    pdfCopy.setMargins(0, 0, 0, 0);
    document.open();

    PdfReader pdfReader = null;
    InputStream inputStream = null;

    for (String arquivo : arquivos) {
        inputStream = ReportService.class.getResourceAsStream(arquivo);

        if (FilenameUtils.getExtension(arquivo).equals("jrxml")) {

            JasperReport report = JasperCompileManager.compileReport(inputStream);
            JasperPrint jasperPrint = JasperFillManager.fillReport(report, parameters, new JREmptyDataSource());
            inputStream = new ByteArrayInputStream(JasperExportManager.exportReportToPdf(jasperPrint));
        }

        pdfReader = new PdfReader(inputStream);

        for (int i = 1; i <= pdfReader.getNumberOfPages(); i++) {
            pdfCopy.addPage(pdfCopy.getImportedPage(pdfReader, i));
        }
        pdfCopy.freeReader(pdfReader);
        pdfReader.close();
    }

    document.close();
} catch (DocumentException | IOException | JRException e) {
    e.printStackTrace();
}

enter image description here

我看了谷歌,但没有找到任何答案。那么什么是错的?可以在相同的边距生成这些页面吗?

0 个答案:

没有答案