Печать диаграмм GMF с использованием PDFCreator не может открыть сгенерированный PDF

Я реализовал прямую печать в файлы некоторых диаграмм 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, потому что это либо неподдерживаемый тип файла, либо файл поврежден"

Пробовал также поставить сон, чтобы убедиться, что печать завершена, прежде чем утилизировать принтер. В итоге такая же ошибка.

Любая подсказка полезна.


person Daniel Tololoi    schedule 22.04.2013    source источник


Ответы (1)


Выяснилось, что сгенерированный файл был вовсе не pdf, а файлом prn, промежуточными файлами, которые принтер сохраняет перед преобразованием в окончательный вывод. После создания файлов prn требуется конвертация в нужный формат, в моем случае в pdf.

Надеюсь, это тоже кому-то поможет. Ваше здоровье.

person Daniel Tololoi    schedule 23.04.2013