Jasper Report - Set Author property in a PDF docum

2019-02-18 15:47发布

Is there a way to set the Author property to a PDF document by setting a parameter when calling Jasper from Java.

enter image description here

This is how I generate a Jasper report from Java.

      JasperPrint jasperPrint;
        String outFile = "39285923953222.pdf";
        HashMap hm = new HashMap();
        hm.put("ID",id);
        hm.put("FOOTER",Constants.FOOTER); // Set somehow a string for the author name

        Session session = this.sessionFactory.openSession();
        Connection con = session.connection();

        jasperPrint = JasperFillManager.fillReport(jasperPath + "myReport.jasper", hm, con);
        JasperExportManager.exportReportToPdfFile(jasperPrint, outPath + outFile);  

3条回答
【Aperson】
2楼-- · 2019-02-18 16:04

Not sure if it is the right way to go, but you might want to look at jasperPrint.getPropertyNames() or jasperPrint.getPropertiesMap() and see if you have any author property in there.

查看更多
▲ chillily
3楼-- · 2019-02-18 16:20

Look at static field METADATA_AUTHOR in JRPdfExporterParameter.
Use JRPdfExporter instead of JasperExportManager.

Example :

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath + "myReport.jasper", hm, con);

JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE, outPath + outFile);
exporter.setParameter(JRPdfExporterParameter.METADATA_AUTHOR, "Adnan");
exporter.setParameter(JRPdfExporterParameter.METADATA_TITLE, "Title");
// ...
exporter.exportReport();
查看更多
祖国的老花朵
4楼-- · 2019-02-18 16:22

JRExporter became deprecated in 5.6 according to this post. I got it to work doing this:

    ...
    final JRPdfExporter exporter = new JRPdfExporter();
    exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
    final SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
    configuration.setMetadataTitle(title);
    configuration.setMetadataAuthor(author);
    configuration.setMetadataCreator(creator);
    configuration.setMetadataSubject(subject);
    configuration.setMetadataKeywords(keywords);
    ...
查看更多
登录 后发表回答