Deshabilitar toda la interactividad de los documentos (para cumplir con PDF/X)

Deshabilitar toda la interactividad de los documentos (para cumplir con PDF/X)

Estoy trabajando para que mi archivo PDF compilado con XeLaTeX sea compatible con el estándar PDF/X-1a:2001.

cuando usoesta respuestacon TeXLive 2015, el documento se valida completamente (en Acrobat Pro DC). Sin embargo, cuando pruebo la misma solución en mi documento real, que incluye capítulos, índice y otras interactividades, obtengo errores.

Compilé el código a continuación con 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}

y la validación de PDF resultante genera el error "El documento contiene acciones" en Acrobat:

Error de "acciones" de PDF

Algunos documentos que probé también arrojan el siguiente error: "Anotación dentro del área de la página", que apunta a la tabla de contenido generada con \tableofcontentsel comando y a los enlaces internos generados con \hyperlinkel comando. (Los hipervínculos están en el documento, ya que básicamente se utiliza la misma fuente para generar el documento interactivo y la versión impresa).

Entonces el problema es la interactividad en el documento.

Intenté desactivarlo cambiando

\usepackage{hyperref}

a

\usepackage[draft]{hyperref}

pero esto no solo desactiva la interactividad agregada por hyperref, sino que también la omite hypersetup, lo que da como resultado que la fecha de modificación del documento, el título y la clave atrapada no se incluyan en el PDF compilado. Efecto: no hay ningún error con respecto a la interactividad, pero el documento aún no cumple con PDF/X-1a:2001, ya que requiere hypersetupque se incluyan metadatos.

¿Cómo puedo desactivar completamente toda la interactividad en un documento mientras sigo trabajando hypersetup?

En teoría, podría redefinir/sobrescribir todos hyperreflos comandos "interactivos", así como todos mis comandos personalizados que usan interactividad (al final del preámbulo, para que se sobrescriban todas las definiciones anteriores):


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

pero:

  • No estoy seguro de cómo puedo desactivar la interactividad \pagerefsin perder el número de página del documento.
  • Este enfoque es muy específico del documento, ya que requiere verificar dónde se agregó exactamente la interactividad y mediante qué comandos.
  • Si bien funciona para algunos de los documentos con los que lo probé, no funciona para MWE mencionado anteriormente.

¿Existe alguna forma más sencilla/genérica de desactivar la interactividad globalmente en todo el documento?

Respuesta1

ElNoHyperambientepodría hacer lo que está buscando: dentro de su alcance, la mayoría de hyperreflas funciones están deshabilitadas, al redefinir los hyperrefusos de las macros internas para producir enlaces para que no hagan nada. Sin embargo, a diferencia de la draftopción del paquete, no desactiva la creación de marcadores, la inclusión de información de documentos, etc.

Por lo general, incluiría las partes de su documento en las que desea desactivar los enlaces.

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

En este caso, como desea evitar enlaces en todo el documento, podría ser más fácil simplemente reemplazar

\usepackage{hyperref}

en tu ejemplo por

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

para deshabilitar enlaces y marcadores globalmente, sin dejar de poder incluir metadatos en el archivo PDF. Deshabilitar los marcadores es un requisito, ya que su presencia generará el mismo error de validación que se muestra en la pregunta.

información relacionada