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)