// --------------------------------------------------------------------------- /** * Manipulates a PDF file src with the file dest as result (localhost) * @param src the original PDF */ public byte[] ManipulatePdf(byte[] src) { // Create the reader PdfReader reader = new PdfReader(src); int n = reader.NumberOfPages; using (MemoryStream ms = new MemoryStream()) { // Create the stamper using (PdfStamper stamper = new PdfStamper(reader, ms)) { // Add JavaScript jsString = File.ReadAllText( Path.Combine(Utility.ResourceJavaScript, RESOURCE) ); stamper.JavaScript = jsString; // Create a Chunk with a chained action PdfContentByte canvas; Chunk chunk = new Chunk("print this page"); PdfAction action = PdfAction.JavaScript( "app.alert('Think before you print!');", stamper.Writer ); action.Next(PdfAction.JavaScript( "printCurrentPage(this.pageNum);", stamper.Writer )); action.Next(new PdfAction("http://www.panda.org/savepaper/")); chunk.SetAction(action); Phrase phrase = new Phrase(chunk); // Add this Chunk to every page for (int i = 0; i < n;) { canvas = stamper.GetOverContent(++i); ColumnText.ShowTextAligned( canvas, Element.ALIGN_RIGHT, phrase, 816, 18, 0 ); } } return(ms.ToArray()); } }
public virtual void SoundAndTwoNextJavaScriptActionTest() { String fileName = "soundAndTwoNextJavaScriptActionTest.pdf"; PdfDocument document = CreateDocument(new PdfWriter(destinationFolder + fileName), false); Stream @is = new FileStream(sourceFolder + "sample.aif", FileMode.Open, FileAccess.Read); PdfStream sound1 = new PdfStream(document, @is); sound1.Put(PdfName.R, new PdfNumber(32117)); sound1.Put(PdfName.E, PdfName.Signed); sound1.Put(PdfName.B, new PdfNumber(16)); sound1.Put(PdfName.C, new PdfNumber(1)); PdfAction action = PdfAction.CreateSound(sound1); action.Next(PdfAction.CreateJavaScript("this.setPageRotations(0,2,90)")); action.Next(PdfAction.CreateJavaScript("this.setPageRotations(0,2,180)")); document.GetPage(2).SetAdditionalAction(PdfName.O, action); document.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + fileName, sourceFolder + "cmp_" + fileName, destinationFolder, "diff_")); }
public virtual void CreatePdf(String dest) { PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); Document document = new Document(pdf); PdfAction action = PdfAction.CreateJavaScript("app.alert('Boo');"); action.Next(PdfAction.CreateGoToR(new FileInfo(C06E04_TOC_GoToNamed.DEST).Name, 1, true)); Link link = new Link("here", action); Paragraph p = new Paragraph().Add("Click ").Add(link.SetFontColor(ColorConstants.BLUE)).Add(" if you want to be scared." ); document.Add(p); document.Close(); }