Skip to main content
dánielk63456349
Participant
March 21, 2021
Question

Off-spec PDF support

  • March 21, 2021
  • 3 replies
  • 684 views

Is there a way to know what workarounds are implemented in Adobe Acrobat to open and then correctly save some PDF siles that do not adhere to the ISO 32000-1:2008 standard? Does the Acrobat SDK also have these workarounds? Also, why was this method (to support off-spec files) chosen by Adobe?

This topic has been closed for replies.

3 replies

Dov Isaacs
Legend
March 24, 2021

No, Adobe does not make such information public. If we did, it would only further encourage such bad behaviour on the part of those creating PDF files.

 

Many problems, but not all, can in fact be found via the Acrobat Pro Preflight functions.

 

- Dov Isaacs, former Adobe Principal Scientist (April 30, 1990 - May 30, 2021)
Legend
March 21, 2021

No, there is no way to know. You should start by considering carefully that Acrobat it NOT a validator, that is an entirely different task. It job is to accept valid files. Its job is NOT to reject bad files, though it will sometimes do so. Behaviour with non-conforming files is not defined by the standard.

 

In general, there will be two particular reasons why a specific non-conforming file may be accepted and produce some undefined result which matches some people's expectations:

- by accident; perhaps it does not check and the bad file happens to deliver what is looked for

- by design, perhaps to accomodate specific errors found to be made by PDF producers, including Adobe and third parties. These might be the results of bug reports, feature requests, internal QA decisions, or random decisions made without any discussion by a lone programmer.

I remember one case where Adobe reimplemented part of Acrobat, and had different checks. They rejected a large number of non-conforming files which were in common use, and from consideration for their customers Adobe modified to the code to specifically allow these non-conforming files to work as well as before. (From memory, the feature was allowing leading space in place of leading zero in some xref entries).

dánielk63456349
Participant
March 24, 2021

Yes, I also remember that. That's when some of our clients receiving off-spec PDFs from all over the world decided to start using a validator. But that doesn't solve the problem that while Adobe products are not validators, they are considered by many to be (de facto validators)... see in my reply above.

try67
Community Expert
Community Expert
March 21, 2021

- I don't believe Adobe makes that information public.

- When you open a file using the SDK the same process happens if you open it manually.

- If they didn't implement something like that a large percentage of PDF files could not be opened at all, since many PDF generators do not adhere to the ISO standard 100%, so concessions have to be made.

dánielk63456349
Participant
March 24, 2021

That is exactly my problem. If there's a standard and documents do not adhere to it then those should be rejected. That is what any sane developer would do. Adobe - I wouldn't want to make guesses why - implemented a lot of workarounds. The big issue is that While Adobe products are not validators, they are considered by many to be (de facto validators). If Adobe Reader can open a PDF then 3rd party applications are also expected to. Having to explain a customer/user why a standard-conforming library fails to interpret a PDF file while Adobe Reader can is really a pain in the butt. Why is there a standard then? Or at least there would be an option in Adobe Reader or Acrobat to turn off workarounds. Then we'd be spending way less time explaining.