使用PDFCreator打印GMF图表无法打开生成的pdf

时间:2013-04-22 10:03:50

标签: eclipse-gmf

我已经实现了对某些GMF图表文件的直接打印。打开图表,打印到文件,然后关闭图表。我面临的问题是有以下几点:

private static void printDiagrams(IEditorPart editorPart,org.eclipse.gmf.runtime.diagram.ui.printing.internal.util.SWTDiagramPrinter 
            diagramPrinter,String diagName) {

    PrinterData printData = new PrinterData("winspool","PDFCreator");
    if(printData!=null)
    {
        printData.printToFile = true;
        printData.fileName = "D:\\"+diagName+".pdf";
        printData.scope= 0;


        final Printer printer = new Printer(printData);

        diagramPrinter.setPrinter(printer);
        diagramPrinter.setDisplayDPI(Display.getDefault().getDPI());
        diagramPrinter.setFitToPage(true);


        DiagramEditPart dgrmEP = ((DiagramEditor) editorPart).getDiagramEditPart();


        assert dgrmEP != null;

        diagramPrinter.setDiagrams(Collections.singletonList(((DiagramEditor) editorPart).getDiagram()));
        diagramPrinter.run();
        printer.dispose();
}

问题是,使用上面的代码我在打开pdf文件时收到错误。 “Acrobat Reader无法打开... .pdf,因为它不支持文件类型或因为文件已损坏”

在处理打印机之前,还试图打扫睡眠以确保打印完成。发生了同样的错误。

任何提示都有帮助。

1 个答案:

答案 0 :(得分:0)

想出生成的文件根本不是pdf,而是打印机在转换为最终输出之前存储的prn文件,中间文件。在创建prn文件之后,需要转换为所需的格式,在我的情况下是pdf。

希望这对某些人也有帮助。 欢呼声。