2008-10-16 28 views

Trả lời

3

Nếu bạn đang phát triển trong Java có một cái nhìn tại iText: http://www.lowagie.com/iText/ Tôi nghĩ rằng nó hỗ trợ những gì bạn đang tìm kiếm.

Ngoài ra còn có một số phiên bản Net xung quanh: http://www.ujihara.jp/iTextdotNET/en/

+0

Bạn có thể chỉ ra trong tài liệu không? –

+0

Có một ví dụ đơn giản ở đây: http://itextdocs.lowagie.com/tutorial/objects/anchors/index.php Xem phần JavaScript. –

0

tôi đã thực hiện studing các PDF Specifications.

Chỉ ra rằng định dạng tệp PDF không quá khó.

Tính năng đẹp có thể thay đổi tài liệu chỉ bằng cách thêm nội dung mới vào cuối tệp.

Nếu bạn đang cố gắng làm điều tương tự ... đừng sợ! đi và nhìn vào các thông số kỹ thuật.

+0

Vì vậy, bạn chỉ cần thêm các luồng đối tượng mới và cập nhật, sau đó là Bảng tham chiếu chéo (xref) và đoạn giới thiệu được cập nhật? Có vẻ như bạn sẽ cần có khả năng phân tích các luồng đối tượng hiện tại và tính toán bù trừ byte. –

2

iText (và iText_Sharp_) hoàn toàn có khả năng thêm JS vào một hành động trang PDF, liên kết, tập lệnh cấp tài liệu hiện có, bạn đặt tên cho nó.

The JavaDoc can be found here.

Điều này được viết bằng Java, nhưng mã C# trông gần như giống hệt nhau (nếu không chính xác như nhau, với xử lý ngoại lệ bị loại bỏ như thế này).

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 
Các vấn đề liên quan