PDF格式分析(七)如何判断PDF/X

PDF/X标准是由国际标准化组织(ISO)定义的。应用于图形内容交换;在印刷出版工作流程中广泛使用的标准有以下几种PDF/X格式:PDF/X-1a、PDF/X-3和PDF/X-4(2008)。PDF/X的目的在于为设计员、绘图员、工程师和图像艺术家提供一种可为任何服务提供者正确打印的电子文件格式。PDF/X使保持完全一致性成为可能,即使文件被人们在多处位置,用不同的机器处理,也一样。

PDF/X标准判断如下:

pdf_version:PDF版本号
format_name:GTS_PDFXConformance
xmp_file:XMP
gts_flag:OutputIntent字典中的子类型“/S”
gray_scale:灰度
cmyk_colors:CMYK
spot_colors:spot
rgb_colors:rgb
calibrated_rgb_colors:calrgb
cielab_colors:lab
internal_icc_profiles:内嵌icc profile
inject_metadata:metadata
jbig2_compression:jbig2压缩
include_intents:intents对象
optional_content:OptionalContent
transparency:透明度
jpeg2000_compression:jpeg2000压缩
object_compression:object stream对象压缩
open_prepress_interface:OPI
nchannel_colorspace:NChannel颜色空间

注:“true”表示支持的内容,没有列出的内容,则表示不符合相关标准。

详细:
pdf/x-1a:2001

    ["pdf/x-1a:2001"] = {
        pdf_version             = 1.3,
        format_name             = "PDF/X-1a:2001",
        xmp_file                = "lpdf-pdx.xml",
        gts_flag                = "GTS_PDFX",
        gray_scale              = true,
        cmyk_colors             = true,
        spot_colors             = true,
        internal_icc_profiles   = true,
        inject_metadata         = function()
            addtoinfo("GTS_PDFXVersion","PDF/X-1a:2001")
            injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfxid='http://www.npes.org/pdfx/ns/id/'><pdfxid:GTS_PDFXVersion>PDF/X-1a:2001</pdfxid:GTS_PDFXVersion></rdf:Description>",false)
        end
    },

pdf/x-1a:2003

    ["pdf/x-1a:2003"] = {
        pdf_version             = 1.4,
        format_name             = "PDF/X-1a:2003",
        xmp_file                = "lpdf-pdx.xml",
        gts_flag                = "GTS_PDFX",
        gray_scale              = true,
        cmyk_colors             = true,
        spot_colors             = true,
        internal_icc_profiles   = true,
        inject_metadata         = function()
            addtoinfo("GTS_PDFXVersion","PDF/X-1a:2003")
            injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfxid='http://www.npes.org/pdfx/ns/id/'><pdfxid:GTS_PDFXVersion>PDF/X-1a:2003</pdfxid:GTS_PDFXVersion></rdf:Description>",false)
        end
    },

pdf/x-3:2002

    ["pdf/x-3:2002"] = {
        pdf_version             = 1.3,
        format_name             = "PDF/X-3:2002",
        xmp_file                = "lpdf-pdx.xml",
        gts_flag                = "GTS_PDFX",
        gray_scale              = true,
        cmyk_colors             = true,
        rgb_colors              = true,
        calibrated_rgb_colors   = true,
        spot_colors             = true,
        cielab_colors           = true,
        internal_icc_profiles   = true,
        include_intents         = true,
        inject_metadata         = function()
            addtoinfo("GTS_PDFXVersion","PDF/X-3:2002")
        end
    },

pdf/x-3:2003

    ["pdf/x-3:2003"] = {
        pdf_version             = 1.4,
        format_name             = "PDF/X-3:2003",
        xmp_file                = "lpdf-pdx.xml",
        gts_flag                = "GTS_PDFX",
        gray_scale              = true,
        cmyk_colors             = true,
        rgb_colors              = true,
        calibrated_rgb_colors   = true,
        spot_colors             = true,
        cielab_colors           = true,
        internal_icc_profiles   = true,
        include_intents         = true,
        jbig2_compression       = true,
        inject_metadata         = function()
            addtoinfo("GTS_PDFXVersion","PDF/X-3:2003")
        end
    },

