MS Word 2007+ - bisakah ia menyandikan hyperlink menggunakan Jenis Tindakan PDF "Luncurkan" alih-alih "URI" saat mempublikasikan file ".docx" ke PDF?

9

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 Launchalih-alih URI(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 semua URIhyperlink file yang dikodekan "salah" ke Launchpadanannya?

Versi terperinci:

Saya punya dua dokumen Word; doc1.docxdan doc2.docx(keduanya dikompilasi dengan MS Word 2007).

Di doc1.docxsaya menempatkan hyperlink ke versi PDF dari dokumen kedua saya ( doc2.pdf) - jadi sekarang saya mendapat:

Properti hyperlink <code> doc2.pdf </code> di <code> doc1.docx </code>

Saya kemudian menyimpan doc1.docxfile sebagai keduanya .docxdan .pdf- PDFgenerasi ditangani oleh penerbit PDF bawaan di MS Word 2007 menggunakan opsi berikut:

Properti MS Word 2007 PDF Publish

Sejauh ini bagus - Saya kemudian memiliki struktur folder berikut:

/superuser
    - doc1.docx
    - doc1.pdf
    - doc2.docx
    - doc2.pdf

Kemudian saya buka doc1.pdfdengan 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 windowditentukan 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 windowopsi). 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.pdfmenggunakan fileskema URI: file:///C:/superuser/doc2.pdf- yang tampaknya adil bagi saya (menempelkan URI yang sama ke dalam Rundialog 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.pdfdi notepad ++ mengungkapkan bahwa hyperlink telah dikodekan menggunakan URIJenis 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 URIJenis 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.pdffile di jendela terpisah / contoh lain dari Adobe Reader X - lagi dengan asumsi saya telah menghapus centang pada Open cross-document links in same windowopsi (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 Launchalih-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 URIhyperlink file yang dikodekan "salah" ke Launchpadanannya?

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.

Lasse Christiansen
sumber
2
Tidak yakin jika komentar 'menabrak' sebuah pertanyaan, tetapi ini layak dibaca.
Tanner Faulkner
1
Terima kasih atas pertanyaan anda Dengan sendirinya berisi banyak detail dan satu solusi yang mungkin. Apakah Anda berhasil menemukan cara yang lebih baik untuk melakukannya? Mengganti Aksi berfungsi dengan baik.
Farish
1
@ Farish Sayangnya tidak. Sampai sekarang, menggunakan prosesor pos telah menjadi solusi yang cocok untuk saya. Jika suatu hari saya menemukan cara yang lebih baik, saya akan memposting pembaruan di sini :)
Lasse Christiansen

Jawaban:

2

Terima kasih atas artikel Anda yang luar biasa. Berhasil! Bukan untuk saya pada awalnya, tetapi kemudian saya menemukan Anda harus mematikan 'mode dilindungi' di adobe X. Saya tidak punya masalah ini sama sekali di adobe 9. Tampaknya bagi saya bahwa industri akan mundur pada fungsi di nama keamanan.

Jadi di Adobe Reader X lakukan:

  1. Pastikan cross docs terbuka .. tidak dicentang. (seperti yang Anda katakan)
  2. Matikan mode terproteksi: Edit »Preferensi» Umum
  3. Cari dan ganti /Type/Action/S/URI/URIdengan /Type/Action/S/Launch/F(menggunakan hex editor yang cocok

Tidak ada solusi mudah untuk apa yang ingin kita lakukan yang memungkinkan pengguna mana saja dengan hanya pembaca PDF tanpa pengaturan, untuk menavigasi di sekitar folder.
Tapi sekali lagi terima kasih atas semua pekerjaan Anda dan cahaya yang menerpa subjek.

Bob Brown
sumber
Saya senang itu bekerja menggunakan ide "post processor". Karena saya memposting pertanyaan saya masih belum menemukan solusi yang lebih baik, jadi saya juga akan tetap menggunakan langkah post-processing sampai ada solusi yang lebih baik. Terima kasih atas masukan Anda :)
Lasse Christiansen
0

FWIW, saya pikir tautan tidak berfungsi di Sumatra jika nama file berisi spasi (menempatkan tanda kutip di sekitar nama itu tidak membantu karena Word sepertinya menghapusnya saat membuat tautan). Saya tidak percaya itu mungkin untuk mengubah perilaku Word, jadi ...

Penanganan # 1: Gunakan pencipta PDF yang lebih baik.

Penanganan masalah # 2: Buat PDF dengan Word seperti biasa, lalu gunakan hex editor atau utilitas baris perintah seperti http://stahlforce.com/dev/index.php?tool=rep untuk mengganti semua instance / Type / yang diperlukan Action / S / URI / URI ( dengan / Type / Action / S / Launch / F ( .

