FYI and in case this is a suitable workaround, when I
use org.apache.pdfbox.rendering.PDFRenderer to convert this page to a
java.awt.image.BufferedImage then use javax.imageio.ImageIO.write() to
write the BufferedImage to a PNG, the result shows the green lines.

On Fri, Jan 6, 2023 at 11:41 AM Tilman Hausherr <thaush...@t-online.de>
wrote:

> Hi,
>
> I can confirm the effect with my own conversion code (which may or may
> not be the same). I looked at the SVG and there's one thing missing:
> PDFBox converts patterns to bitmaps and then uses TexturePaint. So there
> should be some binary content in the SVG but there isn't. Could it be
> that there is some option that should be set?
>
> Btw the PDF has some errors, like 0 255 0 sc  (or rg), this should be 0
> 1 0 sc (or rg). But this isn't the cause.
>
> Tilman
>
> On 06.01.2023 14:51, Rich Stafford wrote:
> > Tilman:
> >
> > Thanks for your quick response.  I've upgraded to PDFBox 2.0.27, with
> > the same results.
> >
> > The PDF file can be downloaded here:
> >
> > https://s3.amazonaws.com/webdl.equorum.com/misc/size2013.pdf
> >
> > <https://s3.amazonaws.com/webdl.equorum.com/misc/size2013.pdf>Thanks
> > for any assistance.  I'm going to start tracing thru Batik source code
> > for the SVG error.
> >
> > Rich Stafford
> > Chief Scientist
> > eQuorum Corporation
> > ***
> > At 01:28 PM 1/5/2023, Tilman Hausherr wrote:
> >> Hi,
> >>
> >> Please try with 2.0.27 and upload the PDF somewhere, it didn't get
> >> through.
> >>
> >> Tilman
> >>
> >> On 05.01.2023 16:28, Rich Stafford wrote:
> >>> I am having an issue using PDFBox (pdfbox-app-2.0.21.jar) and
> >>> SVGGraphics2d (batik-1ll-1.16.jar) to generate SVG output from a
> >>> small PDF file.
> >>>
> >>> This file has about 9 vector lines, and a rectangle filled with
> >>> horizontal lines.  Using the PDFBox PDFRenderer to JPG, I get the
> >>> appropriate fill for the rectangle:
> >>>
> >>> screen capture:
> >>> Emacs!
> >>>
> >>> However, using the PDFBox PDFRenderer with SVGGraphics2d, I get a
> >>> black filled rectangle.
> >>>
> >>> screen capture:
> >>> Emacs!
> >>>
> >>> The generator code fragment is as follows:
> >>>
> >>> // setup instance of org.w3c.dom.Document
> >>> DOMImplementation oDom=
> >>> GenericDOMImplementation./getDOMImplementation/();
> >>> String sSvgOrg= " http://www.w3.org/2000/svg";;
> >>> Document oSvgDoc= oDom.createDocument(sSvgOrg, "svg", *null*);
> >>> SVGGeneratorContext oCtx= SVGGeneratorContext./createDefault/(oSvgDoc);
> >>> oCtx.setEmbeddedFontsOn(*true* );
> >>>
> >>> // setup renderer object
> >>> PDFRenderer oRender= *new* PDFRenderer( oDoc);
> >>>
> >>> // loop for all pages in the PDF
> >>> *for* ( *int* nPageNdx= 0; nPageNdx< oDoc.getNumberOfPages();
> >>> nPageNdx++ )
> >>> {
> >>> // setup output file
> >>> *if* ( sOutputMode.equalsIgnoreCase("svg") )
> >>> {// svg
> >>> String sSvgPageSpec= GenericUtil./PathMake/(sDestPath, "page-"+
> >>> nPageNdx+".svg");
> >>> ( *new* File( sSvgPageSpec)).createNewFile();
> >>> // setup instance of SVG Generator
> >>> SVGGraphics2D oSvgGen= *new* SVGGraphics2D( oCtx, *false*);
> >>> // render the page to SVG
> >>> oRender .renderPageToGraphics( nPageNdx, oSvgGen);
> >>> // write to file
> >>> OutputStream oOutStream= *new* FileOutputStream( *new*
> >>> File(sSvgPageSpec) );
> >>> Writer oOutWriter= *new* OutputStreamWriter( oOutStream, "UTF-8");
> >>> oSvgGen .stream( oOutWriter, *true*);
> >>> *continue* ;
> >>> }
> >>> *if* ( sOutputMode.equalsIgnoreCase("jpg") )
> >>> {// jpg output
> >>> String sJpgPageSpec= GenericUtil./PathMake/(sDestPath, "page-"+
> >>> nPageNdx+".jpg");
> >>> File oFileJpg= *new* File(sJpgPageSpec);
> >>> BufferedImage image= oRender.renderImageWithDPI(nPageNdx,
> >>> GenericUtil./parseInt/(sDpi, 300));
> >>> Â Â Â Â ImageIO./write/(image, "JPEG", oFileJpg);
> >>> continue;
> >>> }
> >>> }
> >>>
> >>> I've attached the input PDF file as well.
> >>>
> >>> Thoughts?
> >>>
> >>> Rich Stafford
> >>> Chief Scientist
> >>> eQuorum Corporation
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail:
> >>> users-unsubscr...@pdfbox.apache.org
> >>> For additional commands, e-mail:
> >>> users-h...@pdfbox.apache.org
> >>
> >>
> >>
>


-- 
"Hell hath no limits, nor is circumscrib'd In one self-place; but where we
are is hell, And where hell is, there must we ever be" --Christopher
Marlowe, *Doctor Faustus* (v. 111-13)

Reply via email to