pdf/x-4

    ["pdf/x-4"] = {
        pdf_version             = 1.6,
        format_name             = "PDF/X-4",
        xmp_file                = "lpdf-pdx.xml",
        gts_flag                = "GTS_PDFX",
        gray_scale              = true,
        cmyk_colors             = true,
        rgb_colors              = true,
        calibrated_rgb_colors   = true,
        spot_colors             = true,
        cielab_colors           = true,
        internal_icc_profiles   = true,
        include_intents         = true,
        optional_content        = true,
        transparency            = true,
        jbig2_compression       = true,
        jpeg2000_compression    = true,
        object_compression      = true,
        inject_metadata         = function()
            injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfxid='http://www.npes.org/pdfx/ns/id/'><pdfxid:GTS_PDFXVersion>PDF/X-4</pdfxid:GTS_PDFXVersion></rdf:Description>",false)
            insertxmpinfo("xml://rdf:Description/xmpMM:InstanceID","<xmpMM:VersionID>1</xmpMM:VersionID>",false)
            insertxmpinfo("xml://rdf:Description/xmpMM:InstanceID","<xmpMM:RenditionClass>default</xmpMM:RenditionClass>",false)
        end
    },

pdf/x-4p

    ["pdf/x-4p"] = {
        pdf_version             = 1.6,
        format_name             = "PDF/X-4p",
        xmp_file                = "lpdf-pdx.xml",
        gts_flag                = "GTS_PDFX",
        gray_scale              = true,
        cmyk_colors             = true,
        rgb_colors              = true,
        calibrated_rgb_colors   = true,
        spot_colors             = true,
        cielab_colors           = true,
        internal_icc_profiles   = true,
        external_icc_profiles   = true,
        include_intents         = true,
        optional_content        = true,
        transparency            = true,
        jbig2_compression       = true,
        jpeg2000_compression    = true,
        object_compression      = true,
        inject_metadata         = function()
            injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfxid='http://www.npes.org/pdfx/ns/id/'><pdfxid:GTS_PDFXVersion>PDF/X-4p</pdfxid:GTS_PDFXVersion></rdf:Description>",false)
            insertxmpinfo("xml://rdf:Description/xmpMM:InstanceID","<xmpMM:VersionID>1</xmpMM:VersionID>",false)
            insertxmpinfo("xml://rdf:Description/xmpMM:InstanceID","<xmpMM:RenditionClass>default</xmpMM:RenditionClass>",false)
        end
    },

pdf/x-5g

    ["pdf/x-5g"] = {
        pdf_version             = 1.6,
        format_name             = "PDF/X-5g",
        xmp_file                = "lpdf-pdx.xml",
        gts_flag                = "GTS_PDFX",
        gray_scale              = true,
        cmyk_colors             = true,
        rgb_colors              = true,
        calibrated_rgb_colors   = true,
        spot_colors             = true,
        cielab_colors           = true,
        internal_icc_profiles   = true,
        include_intents         = true,
        open_prepress_interface = true,
        optional_content        = true,
        transparency            = true,
        jbig2_compression       = true,
        jpeg2000_compression    = true,
        object_compression      = true,
        inject_metadata         = function()
            -- todo
        end
    },

pdf/x-5pg

    ["pdf/x-5pg"] = {
        pdf_version             = 1.6,
        format_name             = "PDF/X-5pg",
        xmp_file                = "lpdf-pdx.xml",
        gts_flag                = "GTS_PDFX",
        gray_scale              = true,
        cmyk_colors             = true,
        rgb_colors              = true,
        calibrated_rgb_colors   = true,
        spot_colors             = true,
        cielab_colors           = true,
        internal_icc_profiles   = true,
        external_icc_profiles   = true,
        include_intents         = true,
        open_prepress_interface = true,
        optional_content        = true,
        transparency            = true,
        jbig2_compression       = true,
        jpeg2000_compression    = true,
        object_compression      = true,
        inject_metadata         = function()
            -- todo
        end
    },

pdf/x-5n

    ["pdf/x-5n"] = {
        pdf_version             = 1.6,
        format_name             = "PDF/X-5n",
        xmp_file                = "lpdf-pdx.xml",
        gts_flag                = "GTS_PDFX",
        gray_scale              = true,
        cmyk_colors             = true,
        rgb_colors              = true,
        calibrated_rgb_colors   = true,
        spot_colors             = true,
        cielab_colors           = true,
        internal_icc_profiles   = true,
        include_intents         = true,
        optional_content        = true,
        transparency            = true,
        jbig2_compression       = true,
        jpeg2000_compression    = true,
        nchannel_colorspace     = true,
        object_compression      = true,
        inject_metadata         = function()
            -- todo
        end
    },

以上列出的item,可以作为判断是否为PDF/X的依据,也可以作为印前检查的判断内容。

还有一些注意事项:
1、PDF/X不支持加密
2、字体嵌入
3、颜色空间限制
4、图片压缩方式限制
5、PDF版本限制
6、透明度限制
7、嵌入文件限制
8、快速web查看限制
9、output intent限制
10、Trapped 接口限制
11、页面box限制
12、注释限制
等等

猜你喜欢

转载自blog.csdn.net/steve_cui/article/details/82113322