Deaktivieren der gesamten Dokumentinteraktivität (für PDF/X-Kompatibilität)

Deaktivieren der gesamten Dokumentinteraktivität (für PDF/X-Kompatibilität)

Ich arbeite daran, meine mit XeLaTeX kompilierte PDF-Datei mit dem PDF/X-1a:2001-Standard kompatibel zu machen.

Wenn ichdiese AntwortMit TeXLive 2015 wird das Dokument vollständig validiert (in Acrobat Pro DC). Wenn ich jedoch dieselbe Lösung an meinem tatsächlichen Dokument teste, das Kapitel, Inhaltsverzeichnis und andere interaktive Elemente enthält, erhalte ich Fehler.

Ich habe den folgenden Code kompiliert mit xelatex -output-driver="xdvipdfmx -V 3" pdfx.tex:

\documentclass{book}
\usepackage{atbegshi}
\AtBeginShipout{
    \special{pdf: put @thispage
      <<
        /TrimBox [0 0 210.990 162.086]
      >>
    }
}
\special{pdf: put @thispage
  <<
    /TrimBox [0 0 210.990 162.086]
  >>
}
\special{pdf:docinfo
  <<
    /GTS_PDFXVersion (PDF/X-1:2001)
    /GTS_PDFXConformance (PDF/X-1a:2001)
  >>
}

\special{pdf:put @catalog
<<
  /PageMode /UseNone
  /OutputIntents [
    <<
      /Info (none)
      /Type /OutputIntent
      /S /GTS_PDFX
      /OutputConditionIdentifier (Custom)
      /RegistryName (http://www.color.org/)
    >>
  ]
>>
}%

\usepackage{datetime}
\usepackage{hyperref}
\hypersetup{% 
    pdftitle={Title},
    pdfinfo={
        ModDate={D:\pdfdate},
        Trapped={False},      
   },
}


\begin{document}
\chapter{Some chapter}
\chapter{Some chapter}
\chapter{Some chapter}
\chapter{Some chapter}
\end{document}

und die resultierende PDF-Validierung gibt den Fehler „Dokument enthält Aktionen“ in Acrobat aus:

PDF-Aktionen-Fehler

Einige von mir getestete Dokumente werfen auch den folgenden Fehler aus: „Anmerkung im Seitenbereich“, der auf das mit dem Befehl generierte Inhaltsverzeichnis \tableofcontentsund die mit \hyperlinkdem Befehl generierten internen Links verweist. (Hyperlinks befinden sich im Dokument, da im Grunde dieselbe Quelle für die Generierung des interaktiven Dokuments und der Druckversion verwendet wird.)

Das Problem ist also die Interaktivität im Dokument.

Ich habe versucht, es zu deaktivieren, indem ich

\usepackage{hyperref}

Zu

\usepackage[draft]{hyperref}

Dies deaktiviert jedoch nicht nur die durch hinzugefügte Interaktivität hyperref, sondern überspringt auch hypersetup, was dazu führt, dass das Änderungsdatum, der Titel und der eingeschlossene Schlüssel des Dokuments nicht in das kompilierte PDF aufgenommen werden. Auswirkung: Es liegt kein Fehler bezüglich der Interaktivität vor, das Dokument ist jedoch immer noch nicht mit PDF/X-1a:2001 kompatibel, da hypersetupMetadaten aufgenommen werden müssen.

Wie kann ich die gesamte Interaktivität in einem Dokument vollständig deaktivieren und trotzdem weiter daran arbeiten hypersetup?

Theoretisch könnte ich alle „interaktiven“ hyperrefBefehle sowie alle meine benutzerdefinierten Befehle, die Interaktivität verwenden, neu definieren/überschreiben (ganz am Ende der Präambel, sodass alle früheren Definitionen überschrieben werden):


\def \hyperlink#1#2{#2}
\def \href#1#2{#2}
\def \url#1{#1}
\begin{document}

Aber:

  • Ich bin nicht sicher, wie ich die Interaktivität deaktivieren kann, \pagerefohne die Seitenzahl im Dokument zu verlieren
  • Dieser Ansatz ist sehr dokumentspezifisch, da geprüft werden muss, wo genau Interaktivität hinzugefügt wurde und durch welche Befehle
  • Obwohl es bei einigen der Dokumente, mit denen ich es getestet habe, funktioniert, funktioniert es bei dem oben genannten MWE nicht.

Gibt es eine einfachere/allgemeinere Möglichkeit, die Interaktivität im gesamten Dokument global zu deaktivieren?

Antwort1

DerNoHyperUmfeldkönnte das tun, was Sie suchen: innerhalb seines Umfangs hyperrefwerden die meisten Funktionen deaktiviert, indem die internen Makros, hyperrefdie zum Erstellen von Links verwendet werden, so umdefiniert werden, dass sie nichts tun. Im Gegensatz zur draftPaketoption wird jedoch die Erstellung von Lesezeichen, die Einbindung von Dokumentinformationen usw. nicht deaktiviert.

Normalerweise würden Sie die Teile Ihres Dokuments, in denen Sie Links deaktivieren möchten, in

\begin{NoHyper}
    ...
\end{NoHyper}

In diesem Fall, da Sie Links im gesamten Dokument vermeiden möchten, ist es möglicherweise einfacher, einfach zu ersetzen

\usepackage{hyperref}

in Ihrem Beispiel durch

\usepackage[bookmarks=false]{hyperref}
\NoHyper

um Links und Lesezeichen global zu deaktivieren und dennoch Metadaten in die PDF-Datei einbinden zu können. Das Deaktivieren von Lesezeichen ist eine Voraussetzung, da ihre Anwesenheit denselben Validierungsfehler auslöst, der in der Frage angezeigt wird.

verwandte Informationen