Karan
sumber
0

Kembali. pertanyaan hyperlink relatif.

Bantuan MS Office menyatakan bahwa pengaturan 'perbarui tautan pada save' (tombol Office / tombol opsi Word / lanjutan / tombol Web otions) menyebabkan penyisipan hyperlink menjadi relatif. Jika tidak dicentang, mereka menjadi absolut. Namun pengaturan ini tidak membuat upaya saya berbeda. Apa yang terjadi, adalah titik di mana file tersebut disimpan. Untuk membuat tautan relatif, saya membuka file kosong baru dan menyimpannya di folder yang sesuai sebelum memasukkan tautan apa pun. Di 'Sisipkan kotak tautan' pilih 'folder yang ada'. Folder yang diperlihatkan dalam kotak adalah folder yang baru saja disimpan di dalam tree'ed ke bawah - bukan ke atas. yaitu relatif

Untuk membuat tautan absolut saya membuka file kosong baru dan tanpa menyimpannya saya memasukkan tautan. Kotak sisipan sekarang menunjukkan folder yang ada di tingkat atas. Telusuri ke file yang akan ditautkan dan jalur yang ditunjukkan di bagian bawah kotak adalah jalur lengkap kembali ke C :. . . . . .. (menunjukkan huruf drive) yaitu absolut.

Dengan mengarahkan kursor ke tautan dalam dua file Word menunjukkan path absolut penuh dalam kedua kasus. Namun jika folder Induk disalin ke drive lain, tautan relatif membuka folder di drive baru dan tautan absolut kembali ke folder C: drive, yang ingin saya lihat. Saya belum menemukan cara membuat kedua jenis tautan dalam satu file. Tapi bagaimanapun juga aku tidak butuh ini. Saya dapat mengkonversi kedua file MS Word saya ke pdf menggunakan modifikasi hex-edit Anda di atas, dan keduanya bekerja, satu dalam mode absolut relatif lainnya.

Kembali. 'metode pengeditan hex edit Anda'

Dalam beberapa kasus itu berhasil baik untuk saya dan tidak untuk yang lain. Saya menemukan bahwa saya harus memastikan nama file target tidak memiliki spasi di tham. Saya menggantikan mereka dengan simbol garis bawah. Lalu mereka bekerja.

Bob Brown
sumber
0

Saya sudah menyuarakan ini sejauh mungkin untuk diri saya sendiri. Karena ini berhubungan langsung dengan pertanyaan awal saya hanya akan menyampaikan ringkasan akhir saya.

Kembali. tautan absolut dan relatif dalam dokumen yang sama

lihat jalur yang ditunjukkan di bawah kotak Sisipkan hyperlink. Jika folder tingkat atas adalah folder yang Anda pilih maka tautan akan relatif terhadapnya. Untuk membuatnya mutlak gunakan struktur pohon di kotak 'masukkan' untuk mengebor ke atas sampai ke huruf drive. Standarnya adalah untuk tautan relatif ketika file pertama kali disimpan ke folder 'induk'.

Langkah-langkah untuk Membuat Folder yang menghubungkan Indeks

(dengan dokumen 'indeks' yang menghubungkan ke file di sub-folder.)

  1. Buat folder baru di suatu tempat yang akan menjadi folder yang akan diangkut (folder 'The Parent').

  2. Buat atau letakkan sub folder dengan file mereka ke dalam Induk.

  3. Sekarang buka dokumen Word 2007 yang akan menjadi 'indeks dokumen' Anda. Sebelum memasukkan tautan apa pun, simpan file ini ke 'induk' Anda.

  4. Sekarang lakukan 'masukkan hyperlink'. Kotak 'sisipkan hyperlink' akan menampilkan struktur folder / file tree ke bawah dari 'parent' yaitu relatif. Untuk membuat tautan tautan absolut ke atas sampai ke huruf drive.

  5. Simpan file Word yang sekarang akan berfungsi sebagai 'indeks dokumen' Anda

  6. Untuk mengonversi 'indeks dokumen' ke pdf, buka file kata dan simpan sebagai PDF. Versi indeks Indeks ini akan membuka file target melalui browser baik mengunduhnya atau ditampilkan sebagai PDF di dalam browser.

  7. Untuk membuat dokumen 'Index.pdf' membuka tautan dalam aplikasi asli mereka, modifikasi file menggunakan metode edit hex yang dijelaskan sebelumnya dan subtit / Type / Action / S / URI / URI (untuk / Type / Action / S / Launch / F (

  8. 3. Catatan Penting! Sebelum memodifikasi file .pdf, pastikan semua nama folder dan file tidak memiliki spasi. Ganti ruang dengan garis bawah atau tanda hubung.

Bob Brown
sumber