2008-10-16 22 views
7

पीडीएफ फाइलों में प्रोग्रामेटिक रूप से जावास्क्रिप्ट इंजेक्ट कैसे करें?प्रोग्रामेटिक रूप से पीडीएफ फाइलों में जावास्क्रिप्ट इंजेक्ट कैसे करें?

क्या यह एडोब प्रोफेशनल के बिना किया जा सकता है?


मेरा लक्ष्य है: मैं पीडीएफ खोलने पर तत्काल प्रिंट संवाद दिखाना चाहता हूं।

मुझे पता है कि यह दस्तावेज़ में एम्बेडेड जावास्क्रिप्ट कोड के साथ किया जा सकता है।

उत्तर

3

यदि आप जावा में विकास कर रहे हैं तो iText पर एक नज़र डालें: http://www.lowagie.com/iText/ मुझे लगता है कि यह आप जो चाहते हैं उसका समर्थन करता है। http://www.ujihara.jp/iTextdotNET/en/

+0

क्या आप इसे दस्तावेज़ों में इंगित कर सकते हैं? –

+0

यहां एक साधारण उदाहरण है: http://itextdocs.lowagie.com/tutorial/objects/anchors/index.php जावास्क्रिप्ट अनुभाग को देखें। –

0

मैं PDF Specifications का अध्ययन किया है:

भी आसपास कुछ नेट संस्करण हैं।

यह पता चला है कि पीडीएफ फ़ाइल प्रारूप इतना मुश्किल नहीं है।

इसमें एक अच्छी सुविधा है जो फ़ाइल के अंत में नई सामग्री को जोड़कर दस्तावेज़ को संशोधित करने में सक्षम है।

यदि आप एक ही काम करने की कोशिश कर रहे हैं ... डरो मत! जाओ और चश्मे को देखो।

+0

तो क्या आप केवल अद्यतन और क्रॉस-रेफरेंस टेबल (xref) और ट्रेलर के बाद नई और अपडेट की गई ऑब्जेक्ट स्ट्रीम जोड़ते हैं? ऐसा लगता है कि आपको मौजूदा ऑब्जेक्ट स्ट्रीम को पार्स करने और बाइट ऑफ़सेट की गणना करने में सक्षम होना आवश्यक है। –

2

iText (और iText_Sharp_) मौजूदा पीडीएफ में जेएस जोड़ने में काफी सक्षम हैं ... पृष्ठ क्रियाएं, लिंक, दस्तावेज़ स्तर स्क्रिप्ट, आप इसे नाम दें।

The JavaDoc can be found here

यह जावा के साथ दिमाग में लिखा गया था, लेकिन सी # कोड लगभग समान दिखता है (यदि बिल्कुल ठीक नहीं है, अपवाद हैंडलिंग इस तरह से छीन लिया गया है)।

PdfReader myReader = new PdfReader(myFilePath); // throws IOException 
PdfStamper myStamper = new PdfStamper(myReader, new FileOutputStream(outPath)); // throws IOE, DocumentException 

// add a document script 
myStamper.addJavaScript(myScriptString); 

// add a page-open script, 1 is the first page, not zero0 
PdfAction jsAction = PdfAction.javaScript(someScriptString); 
myStamper.setPageAction(PdfWriter.PAGE_OPEN, jsAction, myStamper.getWriter(), pageNumber); // throws PdfException (for bad first param) 

PdfFormField button = PdfFormField.createButton(myWriter, PdfFormField.FF_PUSHBUTTON); 
button.setWidget(myRectangle, PdfAnnotation.HIGHLIGHT_INVERT); 

// the important part, adding jsAction 
jsAction = PdfAction.javaScript(buttonScriptString); 
button.setAdditionalActions(PdfAnnotation.AA_DOWN, jsAction); // mouse down 

myStamper.addAnnotation(pageNum, button); 

myStamper.close(); // write everything out, throws DocumentException, IOE 
संबंधित मुद्दे