I had to do some refactoring because your code expects a directory. Anyway, after that, here's what I got:

Exception in thread "main" java.lang.NullPointerException
    at org.apache.batik.svggen.ImageHandlerBase64Encoder.encodeImage(ImageHandlerBase64Encoder.java:157)     at org.apache.batik.svggen.ImageHandlerBase64Encoder.handleHREF(ImageHandlerBase64Encoder.java:133)     at org.apache.batik.svggen.ImageHandlerBase64Encoder.handleHREF(ImageHandlerBase64Encoder.java:72)     at org.apache.batik.svggen.DefaultImageHandler.handleImage(DefaultImageHandler.java:63)     at org.apache.batik.svggen.SimpleImageHandler.handleImage(SimpleImageHandler.java:100)     at org.apache.batik.svggen.SVGGraphics2D.drawImage(SVGGraphics2D.java:676)
    at org.apache.pdfbox.printing.PDFPrintable.print(PDFPrintable.java:264)
    at com.mycompany.svgtest.Pdf2Svg.convertPdfToSvgFile(Pdf2Svg.java:140)
    at com.mycompany.svgtest.Pdf2Svg.doFile(Pdf2Svg.java:69)
    at com.mycompany.svgtest.Pdf2Svg.main(Pdf2Svg.java:34)

After I changed the IMAGE_DPI parameter to 0 I got an SVG file. But your PDF isn't related to the two images you posted, it is a different one.

pom.xml segment:

        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>fop</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox-app</artifactId>
            <version>2.0.21</version>
        </dependency>

after reading
https://stackoverflow.com/questions/16138850/
I added

<dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-codec</artifactId>
            <version>1.13</version>
        </dependency>

now it worked with 150. Yes it has an ugly line. I tried increasing the dpi. With 600 dpi, the line vanished. Of course, the best is to use 0, then you get vector graphics with is the point when you're using SVG.

I tried an ordinary print to a PDF with 150 dpi and did not get the effect. Thus I suspect it is not related to PDF. It's probably a problem by converting images to SVG.

But all this is moot if you use "0" as dpi.

Tilman


Am 17.09.2020 um 07:56 schrieb 槻木正臣:
To Whom It May Concern

I uploaded the file, so please check
https://1drv.ms/u/s!ApGmuqgZtcofg2JhrnG195vQSpFc?e=qtmDXV

・Pdf2Svg.java
source file

・Sample01.pdf
PDF file

・Sample01_1.svg
Converted SVG file

I look forward to hearing from you.
━━━━━━━━━━━━━━━━━━━━━━━
応用技術株式会社
槻木 正臣(Tsukigi Masaomi)
〒530-0015
大阪市北区中崎西2丁目4番12号 梅田センタービル 10階
Tel:(06)6373-6101 Fax:(06)6373-6100
E-mail : ma-tsuk...@apptec.co.jp
━━━━━━━━━━━━━━━━━━━━━━━

Hello,

The source PDF file is missing. And the variable "page" is not declared
(is it 0 ?). Please try with Batik 1.13, that is the current version.
dpi 150 means that the page is "printed" as an image. If you're using
SVG, it would make more sense to use 0 so that vector graphics are used.
And PDFBox is now at 2.0.21.

Tilman

Am 07.09.2020 um 02:42 schrieb 槻木正臣:
To Whom It May Concern

I uploaded the file, so please check
https://1drv.ms/u/s!ApGmuqgZtcofg2JhrnG195vQSpFc?e=qtmDXV

I look forward to hearing from you.
━━━━━━━━━━━━━━━━━━━━━━━
応用技術株式会社
槻木 正臣(Tsukigi Masaomi)
〒530-0015
大阪市北区中崎西2丁目4番12号 梅田センタービル 10階
Tel:(06)6373-6101 Fax:(06)6373-6100
E-mail : ma-tsuk...@apptec.co.jp
━━━━━━━━━━━━━━━━━━━━━━━
Hi,

Attachments don't come through. Please upload them to a sharehoster.

Tilman

Am 30.07.2020 um 07:28 schrieb 槻木正臣:
To Whom It May Concern

I am using apache batik 1.9 and apache pdfbox 2.0.20 to convert PDF to
SVG.

When I set 150 in PDFPageable, unnecessary lines are displayed.
Is there a way around it?

PDF file
pdf.png

SVG file
svg.png

Source code
-----
PDDocument pddocument = null;
Writer out = null;
try {
      pddocument = PDDocument.load(new File(loadfile));
      PDFPageable document = new PDFPageable(pddocument,
Orientation.AUTO, false, 150);

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

      SVGGraphics2D svgGenerator = new SVGGraphics2D(ctx, false);
      Printable printTbl = document.getPrintable(page);
      printTbl.print(svgGenerator, document.getPageFormat(page), page);

      out = new OutputStreamWriter(new FileOutputStream(new
File(savefile)), "UTF-8");
      svgGenerator.stream(out);
      svgGenerator.dispose();

} finally {
      if (out != null){
          out.close();
      }
      if(pddocument != null){
          pddocument.close();
      }
}
-----

I look forward to hearing from you.
━━━━━━━━━━━━━━━━━━━━━━━
応用技術株式会社
槻木 正臣(Tsukigi Masaomi)
〒530-0015
大阪市北区中崎西2丁目4番12号 梅田センタービル 10階
Tel:(06)6373-6101 Fax:(06)6373-6100
E-mail : ma-tsuk...@apptec.co.jp <mailto:ma-tsuk...@apptec.co.jp>
━━━━━━━━━━━━━━━━━━━━━━━


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org

Reply via email to