Versione breve:
- Esiste un modo in cui posso fare in modo che MS Word 2007 (o più recente) codifichi i collegamenti ipertestuali relativi ai file (un collegamento ipertestuale che punta, ad esempio, un altro file PDF) utilizzando il Tipo di azione
LaunchanzichéURI(entrambi i tipi specificati a pagina 653 di Adobe Portable Document Format, PDF Reference, versione 1.7, sesta edizione - http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/pdf_reference_1-7.pdf )? O è l'unica soluzione per implementare un post-processore in grado di modificare tutti iURIcollegamenti ipertestuali di file codificati "errati" nel loroLaunchequivalente?
Versione elaborata:
Ho due documenti Word; doc1.docxe doc2.docx(entrambi compilati con MS Word 2007).
Nel doc1.docxposto un collegamento ipertestuale a una versione PDF del mio secondo documento ( doc2.pdf) - così ora ho ottenuto:

Quindi salvo il doc1.docxfile come entrambi .docxe .pdf- la PDFgenerazione è gestita dall'editore PDF incorporato in MS Word 2007 utilizzando le seguenti opzioni:

Fin qui tutto bene - ho quindi la seguente struttura di cartelle:
/superuser
- doc1.docx
- doc1.pdf
- doc2.docx
- doc2.pdf
Quindi apro doc1.pdfcon Adobe Reader X (versione 10.1.3) e faccio clic sul collegamento ipertestuale che punta a doc2.pdf. Dato che il collegamento è relativo, avrei immaginato / supposto che Adobe Reader X avrebbe semplicemente aperto il file PDF di destinazione in una finestra separata o nella stessa istanza di Adobe Reader X (a seconda dell'opzione Open cross-document links in same windowspecificata in:) Edit -> Preferences -> Documents.
Tuttavia, non è così. Invece, Adobe Reader X risolve il collegamento ipertestuale utilizzando il browser predefinito (nel mio caso Google Chrome v21 + su Windows 7 x64) - e per essere chiari - questo è il problema . Voglio che Adobe Reader X (e la maggior parte dei suoi predecessori) risolva semplicemente il collegamento ipertestuale aprendo il PDF di destinazione in un'altra istanza di Adobe Reader X (supponendo di aver deselezionato l' Open cross-document links in same windowopzione). Ripetendo lo stesso scenario usando il mio (predefinito) lettore PDF; Sumatra PDF funziona come previsto: Sumatra PDF apre il file PDF di destinazione in una finestra separata e mi mostra il contenuto didoc2.pdf. Quindi perché non usare Sumatra PDF, allora chiedi? Mi sarebbe piaciuto, tuttavia, il problema è che sto lavorando a un progetto con potenzialmente molti utenti finali e non posso presumere che tutti utilizzino un lettore PDF diverso da Adobe Reader X, quindi non c'è altro modo per aggirare che capire cosa sta succedendo con Adobe Reader X.
Quindi, per arrivarci, ho iniziato a scavare.
Innanzitutto, osservando la barra degli indirizzi in Chrome, si vede che Adobe Reader X tenta di risolvere doc2.pdfusando lo fileschema URI: file:///C:/superuser/doc2.pdf- il che mi sembra corretto (incollare lo stesso URI nella Runfinestra di dialogo in Windows 7 provoca il mio lettore PDF predefinito (Sumatra PDF ) per aprire il file) - ma perché Adobe Reader X chiede al browser predefinito di gestire il PDF?
Per rispondere a ciò, ho continuato a scavare. L'apertura doc1.pdfin notepad ++ ha rivelato che il collegamento ipertestuale è stato codificato utilizzando il URITipo di azione (vedere p. 653 e 662 in Adobe Portable Document Format, PDF Reference, versione 1.7, sesta edizione - http://wwwimages.adobe.com/www.adobe .com / content / dam / Adobe / it / devnet / pdf / pdfs / pdf_reference_1-7.pdf ):
/Type/Action/S/URI/URI(doc2.pdf)
Il riferimento PDF (p. 662) indica quanto segue sul URITipo di azione:
Un identificatore di risorsa uniforme (URI) è una stringa che identifica (risolve in) una risorsa su Internet, in genere un file che è la destinazione di un collegamento ipertestuale, sebbene possa anche essere risolto in una query o altra entità.
Quindi, quello che in prima persona sembrava un grosso bug in Adobe Reader X ha iniziato a sembrare una corretta implementazione. Almeno, a questo punto ho capito perché Adobe Reader X si comporta in modo simile - risultando in una nuova domanda a cui rispondere: come posso codificare correttamente un collegamento ipertestuale di file (ad esempio un collegamento a doc2.pdf) in modo tale che il PDF risultante stia creando Adobe Reader X gestire il collegamento stesso (invece di chiedere al browser predefinito di fare il suo lavoro)?
Per rispondere ho dato un'altra occhiata alla specifica PDF e ho trovato il Tipo di azione Launch- riguardo a quel tipo, il riferimento PDF indica quanto segue (p. 659):
Un'azione di avvio avvia un'applicazione o apre o stampa un documento.
Quindi apportando la seguente modifica (usando notepad ++):
Sostituzione:
/Type/Action/S/URI/URI(doc2.pdf)
Con questo:
/Type/Action/S/Launch/F(doc2.pdf)
... Adobe Reader X risolve quindi il collegamento aprendo il doc2.pdffile in una finestra separata / un'altra istanza di Adobe Reader X - sempre supponendo di aver deselezionato l' Open cross-document links in same windowopzione (evviva !!).
E ora fino alla domanda effettiva / finale che non sono ancora riuscito a risolvere - c'è un modo in cui posso fare in modo che MS Word 2007 (o più recente) codifichi i collegamenti ipertestuali relativi ai file (un collegamento ipertestuale che punta, ad esempio, a un altro file PDF) usando il Tipo di azione Launchanziché URI(entrambi i tipi specificati a pagina 653 di Adobe Portable Document Format, PDF Reference, versione 1.7, sesta edizione - http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en /devnet/pdf/pdfs/pdf_reference_1-7.pdf )? O è l'unica soluzione per implementare un qualche tipo di applicazione post-processore che può cambiare tutti i URIcollegamenti ipertestuali di file codificati "errati" nel loro Launchequivalente?
So che questo potrebbe causare molto "TLDR" - ma se riesci ad arrivare qui apprezzo molto il tuo interesse e spero che tu o qualcun altro possa indicarmi la giusta direzione.
Grazie.