Kısa versiyon:
- Ben MS Word 2007 (veya daha yeni) kodlamak göreli dosya köprüler getirmenin herhangi bir yolu var mı (köprü, işaret, örneğin başka bir PDF dosyası) Eylem Tipi kullanılarak
Launch
yerineURI
(sayfa Adobe Portable Document Format 653 üzerinde belirtilen iki tür, PDF Başvurusu, sürüm 1.7, altıncı sürüm - http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/tr/devnet/pdf/pdfs/pdf_reference_1-7.pdf )? Yoksa tüm "yanlış"URI
kodlanmış dosya köprüleriniLaunch
eşdeğerlerine çevirebilen bir son işlemci uygulamak için tek çözüm mü?
Ayrıntılı sürüm:
İki Word dokümanım var; doc1.docx
ve doc2.docx
(her ikisi de MS Word 2007 ile derlenmiştir).
Gelen doc1.docx
benim ikinci belgenin (PDF versiyonunda köprü yerleştirmek doc2.pdf
) - şimdi ben var:
Daha sonra doc1.docx
dosyayı her ikisi olarak da kaydediyorum .docx
ve .pdf
- PDF
nesil, aşağıdaki seçenekleri kullanarak MS Word 2007'deki yerleşik PDF yayıncısı tarafından işleniyor:
Şimdiye kadar iyi - Sonra aşağıdaki klasör yapısı var:
/superuser
- doc1.docx
- doc1.pdf
- doc2.docx
- doc2.pdf
Sonra doc1.pdf
Adobe Reader X (sürüm 10.1.3) ile açıyorum ve işaret eden köprüyü tıklıyorum doc2.pdf
. Bağlantı göreli olarak, Adobe Reader X'in hedef PDF dosyasını ayrı bir pencerede veya Adobe Reader X'in aynı örneğinde açacağını tahmin etmiş / varsaymıştım ( Open cross-document links in same window
içinde belirtilen seçeneğe bağlı olarak Edit -> Preferences -> Documents
).
Ancak durum böyle değil . Bunun yerine, Adobe Reader X, varsayılan tarayıcıyı (benim durumumda Windows 7 x64'te Google Chrome v21 +) kullanarak köprüyü çözer - ve açık olmak gerekirse - bu problemdir . Adobe Reader X'in (ve öncüllerinin çoğunun) hedef PDF'yi Adobe Reader X'in başka bir örneğinde açarak köprüyü çözmesini istiyorum ( Open cross-document links in same window
seçeneğin işaretini kaldırdığımı varsayarak ). Aynı senaryoyu (varsayılan) PDF okuyucumla tekrarlamak; Sumatra PDF beklendiği gibi çalışıyor - Sumatra PDF hedef PDF dosyasını ayrı bir pencerede açar ve bana içeriğini gösterirdoc2.pdf
. Öyleyse neden Sumatra PDF'yi kullanmıyorsunuz? Çok isterdim - ancak sorun şu ki, potansiyel olarak çok sayıda son kullanıcısı olan bir proje üzerinde çalışıyorum ve hepsinin Adobe Reader X'tan başka bir PDF okuyucu kullandığını düşünemiyorum - bu yüzden başka bir yol yok Adobe Reader X ile neler olup bittiğini bulmak.
Oraya ulaşmak için kazmaya başladım.
İlk olarak, Chrome'daki adres çubuğuna bakarak Adobe Reader X'in URI şemasını doc2.pdf
kullanarak çözmeye çalıştığı görülüyor file
: file:///C:/superuser/doc2.pdf
- bu bana adil geliyor (aynı URI'yi Run
Windows 7'deki iletişim kutusuna yapıştırmak varsayılan PDF okuyucuma neden oluyor (Sumatra PDF) ), ancak Adobe Reader X neden PDF'den işlemek için varsayılan tarayıcıyı istiyor?
Bunu cevaplamak için kazmaya devam ettim. doc1.pdf
Notepad ++ ile açıldığında , köprünün URI
Eylem Türü kullanılarak kodlandığı ortaya çıktı (Adobe Taşınabilir Belge Biçimi, PDF Başvurusu, sürüm 1.7, altıncı sürümdeki s. 653 ve 662'ye bakın - http://wwwimages.adobe.com/www.adobe) .com / content / dam / Adobe / tr / devnet / pdf / pdfs / pdf_reference_1-7.pdf ):
/Type/Action/S/URI/URI(doc2.pdf)
PDF referansı (s. 662), URI
Eylem Türü hakkında aşağıdakileri belirtir :
Tekdüzen bir kaynak tanımlayıcısı (URI), bir sorguya veya başka bir varlığa da çözümlenebilmesine rağmen, genellikle bir köprü metni bağlantısının hedefi olan bir dosya olan Internet'teki bir kaynağı tanımlayan (çözen) bir dizedir.
Adobe Reader X'te ilk başta büyük bir hata gibi görünen şey adil bir uygulama gibi görünmeye başladı. En azından, bu noktada Adobe Reader X'in neden böyle davrandığını anladım - cevaplamak için yeni bir soruya neden oldum: doc2.pdf
sonuçta ortaya çıkan PDF'nin Adobe Reader X'i yapacağı şekilde bir dosya köprüsünü (örneğin bir bağlantı ) nasıl doğru şekilde kodlayabilirim? (varsayılan tarayıcıdan işini yapmasını istemek yerine) bağlantının kendisini mi tutabilirsiniz?
PDF spesifikasyonuna yeniden baktığımı ve Eylem Türü'nü bulduğumu cevaplamak için Launch
- bu tür hakkında, PDF referansında şunlar belirtilir (s. 659):
Başlatma eylemi bir uygulamayı başlatır veya bir belge açar veya yazdırır.
Yani aşağıdaki değişikliği yaparak (notepad ++ kullanarak):
Değiştirme:
/Type/Action/S/URI/URI(doc2.pdf)
Bununla:
/Type/Action/S/Launch/F(doc2.pdf)
... Adobe Reader X daha sonra doc2.pdf
dosyayı ayrı bir pencerede / Adobe Reader X'in başka bir örneğinde açarak bağlantıyı çözer - yine Open cross-document links in same window
seçeneğin işaretini kaldırdığımı varsayarsak (Yaşasın !!).
Ve şimdi henüz çözmeyi başaramadığım gerçek / son soruya - MS Word 2007'yi (veya daha yeni) göreli dosya köprülerini (örneğin, başka bir PDF dosyasını gösteren) bir köprüyü kodlayabilmemin herhangi bir yolu var mı? İşlem Türü Launch
yerine URI
(her iki tür de Adobe Taşınabilir Belge Biçimi, PDF Başvurusu, sürüm 1.7, altıncı sürümün 653. sayfasında belirtilmiştir - http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/tr /devnet/pdf/pdfs/pdf_reference_1-7.pdf )? Yoksa tüm "yanlış" URI
kodlanmış dosya köprülerini Launch
eşdeğerlerine değiştirebilen bir tür post-işlemci uygulaması uygulamak için tek çözüm mü?
Bunun bir sürü "TLDR" ye neden olabileceğini biliyorum - ama buraya gelmeyi başarırsanız ilginizi gerçekten takdir ediyorum ve umarım siz ya da bir başkası beni doğru yöne yönlendirebilir.
Teşekkürler.