MS Word 2007+ - può codificare i collegamenti ipertestuali utilizzando il tipo di azione PDF "Avvia" anziché "URI" quando pubblica un file ".docx" in PDF?


9

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 i URIcollegamenti ipertestuali di file codificati "errati" nel loro Launchequivalente?

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:

Proprietà del collegamento ipertestuale <code> doc2.pdf </code> in <code> doc1.docx </code>

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

Proprietà di pubblicazione PDF di MS Word 2007

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.


2
Non sono sicuro che i commenti "scontrino" una domanda, ma questo vale la lettura.
Tanner Faulkner,

1
Grazie per la tua domanda Di per sé contiene molti dettagli e una possibile soluzione. Sei riuscito a trovare un modo migliore per farlo? La sostituzione dell'azione funziona correttamente.
Farish,

1
@Farish Purtroppo no. Fino ad ora, l'uso di un post processore è stata la soluzione che funziona per me. Se un giorno trovo un modo migliore, posterò un aggiornamento qui :)
Lasse Christiansen,

Risposte:


2

Grazie per il tuo eccellente articolo. Funziona! All'inizio non per me, ma poi ho scoperto che devi disattivare la "modalità protetta" in Adobe X. Non ho questo problema su Adobe 9. Mi sembra che l'industria stia tornando indietro alla funzionalità nel nome di sicurezza.

Quindi in Adobe Reader X fai:

  1. Assicurati che l'opzione Apri documenti incrociati sia deselezionata. (come hai detto)
  2. Disattiva la modalità protetta: Modifica »Preferenze» Generale
  3. Cerca e sostituisci /Type/Action/S/URI/URIcon /Type/Action/S/Launch/F(un editor esadecimale adatto

Non esiste una soluzione semplice per ciò che vogliamo fare, ovvero consentire a qualsiasi utente con solo un lettore PDF senza impostazioni di cui preoccuparsi di spostarsi all'interno di una cartella.
Ma grazie ancora per tutto il tuo lavoro e la luce che getta sul soggetto.


Sono contento che funzioni con l'idea di un "post processore". Da quando ho pubblicato la domanda non ho ancora trovato una soluzione migliore, quindi continuerò a utilizzare la fase di post-elaborazione fino a quando non esiste una soluzione migliore. Grazie per il tuo contributo :)
Lasse Christiansen,

0

FWIW, non credo che i collegamenti funzionino in Sumatra se il nome del file contiene spazi (posizionare le virgolette attorno al nome non ha aiutato poiché Word sembra rimuovere quelli durante la creazione del collegamento). Non credo sia possibile cambiare il comportamento di Word, quindi ...

Soluzione alternativa n. 1: utilizzare un creatore di PDF migliore.

Soluzione alternativa: creare PDF con Word come al solito, quindi utilizzare un editor esadecimale o un'utilità della riga di comando come http://stahlforce.com/dev/index.php?tool=rep per sostituire tutte le istanze richieste di / Type / Azione / S / URI / URI ( con / Tipo / Azione / S / Avvia / F ( .


0

Ri. la relativa domanda sul collegamento ipertestuale.

La Guida di MS Office afferma che l'impostazione 'aggiorna i collegamenti al salvataggio' (pulsante Office / pulsante Opzioni di Word / pulsante avanzato / Web otions) fa sì che l'inserimento dei collegamenti ipertestuali sia relativo. Se non selezionati, diventano assoluti. Tuttavia questa impostazione non ha fatto alcuna differenza per i miei tentativi. Quello che ha fatto è stato il punto in cui è stato salvato il file. Per creare collegamenti relativi, apro un nuovo file vuoto e lo salvo in una cartella appropriata prima di inserire qualsiasi collegamento. Nella casella "Inserisci collegamento ipertestuale" selezionare "cartella esistente". La cartella visualizzata nella casella è quindi la cartella appena salvata nella struttura ad albero verso il basso, non verso l'alto. cioè relativo

Per creare collegamenti assoluti apro un nuovo file vuoto e senza salvarlo inserisco il collegamento. La casella di inserimento ora mostra la cartella esistente al livello superiore. Drill down al file da collegare e il percorso mostrato nella parte inferiore della casella è il percorso completo di ritorno a C :. . . . . .. (mostrando la lettera di unità) cioè assoluto.

Passando il cursore sui collegamenti nei due file di Word mostra il percorso assoluto completo in entrambi i casi. Tuttavia, se la cartella principale viene copiata su un'altra unità, il collegamento relativo apre la cartella nella nuova unità e il collegamento assoluto torna alla cartella C: unità, che I quello che voglio vedere. Non ho ancora scoperto come creare entrambi i tipi di collegamento in un unico file. Ma non mi serve comunque. Sono stato in grado di convertire entrambi i miei file MS Word in pdf usando la modifica esadecimale sopra riportata, ed entrambi hanno funzionato, uno in modalità assoluta e l'altro relativo.

Ri. il tuo "metodo di sostituzione esadecimale modifica"

Ha funzionato bene per me in alcuni casi e non in altri. Ho scoperto che dovevo assicurarmi che i nomi dei file target non abbiano spazi in tham. Li ho sostituiti con il simbolo di sottolineatura. Quindi hanno lavorato.


0

Ho toccato il fondo adesso per quanto ragionevolmente possibile per me stesso. Dal momento che si riferisce direttamente alla domanda originale, passerò il mio riepilogo finale.

Ri. collegamenti assoluti e relativi nello stesso documento

guarda il percorso mostrato nella parte inferiore della casella Inserisci collegamento ipertestuale. Se la cartella di livello superiore è la cartella scelta, il collegamento sarà relativo ad essa. Per renderlo assoluto, utilizzare la struttura ad albero nella casella "Inserisci" per eseguire il drill up verso l'alto fino alla lettera dell'unità. L'impostazione predefinita è per i collegamenti relativi quando il file è stato salvato per la prima volta nella cartella "padre".

Passaggi per la creazione di una cartella di collegamento indice trasportabile

(con un documento "indice" che collega i file in sottocartelle.)

  1. Crea una nuova cartella da qualche parte che sarà la cartella da trasportare (cartella 'The Parent').

  2. Crea o posiziona le sottocartelle con i loro file nel genitore.

  3. Ora apri un documento di Word 2007 che sarà il tuo "documento indice". Prima di inserire qualsiasi link, salva questo file nel tuo 'genitore'.

  4. Ora fai 'inserisci collegamento ipertestuale'. La casella 'Inserisci collegamento ipertestuale' mostrerà la struttura della cartella / file verso il basso dal 'genitore' cioè relativo. Per creare un collegamento assoluto, eseguire il drill up verso l'alto fino alla lettera dell'unità.

  5. Salva il file di Word che ora funzionerà come "documento indice"

  6. Per convertire il "documento indice" in pdf, apri il file word e salva come PDF. Questa versione del documento Index aprirà i file di destinazione tramite il browser scaricandoli o visualizzando come PDF all'interno del browser.

  7. Per fare in modo che il documento 'Index.pdf' apra i collegamenti nella loro applicazione nativa, modifica il file usando il metodo di modifica esadecimale descritto in precedenza e sottostite / Tipo / Azione / S / URI / URI (per / Tipo / Azione / S / Avvia / F (

  8. 3. Nota importante! Prima di modificare il file .pdf, assicurarsi che tutti i nomi di cartelle e file non abbiano spazi. Sostituisci spazi con trattino basso o trattino.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.