PDFRedact

Sample C# code for using Apryse SDK to remove potentially sensitive content within PDF documents. Using 'pdftron.PDF.Redactor' makes sure that if a portion of an image, text, or vector graphics is contained in a redaction region, that portion is destroyed and is not simply hidden with clipping or image masks. Learn more about our UWP SDK.

1//
2// Copyright (c) 2001-2020 by PDFTron Systems Inc. All Rights Reserved.
3//
4
5using System;
6using System.Collections.Generic;
7using System.IO;
8using System.Threading.Tasks;
9using Windows.Foundation;
10
11using pdftron.PDF;
12using pdftron.SDF;
13
14using PDFNetUniversalSamples.ViewModels;
15
16namespace PDFNetSamples
17{
18 public sealed class PDFRedactTest : Sample
19 {
20 public PDFRedactTest() :
21 base("PDFRedact", "PDF Redactor is a separately licensable Add-on that offers options to remove (not just covering or obscuring) content within a region of PDF. ")
22 {
23 }
24
25 public override IAsyncAction RunAsync()
26 {
27 return Task.Run(new System.Action(async () => {
28 WriteLine("--------------------------------");
29 WriteLine("Starting PDFRedact Test...");
30 WriteLine("--------------------------------\n");
31
32 try
33 {
34 IList<RedactorRedaction> rarr = new List<RedactorRedaction>();
35 rarr.Add(new RedactorRedaction(1, new pdftron.PDF.Rect(0, 0, 600, 600), true, "Top Secret"));
36 rarr.Add(new RedactorRedaction(2, new pdftron.PDF.Rect(30, 30, 550, 550), true, "Top Secret"));
37 rarr.Add(new RedactorRedaction(2, new pdftron.PDF.Rect(100, 100, 200, 200), false, "bar"));
38 rarr.Add(new RedactorRedaction(2, new pdftron.PDF.Rect(300, 300, 400, 400), false, ""));
39 rarr.Add(new RedactorRedaction(2, new pdftron.PDF.Rect(500, 500, 600, 600), false, ""));
40 rarr.Add(new RedactorRedaction(3, new pdftron.PDF.Rect(0, 0, 700, 20), false, ""));
41 string output_file_path = Path.Combine(OutputPath, "redacted.pdf");
42 await RedactAsync(Path.Combine(InputPath, "newsletter.pdf"), output_file_path, rarr);
43 }
44 catch (Exception e)
45 {
46 WriteLine(e.Message);
47 }
48
49 WriteLine("\n--------------------------------");
50 WriteLine("Done PDFRedact Test.");
51 WriteLine("--------------------------------\n");
52 })).AsAsyncAction();
53 }
54
55 async Task RedactAsync(string input, string output, IList<RedactorRedaction> rarr)
56 {
57 using (PDFDoc doc = new PDFDoc(input))
58 {
59 doc.InitSecurityHandler();
60
61 RedactorAppearance app = new RedactorAppearance();
62 //app.Font = new System.Drawing.Font("Arial", 12);
63 app.PositiveOverlayColor = Windows.UI.Colors.Red;
64 app.NegativeOverlayColor = Windows.UI.Colors.WhiteSmoke;
65
66 string output_file_path = Path.Combine(OutputPath, "redacted.pdf");
67 Redactor.Redact(doc, rarr, app);
68 await doc.SaveAsync(output_file_path, SDFDocSaveOptions.e_linearized);
69 WriteLine("Result of redaction saved in " + output_file_path);
70 await AddFileToOutputList(output_file_path).ConfigureAwait(false);
71 }
72 }
73 }
74}

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales