конвертировать pdf в svg

Я хочу преобразовать PDF в SVG, пожалуйста, предложите несколько библиотек / исполняемых файлов, которые смогут сделать это эффективно. Я написал свою собственную java-программу, используя библиотеки apache PDFBox и Batik -

PDDocument document = PDDocument.load( pdfFile );
DOMImplementation domImpl =
    GenericDOMImplementation.getDOMImplementation();

// Create an instance of org.w3c.dom.Document.
String svgNS = "http://www.w3.org/2000/svg";
Document svgDocument = domImpl.createDocument(svgNS, "svg", null);
SVGGeneratorContext ctx = SVGGeneratorContext.createDefault(svgDocument);
ctx.setEmbeddedFontsOn(true);

// Ask the test to render into the SVG Graphics2D implementation.

    for(int i = 0 ; i < document.getNumberOfPages() ; i++){
        String svgFName = svgDir+"page"+i+".svg";
        (new File(svgFName)).createNewFile();
        // Create an instance of the SVG Generator.
        SVGGraphics2D svgGenerator = new SVGGraphics2D(ctx,false);
        Printable page  = document.getPrintable(i);
        page.print(svgGenerator, document.getPageFormat(i), i);
        svgGenerator.stream(svgFName);
    }

Это решение отлично работает, но размер получаемых файлов svg огромен (во много раз больше, чем pdf). Я выяснил, в чем проблема, посмотрев на svg в текстовом редакторе. он заключает каждый символ в исходном документе в отдельный блок, даже если свойства шрифта символов одинаковы. Например, слово "привет" появится в виде 6 различных текстовых блоков. Есть ли способ исправить указанный выше код? или предложите другое решение, которое будет работать более эффективно.

49
задан user434541 7 November 2010 в 14:55
поделиться