短縮版:
- 私はMS Word 2007の(またはそれ以降)エンコード相対ファイルのハイパーリンクを作成することができます任意の方法はあります(ハイパーリンクは、を指し例えば、別のPDFファイル)アクションタイプ使用して
Launch
の代わりにURI
(ページのAdobe PDF形式の653で指定された両方のタイプを、 PDFリファレンス、バージョン1.7、第6版-http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/pdf_reference_1-7.pdf)?または、すべての「間違った」URI
エンコードされたファイルのハイパーリンクをLaunch
同等のものに変更できるポストプロセッサを実装する唯一のソリューションですか?
精巧なバージョン:
2つのWord文書があります。doc1.docx
およびdoc2.docx
(両方ともMS Word 2007でコンパイルされています)。
でdoc1.docx
、私の私の第2の文書のPDF版へのハイパーリンクを置く(doc2.pdf
) -今私が得ました:
I [保存] doc1.docx
の両方としてファイル.docx
や.pdf
- PDF
世代は、組み込みのPDF-出版社、以下のオプションを使用して、MS Word 2007でによって処理されます。
これまでのところ素晴らしい-私は次のフォルダー構造を持っています:
/superuser
- doc1.docx
- doc1.pdf
- doc2.docx
- doc2.pdf
次にdoc1.pdf
、Adobe Reader X(バージョン10.1.3)で開き、を指すハイパーリンクをクリックしますdoc2.pdf
。リンクは相対リンクであるため、Adobe Reader XはターゲットPDFファイルを別のウィンドウまたはAdobe Reader Xの同じインスタンス(単にでOpen cross-document links in same window
指定されたオプションに応じてEdit -> Preferences -> Documents
)で開くだけであると推測/推測したでしょう。
しかし、そうではありません。代わりに、Adobe Reader Xがデフォルトのブラウザー(私の場合はWindows 7 x64上のGoogle Chrome v21 +)を使用してハイパーリンクを解決します-明確にするために- これが問題です。Adobe Reader X(およびその前任者のほとんど)が、ターゲットPDFをAdobe Reader Xの別のインスタンスで開いてハイパーリンクを解決するようにしたい(Open cross-document links in same window
オプションをオフにした場合)。私の(デフォルトの)PDFリーダーを使用して同じシナリオを繰り返す。Sumatra PDFは期待どおりに動作します-Sumatra PDFはターゲットPDFファイルを別のウィンドウで開き、コンテンツを表示しますdoc2.pdf
。それでは、なぜスマトラPDFを使用しないのですか?私は大好きだったでしょう-しかし、問題は潜在的に多くのエンドユーザーがいるプロジェクトで作業していることであり、それらすべてがAdobe Reader X以外のPDFリーダーを使用しているとは想定できません-したがって、他に方法はありませんAdobe Reader Xで何が起こっているのかを理解すること。
そこに行くために、私は掘り始めました。
まず、Chromeのアドレスバーを見ると、Adobe Reader X doc2.pdf
がfile
URIスキームを使用して解決しようとしていることがわかります。-これはfile:///C:/superuser/doc2.pdf
私には公平に思えます(同じURIをRun
Windows 7 のダイアログに貼り付けると、デフォルトのPDFリーダー(Sumatra PDF )ファイルを開く)-しかし、なぜAdobe Reader XがデフォルトのブラウザーにPDFの処理を要求するのですか?
それに答えるべく掘り続けました。doc1.pdf
notepad ++で開くと、ハイパーリンクがURI
アクションタイプを使用してエンコードされていることがわかりました(Adobe Portable Document Format、PDFリファレンス、バージョン1.7、第6版のp。653および662を参照-http ://wwwimages.adobe.com/www.adobe .com / content / dam / Adobe / en / devnet / pdf / pdfs / pdf_reference_1-7.pdf):
/Type/Action/S/URI/URI(doc2.pdf)
PDF参照(p。662)には、URI
アクションタイプについて次のように記載されています。
ユニフォームリソース識別子(URI)は、インターネット上のリソース(通常はハイパーテキストリンクの宛先であるファイル)を識別する(解決する)文字列ですが、クエリやその他のエンティティに解決することもできます。
したがって、最初はAdobe Reader Xの大きなバグのように見えていたものが、公正な実装のように見え始めました。少なくとも、この時点で私はAdobe Reader Xが動作する理由を理解しました-その結果、新しい質問に答えます:doc2.pdf
結果のPDFがAdobe Reader Xになるようにファイルのハイパーリンク(たとえばへのリンク)を適切にエンコードする方法リンク自体を処理しますか(デフォルトのブラウザにその仕事をするように依頼するのではなく)?
PDF仕様をもう一度調べてアクションタイプを見つけたと答えるために、Launch
そのタイプについて、PDFリファレンスには次のように記載されています(p。659)。
起動アクションは、アプリケーションを起動するか、ドキュメントを開くか印刷します。
したがって、次の変更を加えることによって(notepad ++を使用して):
交換:
/Type/Action/S/URI/URI(doc2.pdf)
これとともに:
/Type/Action/S/Launch/F(doc2.pdf)
... Adobe Reader X doc2.pdf
は、別のウィンドウまたはAdobe Reader Xの別のインスタンスでファイルを開くことによってリンクを解決します-ここでも、Open cross-document links in same window
オプションのチェックを外したと仮定します(フレイ!!)。
そして今、私がまだ解決できていない実際の/最後の質問に行きます-MS Word 2007(またはそれ以降)に、相対ファイルのハイパーリンク(たとえば、別のPDFファイルを指すハイパーリンク)をエンコードさせる方法はありますか?Launch
代わりにアクションタイプURI
(両方のタイプがAdobe Portable Document Format、PDFリファレンス、バージョン1.7、第6版の653ページで指定されている-http ://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en /devnet/pdf/pdfs/pdf_reference_1-7.pdf)?または、すべての「間違った」URI
エンコードされたファイルのハイパーリンクをLaunch
同等のものに変更できる、ある種のポストプロセッサアプリケーションを実装する唯一のソリューションですか?
これにより多くの "TLDR"が発生する可能性があることは承知していますが、ここにたどり着いた場合は、本当に関心をお寄せいただき、ありがとうございます。
ありがとう。