.png)
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:
Alguns documentos que testei também apresentam o seguinte erro: "Anotação dentro da área da página", que aponta para índice gerado com \tableofcontents
comando e links internos gerados com \hyperlink
comando. (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 hypersetup
inclusão de metadados.
Como posso desativar completamente toda a interatividade em um documento enquanto ainda hypersetup
trabalho?
Em teoria, eu poderia redefinir/substituir todos os comandos "interativos", hyperref
bem 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
\pageref
sem 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
ONoHyper
ambientepode fazer o que você procura: dentro de seu escopo, a maioria hyperref
dos recursos está desabilitada, redefinindo os hyperref
usos de macros internas para produzir links para que não façam nada. Porém, ao contrário da draft
opçã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.