8

WinForms (C#) を使用して、指定された宛先で 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";

は、常に PDF ドキュメントの 5 ページを開きます。

よろしくお願いいたします。

4

5 に答える 5

8

次のコードを使用します。

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);

パラメータ内の「/n」に注意してください。これにより、アドビは常に新しいドキュメントを開くようになります。それ以外の場合、ドキュメントが既に開かれている場合は、正しい名前付きの宛先に移動しません。アプリケーションに必要な動作によって異なります。

于 2012-05-17T15:27:41.537 に答える
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.Textこれにより、ページ番号が含まれるページに名前が含まれる選択されたPDFが開きますitem.SubItems[4].Text

于 2011-02-23T09:12:01.137 に答える
0

Adobe Reader には、名前付きの宛先を開くことに関していくつかのバグがあります。情報と回避策については、 http: //xenon.arcticus.com/open-pdf-named-destination-dde-ccを参照してください。

于 2010-03-17T15:45:51.190 に答える
0

目的地の設定はお済みですか?これを行うには、Adobe Acrobat の標準バージョンまたはプロフェッショナル バージョンが必要です。

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

于 2009-09-14T21:13:26.907 に答える