Versi pendek:
- Apakah ada cara saya dapat membuat MS Word 2007 (atau yang lebih baru) menyandikan hyperlink file relatif (hyperlink yang menunjuk ke, misalnya, file PDF lain) menggunakan Jenis Tindakan
Launch
alih-alihURI
(kedua jenis yang ditentukan pada halaman 653 dari Adobe Portable Document Format, Referensi PDF, versi 1.7, edisi keenam - http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/pdf_reference_1-7.pdf )? Atau apakah satu-satunya solusi untuk mengimplementasikan post-prosesor yang dapat mengubah semuaURI
hyperlink file yang dikodekan "salah" keLaunch
padanannya?
Versi terperinci:
Saya punya dua dokumen Word; doc1.docx
dan doc2.docx
(keduanya dikompilasi dengan MS Word 2007).
Di doc1.docx
saya menempatkan hyperlink ke versi PDF dari dokumen kedua saya ( doc2.pdf
) - jadi sekarang saya mendapat:
Saya kemudian menyimpan doc1.docx
file sebagai keduanya .docx
dan .pdf
- PDF
generasi ditangani oleh penerbit PDF bawaan di MS Word 2007 menggunakan opsi berikut:
Sejauh ini bagus - Saya kemudian memiliki struktur folder berikut:
/superuser
- doc1.docx
- doc1.pdf
- doc2.docx
- doc2.pdf
Kemudian saya buka doc1.pdf
dengan Adobe Reader X (versi 10.1.3) dan klik pada hyperlink yang menunjuk ke doc2.pdf
. Karena tautannya relatif, saya akan menebak / berasumsi bahwa Adobe Reader X hanya akan membuka file PDF target di jendela terpisah atau dalam contoh yang sama dari Adobe Reader X (tergantung pada opsi yang Open cross-document links in same window
ditentukan dalam:) Edit -> Preferences -> Documents
.
Namun, bukan itu masalahnya. Sebaliknya, Adobe Reader X menyelesaikan hyperlink menggunakan browser default (dalam kasus saya Google Chrome v21 + pada Windows 7 x64) - dan untuk menjadi jelas - ini masalahnya . Saya ingin Adobe Reader X (dan sebagian besar pendahulunya) hanya menyelesaikan hyperlink dengan membuka target PDF dalam contoh lain dari Adobe Reader X (dengan asumsi saya tidak mencentang Open cross-document links in same window
opsi). Mengulang skenario yang sama menggunakan pembaca PDF (default) saya; Sumatra PDF berfungsi seperti yang diharapkan - Sumatra PDF membuka file PDF target di jendela terpisah dan menunjukkan kepada saya kontendoc2.pdf
. Jadi mengapa tidak menggunakan Sumatra PDF lalu Anda bertanya? Saya ingin sekali - namun, masalahnya adalah saya mengerjakan proyek yang berpotensi banyak pengguna akhir, dan saya tidak dapat berasumsi bahwa mereka semua menggunakan pembaca PDF selain Adobe Reader X - jadi, tidak ada jalan lain yang mencari tahu apa yang terjadi dengan Adobe Reader X.
Jadi untuk sampai di sana, saya mulai menggali.
Pertama, dengan melihat bilah alamat di Chrome terlihat bahwa Adobe Reader X mencoba menyelesaikan doc2.pdf
menggunakan file
skema URI: file:///C:/superuser/doc2.pdf
- yang tampaknya adil bagi saya (menempelkan URI yang sama ke dalam Run
dialog di Windows 7 menyebabkan pembaca PDF default saya (Sumatra PDF) ) untuk membuka file) - tetapi mengapa Adobe Reader X meminta browser default untuk menangani PDF?
Untuk menjawab itu, saya terus menggali. Membuka doc1.pdf
di notepad ++ mengungkapkan bahwa hyperlink telah dikodekan menggunakan URI
Jenis Tindakan (lihat hal. 653 dan 662 dalam Format Dokumen Portabel Adobe, Referensi PDF, versi 1.7, edisi keenam - http://wwwimages.adobe.com/www.adobe .com / konten / bendungan / Adobe / en / devnet / pdf / pdfs / pdf_reference_1-7.pdf ):
/Type/Action/S/URI/URI(doc2.pdf)
Referensi PDF (p. 662) menyatakan yang berikut tentang URI
Jenis Tindakan:
Uniform resource identifier (URI) adalah string yang mengidentifikasi (memutuskan untuk) sumber daya di Internet — biasanya file yang menjadi tujuan tautan hiperteks, meskipun juga dapat menyelesaikan kueri atau entitas lain.
Jadi, apa yang pada awalnya tampak seperti bug utama dalam Adobe Reader X mulai terlihat seperti implementasi yang adil. Setidaknya, pada titik ini saya menemukan mengapa Adobe Reader X berperilaku seperti itu - menghasilkan pertanyaan baru untuk dijawab: bagaimana cara menyandikan hyperlink file (misalnya tautan ke doc2.pdf
) sedemikian rupa sehingga PDF yang dihasilkan membuat Adobe Reader X menangani tautan itu sendiri (alih-alih meminta peramban default untuk melakukan tugasnya)?
Untuk menjawab bahwa saya melihat kembali spesifikasi PDF dan menemukan Tipe Tindakan Launch
- tentang tipe itu, referensi PDF menyatakan yang berikut (hlm. 659):
Tindakan peluncuran meluncurkan aplikasi atau membuka atau mencetak dokumen.
Jadi dengan melakukan perubahan berikut (menggunakan notepad ++):
Mengganti:
/Type/Action/S/URI/URI(doc2.pdf)
Dengan ini:
/Type/Action/S/Launch/F(doc2.pdf)
... Adobe Reader X kemudian menyelesaikan tautan dengan membuka doc2.pdf
file di jendela terpisah / contoh lain dari Adobe Reader X - lagi dengan asumsi saya telah menghapus centang pada Open cross-document links in same window
opsi (hore !!).
Dan sekarang ke pertanyaan aktual / terakhir yang belum saya pecahkan - apakah ada cara untuk membuat MS Word 2007 (atau yang lebih baru) menyandikan hyperlink file relatif (hyperlink yang menunjuk ke, misalnya, file PDF lain) menggunakan Jenis Tindakan Launch
alih-alih URI
(kedua jenis ditentukan pada halaman 653 dari Format Dokumen Portable Adobe, Referensi PDF, versi 1.7, edisi keenam - http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en /devnet/pdf/pdfs/pdf_reference_1-7.pdf )? Atau apakah satu-satunya solusi untuk mengimplementasikan beberapa jenis aplikasi pasca-prosesor yang dapat mengubah semua URI
hyperlink file yang dikodekan "salah" ke Launch
padanannya?
Saya tahu ini mungkin menyebabkan banyak "TLDR" - tetapi jika Anda berhasil sampai di sini saya sangat menghargai minat Anda dan saya harap Anda atau orang lain dapat mengarahkan saya ke arah yang benar.
Terima kasih.