> Am 10.11.2015 um 22:16 schrieb John Hewson <j...@jahewson.com>:
> 
> 
>> On 10 Nov 2015, at 12:10, Maruan Sahyoun <sahy...@fileaffairs.de> wrote:
>> 
>>> 
>>> Am 10.11.2015 um 19:19 schrieb John Hewson <j...@jahewson.com>:
>>> 
>>> Correction: That’s how *PDFBox* is designed.
>>> 
>>>> On 10 Nov 2015, at 10:15, John Hewson <j...@jahewson.com> wrote:
>>>> 
>>>>> 
>>>>> On 10 Nov 2015, at 03:30, Maruan Sahyoun <sahy...@fileaffairs.de> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> as discussed on 
>>>>> http://stackoverflow.com/questions/33383389/pdfbox-how-can-a-pdacroform-be-flattened/33489651#33489651
>>>>>  now we have a flatten() method there is also the need to (re-) generate 
>>>>> the appearances on demand. The same applies if we'd like to flatten 
>>>>> annotations. With the current package and class structure that would go 
>>>>> into PDAcroForm for interactive forms. 
>>>>> 
>>>>> What I'm proposing is - instead of adding to the PD model - have user 
>>>>> case oriented functionality in a new package (services or so) so we have 
>>>>> COS (abstraction of low level PDF elements), PD (abstraction of COS for 
>>>>> PDF elements) and services (application of PD model to 'do' something 
>>>>> with the PDF). As we add higher level functionality this would help us 
>>>>> keeping the PD model clean.
>>>> 
>>>> You’re under-selling PD here. PD *is* a high-level abstraction, it’s not 
>>>> just a wrapper around COS, look at PDFont for example. PDDocument lets you 
>>>> ‘do’ something with a document, PDPage lets you ‘do’ something with a 
>>>> Page, and PDAcroForm lets you ‘do’ something with an acro form. That’s 
>>>> what PD is all about.
>>>> 
>>>> The only caveat is that PD is tied to a single document, so we recently 
>>>> introduced the “multipdf” package. But any functionality which manipulates 
>>>> a single PDF should be in PD. That’s how PDF is designed.
>> 
>> that's how it's currently designed which may or may not be the case moving 
>> forward. And we have a number of tools which work on a single document but 
>> are not part of PD such as ExtractImages, ExtractText or PDFSplit.
> 
> ExtractText and ExtractText are command lines tools, so of course they’re in 
> the tools jar - but the logic which powers them is in PD. Same for PDFSplit, 
> for the most part, though that one’s a bit messy. If you’re proposing to add 
> a new command line tool, then follow this pattern, with a wrapper in ‘tools’ 
> and the logic in PD.
> 
>> Some of them are base on individual packages such as o.a.p.text. So we do 
>> already have cases where functionality is not part of PD (e.g. we could have 
>> had PDDocument.extractText(), PDDocument.split()).
> 
> Again, text extraction logic is in PD, it’s just a wrapper which is 
> elsewhere. Split is arguably a mess and not something we want to re-create.
> 
>> As an example we can have PDDocument.flatten() to flatten AcroForms and 
>> Annotations - would be in line with your thoughts and how PDFBox is 
>> currently (mainly) designed. And of course we can add 
>> PDDocument.refreshAppearances() … - my proposal is to not add that there but 
>> keep that in a separate class in a separate package. 
> 
> Actually I was thinking PDAcroForm.flatten().

I've already added that - but that also prompted me to think about not keeping 
to add new functionality there.

> 
>> With the package name being used for more such (future) additions  e.g. 
>> o.a.p.services.appearance, o.a.p.services.signature …
> 
> We’ve had this exact discussion in the past. Packages *are not services*. 
> APIs *are not services*. Services are daemons, web servers, etc.. APIs do not 
> expose services.

I'm open to different names

> 
> — John
> 
>> BR
>> Maruan
>> 
>>>> 
>>>> — John
>>>> 
>>>>> A similar approach could also be taken e.g. for signing a PDF ...
>>>>> 
>>>>> WDYT?
>>>>> 
>>>>> Maruan
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org 
>>>>> <mailto:dev-unsubscr...@pdfbox.apache.org> 
>>>>> <mailto:dev-unsubscr...@pdfbox.apache.org 
>>>>> <mailto:dev-unsubscr...@pdfbox.apache.org>>
>>>>> For additional commands, e-mail: dev-h...@pdfbox.apache.org 
>>>>> <mailto:dev-h...@pdfbox.apache.org> <mailto:dev-h...@pdfbox.apache.org 
>>>>> <mailto:dev-h...@pdfbox.apache.org>>
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org 
>> <mailto:dev-unsubscr...@pdfbox.apache.org>
>> For additional commands, e-mail: dev-h...@pdfbox.apache.org 
>> <mailto:dev-h...@pdfbox.apache.org>


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

Reply via email to