Desativando toda a interatividade de documentos (para conformidade com PDF/X)

Desativando toda a interatividade de documentos (para conformidade com PDF/X)

Estou trabalhando para tornar meu arquivo PDF compilado em XeLaTeX compatível com o padrão PDF/X-1a:2001.

Quando eu usoesta respostacom o TeXLive 2015, o documento é totalmente validado (no Acrobat Pro DC). No entanto, quando testo a mesma solução no meu documento real, que inclui capítulos, índice e outras interatividades, recebo erros.

Compilei o código abaixo com 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}

e a validação de PDF resultante gera o erro "O documento contém ações" no Acrobat:

Erro de "ações" do PDF

Alguns documentos que testei também apresentam o seguinte erro: "Anotação dentro da área da página", que aponta para índice gerado com \tableofcontentscomando e links internos gerados com \hyperlinkcomando. (Os hiperlinks estão no documento, pois basicamente a mesma fonte é usada para geração do documento interativo e da versão impressa.)

Portanto, o problema é a interatividade no documento.

Tentei desativá-lo alterando

\usepackage{hyperref}

para

\usepackage[draft]{hyperref}

mas isso não apenas desativa a interatividade adicionada por hyperref, mas também ignora hypersetup, o que faz com que a data de modificação do documento, o título e a chave interceptada não sejam incluídos no PDF compilado. Efeito: não há erro quanto à interatividade, mas o documento ainda não está compatível com PDF/X-1a:2001, pois requer a hypersetupinclusão de metadados.

Como posso desativar completamente toda a interatividade em um documento enquanto ainda hypersetuptrabalho?

Em teoria, eu poderia redefinir/substituir todos os comandos "interativos", hyperrefbem como todos os meus comandos personalizados que usam interatividade (no final do preâmbulo, para que todas as definições anteriores sejam substituídas):


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

mas:

  • Não sei como posso desativar a interatividade \pagerefsem perder o número da página no documento
  • Esta abordagem é muito específica do documento, pois requer a verificação de onde exatamente a interatividade foi adicionada e por quais comandos
  • Embora funcione para alguns dos documentos com os quais testei, não funciona para o MWE acima.

Existe alguma maneira mais direta/genérica de desabilitar globalmente a interatividade em todo o documento?

Responder1

ONoHyperambientepode fazer o que você procura: dentro de seu escopo, a maioria hyperrefdos recursos está desabilitada, redefinindo os hyperrefusos de macros internas para produzir links para que não façam nada. Porém, ao contrário da draftopção de pacote, não desativa a criação de marcadores, a inclusão de informações de documentos etc.

Normalmente, você incluiria as partes do seu documento onde deseja desativar os links

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

Neste caso, como você deseja evitar links em todo o documento, pode ser mais fácil apenas substituir

\usepackage{hyperref}

no seu exemplo por

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

para desativar links e marcadores globalmente, ao mesmo tempo que pode incluir metadados no arquivo PDF. Desabilitar os favoritos é um requisito, pois sua presença irá desencadear o mesmo erro de validação mostrado na pergunta.

informação relacionada