pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Karnerfors" <michael.karnerf...@digitalcontext.se>
Subject RE: Getting PDFImageWriter to honor disabled Optional Content Groups
Date Thu, 20 Sep 2012 14:42:54 GMT

Hi Jeremias,

Ok, understood. Do you have any sense of how much work that might be? 

With best regards,
/Michael



-----Original Message-----
From: Jeremias Maerki [mailto:dev@jeremias-maerki.ch] 
Sent: den 20 september 2012 16:15
To: users@pdfbox.apache.org
Subject: Re: Getting PDFImageWriter to honor disabled Optional Content
Groups

Hi Michael,
I'm afraid support for optional content groups has not reached the stage
that they are checked when painting pages. You'll have to dive in and add
filtering for disabled OCGs.

As a starting point, see org.apache.pdfbox.pdfviewer.PageDrawer's
constructor which points you to the properties file that defines the
Operator implementations for PageDrawer. There, implementations for
BMC/BDC/EMC are missing. These will have to be implemented in a way that
painting operators are suppressed for a disabled OCG.

Jeremias Maerki


On 20.09.2012 14:43:41 Michael Karnerfors wrote:
>  
> 
> Hello all,
> 
>  
> 
> I want to use PDFBox to load a PDF file, disable an Optional Content 
> Group, and then use PDFImageWriter  to output the resulting document 
> to an image file.
> 
>  
> 
> The problem is that the image writer does not seem to honor the fact I 
> disabled the OCG and still outputs the layer.
> 
>  
> 
> When I write the document as a new PDF file, Adobe Acrobat honors the 
> fact I turned the OCG off.
> 
>  
> 
> Does anyone know how you can make PDFImageWriter honor the disabled OCG?
> 
>  
> 
> With best regards
> 
> /Michael
> 
>  
> 
> Code Sample: 
> 
>  
> 
> String password = "";
> 
> String pdfFile = "input_file.pdf";
> 
> String outputPrefix = "output_file";
> 
> String imageFormat = "png";
> 
> int startPage = 1;
> 
> int endPage = Integer.MAX_VALUE;
> 
> String color = "rgba";
> 
> int resolution = 300;
> 
>  
> 
> PDDocument document = null;
> 
>  
> 
> try {
> 
> document = PDDocument.load(pdfFile);
> 
>  
> 
> PDDocumentCatalog catalog = document.getDocumentCatalog();
> 
> PDOptionalContentProperties ocgs = catalog.getOCProperties();
> 
>                 
> 
>            for(String groupName : ocgs.getGroupNames()) {
> 
>            if(groupName.startsWith("SmartMarks")) {
> 
>                                  ocgs.setGroupEnabled(groupName, 
> false);
> 
> }
> 
> }
> 
>  
> 
>            PDFImageWriter imageWriter = new PDFImageWriter();
> 
> imageWriter.writeImage(document, imageFormat, password, startPage, 
> endPage, outputPrefix, imageType, resolution);
> 
>  
> 
> } catch (Exception e) {
> 
> System.err.println(e);
> 
> } finally {
> 
> if (document != null) { document.close(); }
> 
> }
> 


Mime
View raw message