使用 scrbook 和 LuaLaTeX 创建符合 PDF/A 和 PDF/X 多标准的文档

使用 scrbook 和 LuaLaTeX 创建符合 PDF/A 和 PDF/X 多标准的文档

我正在尝试创建一个 PDF/A-同时兼容 PDF/X,并scrbook具有不同版本的 LuaLaTeX 和 documentclass。

到目前为止,我找到了一些可以运行的代码。这平均能量损失帮助我同时生成符合 PDF/A-2b 或 PDF/A-2u 和 PDF/X-4 标准的 PDF。不过,我还希望能够切换到 PDF/X-1a 和 PDF/X-3,它们可以与本文的片段一起使用代码

这是我到目前为止拼凑起来的 MWE。我不确定所有部分的作用,因此我很乐意对任何有缺陷或不需要的部分进行解释或更正。它可以同时生成符合 PDF/A-2u(或 b)和 PDF/X-4 的 PDF,或者交替生成仅几行代码更改符合 PDF/A-2u(或 b)和 PDF/X-1a(或 3)的 PDF。但是,这仅适用于 documentclass article我的问题:如何让它与 documentclass 一起工作scrbook使用时scrbook它不再符合 PDF/X。Acrobat DC 警告“文档包含操作”。我该如何摆脱它们?我已经设置bookmarksfalse并使用NoHyper

要使此 MWE 正常工作,您还需要来自 eci_offset_2009.zip 的 PSO_Uncoated_ISO12647_eci.icc这里。要在 PDF/A 和 PDF/X 变体之间切换,请查看我之前所做的评论\begin{document}

编辑:所以我找到了解决方案。请参阅下面的评论。让我们将其变成另一个问题:您认为这是为所有这些 PDF 变体(PDF/A-2b、A-2u 和 X-1a、x-3、X-4)生成符合多标准文档的正确方法吗?有没有更好的方法?

梅威瑟:

% !TeX TXS-program:compile = txs:///lualatex/[-synctex=1 -interaction=nonstopmode]
% !BIB TS-program = biber
% !TeX encoding = UTF-8

\ifnum\luatexversion>81
\RequirePackage{luatex85}
\else
\fi
\pdfobjcompresslevel=0%
\pdfminorversion=3% Setting version of pdf % must be set 3 for PDF 1.3 required by PDF/X
\pdfinclusioncopyfonts=1% 

\documentclass{scrbook}
\usepackage[pdfa,bookmarks=false]{hyperref} %bookmarks are incompatible with PDF/X<6
\usepackage[ngerman]{babel}
\usepackage{hyperxmp}[2020/06/15]
\usepackage[cmyk]{xcolor}

\immediate\pdfobj stream attr{/N 4} file{PSO_Uncoated_ISO12647_eci.icc}
\pdfcatalog{%
  /OutputIntents [ <<
    /Type /OutputIntent
    /S /GTS_PDFX
    /DestOutputProfile \the\pdflastobj\space 0 R
    /Info(PSO Uncoated ISO12647 (ECI))
    /OutputCondition(Offset printing, according to ISO 12647-2:2004/Amd1, OFCOM, paper type 4 = uncoated white, 115 g/m2, tone value increase curves C (CMY) and D (K))
    /OutputConditionIdentifier (Uncoated FOGRA47)
    /RegistryName(http://www.color.org)
  >>
  <<
    /Type /OutputIntent
    /S /GTS_PDFA1
    /DestOutputProfile \the\pdflastobj\space 0 R
    /Info(PSO Uncoated ISO12647 (ECI))
    /OutputCondition(Offset printing, according to ISO 12647-2:2004/Amd1, OFCOM, paper type 4 = uncoated white, 115 g/m2, tone value increase curves C (CMY) and D (K))
    /OutputConditionIdentifier (Uncoated FOGRA47)
    /RegistryName(http://www.color.org)
  >> ]
}

\makeatletter
% Bugfix of hyperref to produce CMYK links
\let\HyColor@HyperrefBorderColor\HyColor@XZeroOneThreeFour
\makeatother

\makeatletter
%we need to tell PDF/X the final format of the paper. This needs adjustment if you want graphics on the page border, called bleeding
\@tempdima=0.99626400996264009962\paperwidth
\edef\boxwd{\strip@pt\@tempdima}
\@tempdima=0.99626400996264009962\paperheight
\edef\boxht{\strip@pt\@tempdima}
\makeatother
\edef\next{%
  \protect\pdfpageattr{
    /TrimBox[0.0 0.0 \boxwd\space \boxht]
  }%
}
\next

\title{PDF/A-2b dummy document}
\author{anonymus}


%%%%%%%%%%%%%% Section start
% Use this section for PDF/X-1a and 3 compliance. Comment out for PDF/X-4 compliance.

\hypersetup{pdfstartpage={}}% disable openaction of hyperref for PDF/X compliance

%(mm size * 72)/25.4 = bp size
\pdfpageattr{ %fill manually
    /TrimBox [0 0 210.990 162.086]
}
\pdfinfo{ %for PDF/X
    /Title (Word vs. LaTeX) % without this copy of title pdf is not compatible with PDF/X
    /GTS_PDFXVersion (PDF/X-1:2001)
    /GTS_PDFXConformance (PDF/X-1a:2001)
}%
%%%%%%%%%%%%%% Section end

    \hypersetup{%
        pdfdisplaydoctitle=true,
        pdfversionid=1,
        pdftrapped=False,
        pdfapart=2,
        pdfaconformance=U, % Change to "B" for PDF/A-2b compliance only.
        pdfstartpage={},
%       pdfxstandard={PDF/X-4}, % Comment out to switch to PDF/X-1a or 3. Use for PDF/X-4 compliance.
        urlbordercolor=red
    }

\begin{document}
\begin{NoHyper} %comment out to avoid links

\tableofcontents

\section {Title}

Text.

\url{http://tex.stackexchange.com/}

\end{NoHyper} % comment out to avoid links
\end{document}

相关内容