[ 
https://issues.apache.org/jira/browse/PDFBOX-5522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17612144#comment-17612144
 ] 

Stefan Ziegler commented on PDFBOX-5522:
----------------------------------------

We process a lot of PDF files created by external programs. There are several 
reasons for using an own COSWriter, e.g. for the following:

1) PDF files are not always completely correct and every now and then we have 
to intervene to correct them. We can not change the external application.

2) Another point is a recompression of COSStreams. We often also process PDFs 
that are not or not optimally compressed. We can then reprocess all streams, 
determine the best compression and rewrite them.

3) A third point are extractions, e.g. we can extract all images, including 
some hidden one that we can't access through the pages objects.

For all these things a custom COSWriter makes sense here. We also tried to use 
COSDOcument#getObjectsByType( COSName type ) to retrieve a list of all objects 
of a specific type, but this is not possible because when you load a PDF, 
objects are not in the objectPool at this time and the returned list is empty.

> Add public void save(COSWriter writer) to PDDocument
> ----------------------------------------------------
>
>                 Key: PDFBOX-5522
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-5522
>             Project: PDFBox
>          Issue Type: New Feature
>          Components: PDModel
>    Affects Versions: 2.0.28, 3.0.0 PDFBox
>            Reporter: Stefan Ziegler
>            Priority: Minor
>         Attachments: PDDocument.java.patch
>
>
> Please add the following method to PDDocument:
>  
> {code:java}
> public void save(COSWriter writer){code}
>  
> Why?
> This gives us the possibility to use a custom COSWriter when saving the PDF 
> file. Inside the custom COSWriter we can add some checks and convert some 
> data structures if required.
>  
> Patch is attached.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to