// ---------------------------------------------------------------------------
/**
* 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))
{
// Get the writer (to add actions and annotations)
PdfWriter writer = stamper.Writer;
PdfAction action = PdfAction.GotoLocalPage(2,
new PdfDestination(PdfDestination.FIT), writer
);
writer.SetOpenAction(action);
action = PdfAction.JavaScript(
"app.alert('Think before you print');", writer
);
writer.SetAdditionalAction(PdfWriter.WILL_PRINT, action);
action = PdfAction.JavaScript(
"app.alert('Think again next time!');", writer
);
writer.SetAdditionalAction(PdfWriter.DID_PRINT, action);
action = PdfAction.JavaScript(
"app.alert('We hope you enjoy the festival');", writer
);
writer.SetAdditionalAction(PdfWriter.DOCUMENT_CLOSE, action);
action = PdfAction.JavaScript(
"app.alert('This day is reserved for people with an accreditation "
+ "or an invitation.');",
writer
);
stamper.SetPageAction(PdfWriter.PAGE_OPEN, action, 1);
action = PdfAction.JavaScript(
"app.alert('You can buy tickets for all the other days');", writer
);
stamper.SetPageAction(PdfWriter.PAGE_CLOSE, action, 1);
}
return ms.ToArray();
}
}