JavaScriptAction.cs
 // // This code is part of Document Solutions for PDF demos. // Copyright (c) MESCIUS inc. All rights reserved. // using System; using System.IO; using System.Drawing; using GrapeCity.Documents.Pdf; using GrapeCity.Documents.Text; using GrapeCity.Documents.Drawing; using GrapeCity.Documents.Pdf.Annotations; using GrapeCity.Documents.Pdf.Actions; namespace DsPdfWeb.Demos.Basics { // Shows how to associate a PDF action with a JavaScript script. // In this example the script is associated with a link on a page. // Note that JavaScript may not work in some PDF viewers (e.g. built-in browser viewers). // See JavaScript for Acrobat for details. public class JavaScriptAction { const string js = "var cChoice = app.popUpMenu(\"Introduction\", \" - \", \"Chapter 1\",\r\n" + "[ \"Chapter 2\", \"Chapter 2 Start\", \"Chapter 2 Middle\",\r\n" + "[\"Chapter 2 End\", \"The End\"]]);\r\n" + "app.alert(\"You chose the '\" + cChoice + \"' menu item\");"; public int CreatePDF(Stream stream) { var doc = new GcPdfDocument(); var g = doc.NewPage().Graphics; var jsAction = new ActionJavaScript(js); var tf = new TextFormat() { Font = StandardFonts.Times, FontSize = 14 }; // Draw the link string in a rectangle: var text = "Click this to show the popup menu."; var rect = new RectangleF(new PointF(72, 72), g.MeasureString(text, tf)); g.FillRectangle(rect, Color.LightGoldenrodYellow); g.DrawString(text, tf, rect); var result = new LinkAnnotation(rect, jsAction); doc.Pages.Last.Annotations.Add(result); // Add warning about this possibly not working in a browser: Common.Util.AddNote( "Note that JavaScript may not work in some PDF viewers such as built-in browser viewers.", doc.Pages.Last, new RectangleF(rect.X, rect.Bottom + 36, 400, 400)); // Done: doc.Save(stream); return doc.Pages.Count; } } }