2011-02-28 36 views
4

是否可以使用.net編輯pdf文檔的JavaScript?用.net編輯PDF格式的javascript

我看過Acrobat SDK,但沒有多少運氣。它看起來像你可以從窗體等檢索值,但不能編輯文檔。

我是否偏離軌道?這甚至有可能嗎?

我試過iTextSharp,但由於pdf包含表單域,所以當我保存pdf時,這些域會丟失。

有什麼建議嗎?

回答

6

好吧,顯然你可以用iTextSharp

 Document document = new Document(PageSize.A4, 50, 50, 50, 50); 

     PdfReader reader = new PdfReader(@"Source.pdf"); 
     FileStream output = new FileStream(@"Destination.pdf", FileMode.Create); 

     PdfStamper pdfStamper = new PdfStamper(reader, output, '\0', true);    
     pdfStamper.JavaScript = "app.alert(\"Hello world!\");"; 

     pdfStamper.FormFlattening = false; 
     pdfStamper.Close(); 
     reader.Close(); 

This question幫助)

1

當然,PDF文檔的JavaScript可以編輯。

我不知道如何在其他庫中完成它,但使用Docotic.Pdf(我爲Bit Miracle工作)可以爲控件,頁面和文檔整體添加/刪除/編輯javascript動作。

以下是設置和更改javascript動作的示例。該代碼假定文檔包含一個按鈕。

PdfDocument doc = new PdfDocument("document-with-button.pdf"); 
// assume that first widget is a button 
PdfButton button = doc.Widgets[0] as PdfButton; 

// add javascript action for OnMouseEnter event 
PdfJavaScriptAction action = doc.CreateJavaScriptAction("app.alert('OnMouseEnter JavaScript Action',3)"); 
button.OnMouseEnter = action; 

// change javascript action for OnMouseEnter event 
(button.OnMouseEnter as PdfJavaScriptAction).Script = "app.alert('Well, hello from OnMouseEnter JavaScript Action',3)"; 

doc.Save("output.pdf"); 
0

PDF4NET可以加載PDF文件,它使您可以訪問所有的JavaScript片段,無論他們位於文件級或在現場/註釋動作水平。

聲明:我爲開發PDF4NET的公司工作。

1

+1 iTextSharp的。至於在保存時丟失的字段,值得注意的是,Fox It Reader是免費的,並且允許保存可編輯的PDF。如果這不是一個選項,那麼它通常是大多數公司的Acrobat Standard。您可以使用任意數量的PDF打印驅動程序,並將經過編輯的PDF格式的PDF格式打印爲PDF格式,但該格式在此時將爲只讀格式(在某些情況下仍有用)。