private void TimestampPdf() { using (var pdfReader = new PdfReader(this.PdfProcessingPath)) { using (var pdfStamper = new PdfStamper(pdfReader, new FileStream(this.PdfPath, FileMode.Create))) { var parentField = PdfFormField.CreateTextField(pdfStamper.Writer, false, false, 0); parentField.FieldName = FieldName; var lineSeparator = new LineSeparator(); for (var pageNumber = 1; pageNumber <= pdfReader.NumberOfPages; pageNumber++) { var pdfContentByte = pdfStamper.GetOverContent(pageNumber); TextField textField = null; if (this.Orientation == PdfOrientation.Portrait) { lineSeparator.DrawLine(pdfContentByte, PortraitFieldLeftX, PortraitFieldRightX, PortraitFieldUnderlineHeight); textField = new TextField(pdfStamper.Writer, new Rectangle(PortraitFieldLeftX, PortraitFieldLeftY, PortraitFieldRightX, PortraitFieldRightY), null); textField.Visibility = TextField.HIDDEN_BUT_PRINTABLE; } var childField = textField.GetTextField(); parentField.AddKid(childField); childField.PlaceInPage = pageNumber; } pdfStamper.AddAnnotation(parentField, 1); var pdfAction = PdfAction.JavaScript(LoadTimestampScript(), pdfStamper.Writer); pdfStamper.Writer.SetAdditionalAction(PdfWriter.WILL_PRINT, pdfAction); } } }