When multiple users are working on a single PDF file, you might need to hide your comments (annotations) from others, ignore comments already present in the PDF file while you work on it, print only specific comments from the file, and so on.
Syncfusion’s WPF PDF Viewer control allows you to hide comments in a PDF file without permanently deleting them. This can be done by keeping the comments in the hidden state. You can hide or show annotations using the annotation’s name.
You can hide all the comments at once, rather than hiding each one individually, or hide a specific set of comments. You can also save, print, export, and import annotations in the hidden state.
Let’s see how to hide and show annotations based on the author’s name in your PDF using the WPF PDF Viewer control.
Getting started
First things first:
- Create a new WPF project and install the Syncfusion WPF PDF Viewer NuGet package in it.
- Then, include the following code in your XAML page to add the WPF PDF Viewer as a child to the window.
<Window x:Class="PdfViewer.MainWindow" xmlns:pdfviewer="clr-namespace:Syncfusion.Windows.PdfViewer;assembly=Syncfusion.PdfViewer.WPF"> <pdfviewer:PdfViewerControl x:Name="pdfViewer"/> </Window>
How to hide other authors’ annotations
Let’s see how to hide the annotations of other users. By default, while creating annotations using the WPF PDF Viewer, the author’s name will be set to the username information of the user who is currently logged onto the system.
If the user wants, they can override the default author’s name for the annotations using the annotation settings.
Based on the author’s name, we can easily distinguish and handle (hide or show) their annotations in a PDF document.
Hiding the annotations
Step 1: First, access the LoadedDocument property of the WPF PDF Viewer containing the details of the annotation.
//Access the LoadedDocument property. PdfLoadedDocument pdfLoadedDocument = pdfViewer.LoadedDocument;
Step 2: Then, iterate through the document pages and access the annotations in the pages.
//Iterate through the pages to check for the annotations. for (int i = 0; i < pdfLoadedDocument.Pages.Count; i++) { //Iterate through the annotations in the page. for (int j = 0; j < pdfLoadedDocument.Pages[i].Annotations.Count; j++) { var annotation = pdfLoadedDocument.Pages[i].Annotations[j]; //Perform your action. } }
Step 3: Next, check the author’s name in the annotation data to identify the annotations included by other authors. If the author’s name doesn’t match the name of the current author, obtain the annotation’s name and pass it to the HideAnnotation function. This HideAnnotation function hides the annotation based on the annotation’s name, which is passed as a parameter.
For more details, refer to the Hiding an annotation in WPF PDF Viewer documentation.
Refer to the following code example.
//Identify whether the annotation was created by the given author. if (annotation.Author == authorName) { //Hide the annotation. pdfViewer.HideAnnotation(annotation.Name); }
Note: Before calling the HideAnnotation method, make sure that the annotation is set with a unique name to avoid conflicts in identifying the required annotation. Refer to How to get and set the name of an annotation for more details.
Show hidden annotation
Similarly, you can show the hidden annotations using the ShowAnnotation method.
Refer to the following code example.
//Identify whether the annotation was created by the given author. if (annotation.Author == authorName) { //Show the annotation. pdfViewer.ShowAnnotation(annotation.Name); }
Note: For more details, refer to the Show annotation in WPF PDF Viewer documentation.
GitHub reference
Also, check out the example to show and hide annotations based on author in a PDF using the WPF PDF Viewer.
Conclusion
Thank you for reading this blog. We have seen how to hide and show annotations based on the author in a PDF file using the Syncfusion WPF PDF Viewer control. This control allows you to highlight, underline, and strikethrough text; add sticky notes and stamps; draw shapes; and more. Try it in your app and let us know what you think in the comment section below.
Our PDF Viewer is also available in our Blazor, Flutter, ASP.NET (Core, MVC, WebForms), JavaScript, Angular, React, Vue, Xamarin, UWP, WinForms, and WPF platforms.
Also, you can contact us through our support forum, support portal, or feedback portal. We are always happy to assist you!
Related blogs
- Create an Interactive BPMN Editor Using the WPF Diagram Control
- Save Memory by Exporting and Importing Annotations in WPF PDF Viewer
- How to Redact Confidential Data Permanently from PDF Files in WPF
- How to Load Appointments on Demand via Web Services in WPF Scheduler