【问题标题】:How to generate password protected pdf using birt report engine api如何使用 birt 报告引擎 api 生成受密码保护的 pdf
【发布时间】:2015-06-04 06:48:29
【问题描述】:

我已成功使用 BIRT 报告引擎 api 使用外部 oracle 数据源生成 pdf。为了生成设计,我使用了 eclipse BIRT 报表设计器。我的下一个任务是将此 pdf 设置为受密码保护。 请指导这样做。 下面是生成pdf的代码

package com.birt.Main;
import org.eclipse.birt.core.exception.BirtException;
import org.eclipse.birt.core.framework.Platform;
import org.eclipse.birt.report.engine.api.EngineConfig;
import org.eclipse.birt.report.engine.api.EngineException;
import org.eclipse.birt.report.engine.api.IReportRunnable;
import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
import org.eclipse.birt.report.engine.api.PDFRenderOption;
import org.eclipse.birt.report.engine.api.ReportEngine;

public class MainPdf {

    public static void main(String[] args){
        try {
            EngineConfig config = new EngineConfig();

            Platform.startup(config);

            ReportEngine engine = new ReportEngine(config);
            String reportDesign = "new_report.rptdesign";
            IReportRunnable reportRunnable = engine.openReportDesign(reportDesign);
            IRunAndRenderTask runAndRender = engine.createRunAndRenderTask(reportRunnable);

            PDFRenderOption option = new PDFRenderOption();
            option.setOutputFileName("output/resample/mypdf.pdf");
            option.setOutputFormat("pdf");
            runAndRender.setRenderOption(option);
            runAndRender.run();
            runAndRender.close();
            engine.destroy();
            Platform.shutdown();
        } catch (EngineException e) {
            e.printStackTrace();
        } catch (BirtException e) {
            e.printStackTrace();
        }
    }

} 

我正在使用 org.eclipse.birt.runtime 的 4.2.0 以下版本 生成的pdf截图

【问题讨论】:

    标签: java pdf reporting-services birt


    【解决方案1】:
    I got it done through itext library . Here is the added code
    
    PdfReader reader = new PdfReader("output/resample/temp.pdf");
                PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("output/resample/mypdf.pdf"));
                stamper.setEncryption(USER_PASS.getBytes(), OWNER_PASS.getBytes(),
                        PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);
                stamper.close();
                reader.close();
                System.out.println("Done");
    

    temp.pdf 是使用 BIRT 生成的。 使用的资源是here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 2010-09-27
      相关资源
      最近更新 更多