Advertisement
SVXX

PDF to SVG Experiment

Feb 12th, 2014
445
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.66 KB | None | 0 0
  1.     static void generateSVG(File pdfFile, String svgDir) throws IOException, PrinterException
  2.     {
  3.         PDDocument document = PDDocument.load( pdfFile );
  4.         DOMImplementation domImpl =
  5.             GenericDOMImplementation.getDOMImplementation();
  6.  
  7.         // Create an instance of org.w3c.dom.Document.
  8.         String svgNS = "http://www.w3.org/2000/svg";
  9.         Document svgDocument = domImpl.createDocument(svgNS, "svg", null);
  10.         SVGGeneratorContext ctx = SVGGeneratorContext.createDefault(svgDocument);
  11.         ctx.setEmbeddedFontsOn(true);
  12.  
  13.         // Ask the test to render into the SVG Graphics2D implementation.
  14.  
  15.             for(int i = 0 ; i < document.getNumberOfPages() ; i++){
  16.                 String svgFName = svgDir+"page"+i+".svg";
  17.                 (new File(svgFName)).createNewFile();
  18.                 // Create an instance of the SVG Generator.
  19.                 SVGGraphics2D svgGenerator = new SVGGraphics2D(ctx,false);
  20.                 Printable page  = document.getPrintable(i);
  21.                 page.print(svgGenerator, document.getPageFormat(i), i);
  22.                 svgGenerator.stream(svgFName);
  23.             }
  24.     }
  25.  
  26. //Example Exception
  27. Feb 12, 2014 6:29:36 PM org.apache.pdfbox.util.operator.pagedrawer.Invoke process
  28. INFO: imageWidth: 205       imageHeight: 205
  29. java.lang.NullPointerException
  30.     at org.apache.batik.svggen.ImageHandlerBase64Encoder.encodeImage(ImageHandlerBase64Encoder.java:157)
  31.     at org.apache.batik.svggen.ImageHandlerBase64Encoder.handleHREF(ImageHandlerBase64Encoder.java:133)
  32.     at org.apache.batik.svggen.ImageHandlerBase64Encoder.handleHREF(ImageHandlerBase64Encoder.java:72)
  33.     at org.apache.batik.svggen.DefaultImageHandler.handleImage(DefaultImageHandler.java:63)
  34.     at org.apache.batik.svggen.SimpleImageHandler.handleImage(SimpleImageHandler.java:100)
  35.     at org.apache.batik.svggen.SVGGraphics2D.drawImage(SVGGraphics2D.java:677)
  36.     at org.apache.batik.svggen.SVGGraphics2D.drawImage(SVGGraphics2D.java:868)
  37.     at org.apache.pdfbox.util.operator.pagedrawer.Invoke.process(Invoke.java:113)
  38.     at org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:516)
  39.     at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:229)
  40.     at org.apache.pdfbox.util.operator.pagedrawer.Invoke.process(Invoke.java:131)
  41.     at org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:516)
  42.     at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:229)
  43.     at org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:188)
  44.     at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:99)
  45.     at org.apache.pdfbox.pdmodel.PDPage.print(PDPage.java:795)
  46.     at pdftosvgtohtml.PDF2SVGBatik.generateSVG(PDF2SVGBatik.java:49)
  47.     at pdftosvgtohtml.PDF2SVGBatik.main(PDF2SVGBatik.java:21)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement