[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fop-dev
Subject:    Re: PDF full screen mode...
From:       Andreas Delmelle <andreas.delmelle () telenet ! be>
Date:       2008-07-19 10:48:53
Message-ID: 57438D94-BB07-4827-AE78-788721B2B5F8 () telenet ! be
[Download RAW message or body]

On Jul 18, 2008, at 19:24, Bill Harrelson wrote:

Hi Bill

> Thanks.  Guess I just have to wait, and tell the users they have to  
> check print scaling when they print.
>
> I tried patching a pdf file by hand to include the directive, and,  
> as you predicted, got file corrupted errors (although that could be  
> for a variety of reasons, so it's not conclusive.)

In theory PDF is editable by hand, but remember that it's still a  
binary format, so it's /very/ sensitive to things like editors adding  
linefeeds or screwing up the raw bytes due to implicit byte-to-char  
conversion... You'd actually almost need a Hex editor to get it  
completely right.

Anyway, I ran a test out of curiosity. It doesn't crash or give  
corruption warnings on my end (Adobe Reader 8 for Mac), and checking  
the document properties, the entry even seems to be correctly  
recognized (meaning Reader does not rely on the PDF file version to  
process the ViewerPreferences). Also, adding totally nonsensical  
entries, which would generate PDF like '/Foo /Bar' (strictly speaking  
not incorrect, just meaningless) did not have any damaging effects.

In the end, if it works, it works, I guess, so I'm not so sure  
whether it's worth investing time into making things like that  
impossible, BUT... if the user would specify something like  
'<pdf:name key="Foo">[[Bar</pdf:name>', the file does get corrupted,  
since the content is not a valid PDF name. Some degree of validation  
is necessary to prevent this stuff from happening. The square  
brackets should either be escaped (to '#5B'), or made illegal (i.e.  
if necessary, the user should do the escapes himself). Maybe it would  
make sense to have PDFName itself not allow invalid names to be  
created. At any rate, additional logic for PDF parsing capabilities  
seems to belong in the fop.pdf package, rather than on the side of  
the extension.

Ultimately, it's also meant to reduce maintenance on our end. If the  
PDF Reference evolves and allows new features, the extension should  
make those available to the users with us having to add only a  
minimal amount of code. None in case of the PrintScaling entry, since  
there is already generic support for PDF names. Nice example of the  
potential benefits, as opposed to the dangers described above.

I'm currently still planning to look into making a few modifications  
to the format, and building in some safeguards (basic validation, if  
you will). If you want to stay informed, add yourself to the CC-list  
in Bugzilla #45390, and you'll be among the first to receive updates  
on the status of the patch.



Cheers

Andreas
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic