Versão curta:
- Existe alguma maneira de fazer o MS Word 2007 (ou mais recente) codificar hiperlinks de arquivos relativos (um hiperlink apontando para, por exemplo, outro arquivo PDF) usando o Tipo de ação em
Launch
vez deURI
(ambos os tipos especificados na página 653 do Adobe Portable Document Format, PDF Reference, versão 1.7, sexta edição - http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/pdf_reference_1-7.pdf )? Ou é a única solução para implementar um pós-processador que pode alterar todos osURI
hiperlinks de arquivos codificados "errados" para seusLaunch
equivalentes?
Versão elaborada:
Eu tenho dois documentos do Word; doc1.docx
e doc2.docx
(ambos compilados com o MS Word 2007).
Em doc1.docx
que coloco um hiperlink para uma versão em PDF do meu segundo documento ( doc2.pdf
) - agora recebi:
Em seguida, salvei o doc1.docx
arquivo como ambos .docx
e .pdf
- a PDF
geração é gerenciada pelo editor de PDF embutido no MS Word 2007 usando as seguintes opções:
Até aí tudo bem - eu tenho a seguinte estrutura de pastas:
/superuser
- doc1.docx
- doc1.pdf
- doc2.docx
- doc2.pdf
Então abro doc1.pdf
com o Adobe Reader X (versão 10.1.3) e clico no hiperlink apontando para doc2.pdf
. Como o link é relativo, eu teria adivinhado / assumido que o Adobe Reader X simplesmente abriria o arquivo PDF de destino em uma janela separada ou na mesma instância do Adobe Reader X (dependendo da opção Open cross-document links in same window
especificada em:) Edit -> Preferences -> Documents
.
No entanto, esse não é o caso. Em vez disso, o Adobe Reader X resolve o hiperlink usando o navegador padrão (no meu caso, o Google Chrome v21 + no Windows 7 x64) - e para ser claro - esse é o problema . Desejo que o Adobe Reader X (e a maioria de seus antecessores) resolva apenas o hiperlink abrindo o PDF de destino em outra instância do Adobe Reader X (supondo que eu tenha desmarcado a Open cross-document links in same window
opção). Repetindo o mesmo cenário usando o meu leitor de PDF (padrão); O Sumatra PDF funciona conforme o esperado - O Sumatra PDF abre o arquivo PDF de destino em uma janela separada e mostra o conteúdo dedoc2.pdf
. Então, por que não usar o Sumatra PDF, então você pergunta? Eu adoraria - no entanto, o problema é que estou trabalhando em um projeto com potencialmente muitos usuários finais, e não posso assumir que todos eles usam outro leitor de PDF que não seja o Adobe Reader X -, portanto, não há outra maneira de contornar que descobrir o que está acontecendo com o Adobe Reader X.
Então, para chegar lá, comecei a cavar.
Primeiro, olhando para a barra de endereços no Chrome, é visto que o Adobe Reader X tenta resolver doc2.pdf
usando o file
esquema de URI: file:///C:/superuser/doc2.pdf
- o que parece justo para mim (colar o mesmo URI na Run
caixa de diálogo do Windows 7 causa meu leitor de PDF padrão (Sumatra PDF ) para abrir o arquivo) - mas por que o Adobe Reader X está solicitando que o navegador padrão lide com o PDF?
Para responder a isso, continuei cavando. A abertura doc1.pdf
no bloco de notas ++ revelou que o hiperlink foi codificado usando o URI
Tipo de Ação (consulte as páginas 653 e 662 no Adobe Portable Document Format, PDF Reference, versão 1.7, sexta edição - http://wwwimages.adobe.com/www.adobe .com / content / dam / Adobe / pt / devnet / pdf / pdfs / pdf_reference_1-7.pdf ):
/Type/Action/S/URI/URI(doc2.pdf)
A referência em PDF (p. 662) indica o seguinte sobre o URI
Tipo de ação:
Um identificador de recurso uniforme (URI) é uma cadeia de caracteres que identifica (resolve) um recurso na Internet - geralmente um arquivo que é o destino de um link de hipertexto, embora também possa resolver para uma consulta ou outra entidade.
Então, o que, em primeira mão, parecia um grande bug no Adobe Reader X, começou a parecer uma implementação justa. Pelo menos, nesse ponto, descobri por que o Adobe Reader X se comporta da mesma maneira - resultando em uma nova pergunta a ser respondida: como codifico corretamente um hiperlink de arquivo (por exemplo, um link para doc2.pdf
) de modo que o PDF resultante esteja criando o Adobe Reader X lidar com o próprio link (em vez de solicitar ao navegador padrão que faça seu trabalho)?
Para responder que examinei a especificação do PDF e localizei o Tipo de ação Launch
- sobre esse tipo, a referência em PDF declara o seguinte (p. 659):
Uma ação de inicialização inicia um aplicativo ou abre ou imprime um documento.
Portanto, fazendo a seguinte alteração (usando o bloco de notas ++):
Substituindo:
/Type/Action/S/URI/URI(doc2.pdf)
Com isso:
/Type/Action/S/Launch/F(doc2.pdf)
... O Adobe Reader X resolve o link abrindo o doc2.pdf
arquivo em uma janela separada / em outra instância do Adobe Reader X - assumindo novamente que eu desmarquei a Open cross-document links in same window
opção (viva !!).
E agora, até a pergunta real / final que ainda não consegui resolver - existe alguma maneira de fazer o MS Word 2007 (ou mais recente) codificar hiperlinks de arquivos relativos (um hiperlink apontando para, por exemplo, outro arquivo PDF) usando o Tipo de ação em Launch
vez de URI
(ambos os tipos especificados na página 653 do Adobe Portable Document Format, PDF Reference, versão 1.7, sexta edição - http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en /devnet/pdf/pdfs/pdf_reference_1-7.pdf )? Ou é a única solução para implementar algum tipo de aplicativo pós-processador que possa alterar todos os URI
hiperlinks de arquivos codificados "errados" para seus Launch
equivalentes?
Sei que isso pode causar muitos "TLDR" - mas se você conseguir chegar aqui, aprecio muito o seu interesse e espero que você ou outra pessoa possa me indicar a direção certa.
Obrigado.