2009-09-14 62 views
7

WinForms(C#)を使用して名前付きの場所でPDFファイルを開きたいとします。名前付きデスティネーションでプログラムでPDFファイルを開く

System.Diagnostics.Process myProcess = new System.Diagnostics.Process(); 
myProcess.StartInfo.FileName = "Acrobat.exe"; 
myProcess.StartInfo.Arguments = "/A \"nameddest=Test2=OpenActions\" C:\\example.pdf"; 
myProcess.Start(); 

はそれがあっても、常にそれは基本的には先のパラメータを無視ページ#10の先にTest2を持つページ1でファイルを開きます。ここに私のコードです。しかし、ページ番号のような別のパラメータを使用するとうまく動作します。たとえば:

myProcess.StartInfo.Arguments = "/A \"page=5=OpenActions\" C:\\example.pdf"; 

は常にページであなたの助けを事前に5.

おかげでPDF文書を開きます

+0

コマンドラインからコマンドを実行すると機能しますか?他のバージョンのAcrobatや他のシステムを試しましたか?それはAcrobatのバグかもしれません、あるいはあなたのインストールが悪いですか? – Jason

+0

コマンドラインから実行しようとしましたが動作しませんでした。私がページ番号パラメータを渡すと、それは動作しますが、宛先は使用しません。私はさらに、新しいバージョンのAcrobatを新しいコンピュータにインストールし、成功しなかった。 –

+0

コマンドラインからうまくいかない場合、これはプログラミング関連の問題ではありません。 Adobe Readerに関する質問です。これは本当にそのような質問の場ではありません。http://forums.adobe.com/community/adobe_reader_forums/adobe_readerにお問い合わせください。 –

答えて

0

は、あなたが目的地を設定していますか?あなたがこれを行うためには、Adobe Acrobatの標準やプロのバージョンを持ってする必要があります

http://kb2.adobe.com/cps/317/317300.html

+0

はい、私はAdobe Acrobat 8​​ Standardバージョン1.8.3を使用しています。 Adobeのすべての目的地はうまく見えます。それらのいずれかをクリックすると、その文書をナビゲートします。 –

2

コマンドシェルからPDF文書を開くときに、Adobeのドキュメントについて、あなたはオープンにパラメータを渡すことができますコマンドは次の構文を使用して、/スイッチを使用して:私はOpenActionsを省略した場合

myProcess.StartInfo.Arguments = "/A \"nameddest=Test2=OpenActions\" C:\\example.pdf"; 

パラメータすべてが同様正常に動作します:

myProcess.StartInfo.Arguments = "/A \"nameddest=Test2\" C:\\example.pdf"; 

OpenActionsがファイルを開くのを壊す理由は分かりませんが、省略するとうまくいきます。

2

私は5列のcsvを持っています。 Column1にはPDF名とColumn5ページが含まれています。 実行可能ファイルにcsvが表示されます。 私は次のコードが実行されるCSVファイルの行にダブルクリック:

ListViewItem item = lvwItems.SelectedItems[0]; 
Process myProcess = new Process(); 
myProcess.StartInfo.FileName = "Acrobat.exe"; 
myProcess.StartInfo.Arguments = "/A page=" + item.SubItems[4].Text + " " + item.Text; 
myProcess.Start(); 

これは名前は私が次のコードを使用item.SubItems[4].Text

6

にあるページ番号のページにitem.Textで選択されたPDFを開きます:

string strNamedDestination = "MyNamedDestination"; // Must be defined in PDF file. 
string strFilePath = "MyFilePath.pdf"; 
string strParams = " /n /A \"pagemode=bookmarks&nameddest=" + strNamedDestination + "\" \"" + strFilePath + "\""; 
Process.Start("AcroRd32.exe", strParams); 

params内の "/ n"に注意してください。 Adobeは常に新しい文書を開くようにしています。それ以外の場合、文書がすでに開かれている場合は、その文書を正しい名前付き宛先に移動しません。アプリケーションに必要な動作によって異なります。

関連する問題