2009-09-14 10 views
7

पर प्रोग्रामेटिक रूप से एक पीडीएफ फ़ाइल खोलें, मैं WinForms (C#) का उपयोग कर नामित गंतव्य पर एक पीडीएफ फ़ाइल खोलना चाहता हूं।किसी नामित गंतव्य

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

यह हमेशा पेज 1 पर फ़ाइल भी पेज # 10 पर गंतव्य Test2 होने यह मूल रूप से गंतव्य पैरामीटर पर ध्यान नहीं देता खोलता है: यहाँ मेरी कोड है। हालांकि अगर मैं पेज नंबर की तरह एक और पैरामीटर का उपयोग करता हूं तो यह ठीक काम करता है। उदाहरण के लिए:

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

हमेशा पीडीएफ दस्तावेज़ पेज पर अग्रिम में आपकी मदद की

+0

यदि आप कमांड लाइन से कमांड निष्पादित करते हैं तो यह काम करता है? क्या आपने एक्रोबैट, या अन्य सिस्टम के अन्य संस्करणों की कोशिश की है? यह एक एक्रोबैट बग हो सकता है, या शायद आपका इंस्टॉल खराब है? – Jason

+0

मैंने इसे कमांड लाइन से निष्पादित करने का प्रयास किया और यह काम नहीं किया। यदि मैं पृष्ठ संख्या पैरामीटर पास करता हूं तो यह काम करता है लेकिन गंतव्यों का उपयोग नहीं करता है। मैंने एक्रोबैट का एक नया संस्करण भी एक नया कंप्यूटर स्थापित किया और इसमें कोई सफलता नहीं मिली। –

+0

यदि यह कमांड लाइन के रूप में काम नहीं करता है, तो यह प्रोग्रामिंग से संबंधित प्रश्न भी नहीं है। यह एडोब रीडर के बारे में एक सवाल है। यह वास्तव में इस तरह के प्रश्न के लिए जगह नहीं है - http://forums.adobe.com/community/adobe_reader_forums/adobe_reader –

उत्तर

0

आप स्थलों की स्थापना की है के लिए खुल जाएगा 5.

धन्यवाद?

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

+0

पर पूछने का प्रयास करें हां, मैं एडोब एक्रोबैट 8 मानक संस्करण 1.8.3 का उपयोग कर रहा हूं। एडोब के अंदर सभी गंतव्यों ठीक लगता है। उनमें से किसी पर क्लिक करने से दस्तावेज़ के माध्यम से नेविगेट किया जाएगा। –

2

जब एक कमांड खोल से एक पीडीएफ दस्तावेज़ खोलने एडोब प्रलेखन के बारे में, आप खुले में पैरामीटर पारित कर सकते हैं: आप हो ऐसा करने के लिए में एडोब एक्रोबेट के मानक या व्यावसायिक संस्करण की आवश्यकता है/A स्विच का उपयोग निम्न सिंटैक्स का उपयोग कर आदेश: यदि मैं छोड़ OpenActions सब कुछ पैरामीटर

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

काम करता है ठीक तरह:

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

मुझे यकीन नहीं है कि ओपनएक्शन फ़ाइल खोलने को क्यों तोड़ता है लेकिन इसे छोड़कर यह ठीक काम करता है।

2

मेरे पास 5 कॉलम वाला एक सीएसवी है। कॉलम 1 में पीडीएफ नाम और कॉलम 5 पेगेनबर्स शामिल हैं। निष्पादन योग्य सीएसवी प्रदर्शित करता है। जब मैं csv में एक लाइन पर DoubleClick निम्न कोड निष्पादित:

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

यह चयनित पीडीएफ जो नाम पृष्ठ PageNumber item.SubItems[4].Text

6

मैं निम्नलिखित कोड का उपयोग में है पर item.Text में है खोलता है :

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" नोट करें। यह एडोब को हमेशा एक नया दस्तावेज़ खोलने के लिए बनाता है। अन्यथा, यदि दस्तावेज़ पहले ही खोला गया था, तो यह इसे सही नामित गंतव्य पर नहीं ले जाता है। यह आपके आवेदन के लिए इच्छित व्यवहार पर निर्भर करता है।

संबंधित मुद्दे