Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void RemoveDocumentJavascript(Stream inputStream, Stream outputStream)
- {
- PdfFixedDocument doc = new PdfFixedDocument(inputStream);
- // Remove document level JS code
- doc.JavaScriptBlocks.Clear();
- RemoveDocumentActions(doc);
- // Remove JavaScript from annotations.
- for (int i = 0; i < doc.Pages.Count; i++)
- {
- for (int j = 0; j < doc.Pages[i].Annotations.Count; j++)
- {
- RemoveAnnotationActions(doc.Pages[i].Annotations[j]);
- }
- }
- // Remove Javascript from fields
- for (int i = 0; i < doc.Form.Fields.Count; i++)
- {
- RemoveFieldActions(doc.Form.Fields[i]);
- }
- doc.Save(outputStream);
- }
- private void RemoveDocumentActions(PdfFixedDocument doc)
- {
- if (doc.OpenAction is PdfJavaScriptAction)
- {
- doc.OpenAction = null;
- }
- if (doc.BeforeCloseAction is PdfJavaScriptAction)
- {
- doc.BeforeCloseAction = null;
- }
- if (doc.BeforeSaveAction is PdfJavaScriptAction)
- {
- doc.BeforeSaveAction = null;
- }
- if (doc.AfterSaveAction is PdfJavaScriptAction)
- {
- doc.AfterSaveAction = null;
- }
- if (doc.BeforeSaveAction is PdfJavaScriptAction)
- {
- doc.BeforeSaveAction = null;
- }
- if (doc.AfterSaveAction is PdfJavaScriptAction)
- {
- doc.AfterSaveAction = null;
- }
- if (doc.BeforePrintAction is PdfJavaScriptAction)
- {
- doc.BeforePrintAction = null;
- }
- if (doc.AfterPrintAction is PdfJavaScriptAction)
- {
- doc.AfterPrintAction = null;
- }
- }
- private void RemoveAnnotationActions(PdfAnnotation annotation)
- {
- if (annotation.PageOpen is PdfJavaScriptAction)
- {
- annotation.PageOpen = null;
- }
- if (annotation.PageClose is PdfJavaScriptAction)
- {
- annotation.PageClose = null;
- }
- if (annotation.PageVisible is PdfJavaScriptAction)
- {
- annotation.PageVisible = null;
- }
- if (annotation.PageInvisible is PdfJavaScriptAction)
- {
- annotation.PageInvisible = null;
- }
- if (annotation.MouseDown is PdfJavaScriptAction)
- {
- annotation.MouseDown = null;
- }
- if (annotation.MouseUp is PdfJavaScriptAction)
- {
- annotation.MouseUp = null;
- }
- if (annotation.MouseEnter is PdfJavaScriptAction)
- {
- annotation.MouseEnter = null;
- }
- if (annotation.MouseLeave is PdfJavaScriptAction)
- {
- annotation.MouseLeave = null;
- }
- PdfLinkAnnotation link = annotation as PdfLinkAnnotation;
- if ((link != null) && (link.Action is PdfJavaScriptAction))
- {
- link.Action = null;
- }
- }
- private void RemoveFieldActions(PdfField field)
- {
- field.CalculateAction = null;
- field.FormatAction = null;
- field.KeyPressAction = null;
- field.ValidateAction = null;
- for (int i = 0; i < field.Widgets.Count; i++)
- {
- if (field.Widgets[i].Focus is PdfJavaScriptAction)
- {
- field.Widgets[i].Focus = null;
- }
- if (field.Widgets[i].Blur is PdfJavaScriptAction)
- {
- field.Widgets[i].Blur = null;
- }
- }
- }
Add Comment
Please, Sign In to add comment