ICC Profiles in PDF/X-1a:2003 Files

Started by Hangman, July 06, 2023, 03:21:54 AM

Previous topic - Next topic

Hangman

Hi Phil,

Back in September 2019 you kindly added the ability to extract ICC Profile data from PDF files...

https://exiftool.org/forum/index.php?topic=10467.0

There appears to be some debate over whether or not PDF/X-1a:2003 files can contain embedded profiles or whether they can only contain an Output Intent.

When I take a look at some basic PDF/X-1a:2003 files using:

exiftool -icc_profile -b -w icc filename.pdf

I receive the message '0 Ouput Files Created' which to me suggests there is no ICC Profile embedded in the file. Examining the files using

exiftool -v filename.pdf

Reveals and OutputIntents directory with five entries:

0) Type = /OutputIntent
1) S = /GTS_PDFX
2) OutputConditionIdentifier = (filename.icc)
3) Info - (filename.icc)
4) DestOutputProfile (SubDirectory) -->

I don't see any reference to an embedded ICC Profile.

The reason for the debate is that there can be a significant difference in the file size of very basic PDF/X-1a:2003 files with some arguing that the difference 'must' mean the ICC Profile is embedded.

I'm trying to find out the following:

  • Whether ExifTool is able to access 'all' the metadata in PDF/X files or whether that particular PDF standard could result in hidden or inaccessible metadata.
  • Whether in regards to the information above, this definitively suggests there is no embedded ICC Profile in the PDF/X-1a:2003 files but only Output Intents.
  • What could explain the difference in file size for extremely basic PDF/X files, e.g., generic_cmyk_profile.pdf is 51KB but pso_coated_v3.pdf is 1.8 MB despite the two files being identical in terms of content?

I've attached three PDF/X-1a:2003 files for reference and would be extremely grateful for any thoughts and feedback you can provide regarding the above questions.

Many thanks



Phil Harvey

I don't see any ICC profile in these files:

> exiftool ~/Desktop/ -ext pdf -v3 | grep -iE 'icc|==='
======== /Users/phil/Desktop/pso_coated_v3.pdf
======== /Users/phil/Desktop/generic_cmyk_profile.pdf
======== /Users/phil/Desktop/CMYKcolorshift_X-1a.pdf
  | | 2)  OutputConditionIdentifier = ([colorshift] Bisque - Mint - Pine - Scarlet_CMYK.icc)
  | | 3)  Info = ([colorshift] Bisque - Mint - Pine - Scarlet_CMYK.icc)

For comparison, here is a the output of this command for a file that does contain a profile:

======== /Users/phil/Desktop/FlashTest02.pdf
  | | | | | | 0)  ICCBased (SubDirectory) -->
  | | | | | |     - Tag 'ICCBased', indirect object (22 0 R)
  | | | | | | + [ICCBased directory with 4 entries]
  | | | | | | | ICCBased stream data
  | | | | | | | + [ICC_Profile directory with 5 entries, 1296 bytes]

- Phil

...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

blue-j

It's not until PDF/X-3:2002 that ICC profiles are permitted for the document itself I believe. In X-1a I believe the output space is reported simply by a string name.

https://en.wikipedia.org/wiki/PDF/X?wprov=sfti1

- J