How to Flatten PDFs in Objective-C

By ComPDFKit | 2023 Feb 22
Objective-C Annotations

You may notice the flatten feature when using a PDF processor. However, it is difficult to tell what this function is used for from the name. So in this blog, we will introduce the flatten feature and help you make better use of it with our ComPDFKit.



What Is Flattening


A PDF document consists of several layers, each of which can contain separate elements. The layers might include annotations, text, images, and fillable forms. Removes the transparency and all interactive elements, combines all of the document’s elements into a single layer, which is the process of flattening a PDF.


There are some changes after flattening PDFs:


        - The interactions of the fillable forms are no longer fillable, such as push button, check box, radio button, text field, and more.

         - Annotations are converted to native texts to remove transparency effects.

         - Multiple layers like text, images, and page numbers are merged into a single layer.


The flatten feature is frequently used to lock in the content of annotations and forms to prevent anyone from changing the information after a user completes the content.



Why Flatten PDFs


We already know the meaning of flattening, but why should we use this function? Hope you can find the answer here.




A flattened PDF file is more secure than a normal PDF file as it’s not so easy to change annotations and forms in the flattened PDF file. It can be extremely dangerous if PDF forms that contain important information can be changed arbitrarily, especially when it comes to the government, financial industry, legal industry, etc. So you’d better flatten your PDF files to add protection, preventing others from easily altering the information to commit fraud.




The speed of opening a PDF file is related to the information it contains. The more information a document contains, the longer it takes to render and view it. Flattening can simplify the file and reduce its size, so the file can be rendered quickly and to be viewed and sent easily. This allows users to spend less time sharing a file even if it is large-sized. 




PDF documents often contain transparent layers or hidden data that printers can’t detect. In such a case, printers will only print the visible layer. Flattening PDFs will make a printer read the transparent layers and hidden data clearly, therefore being able to print without any problems.




It is normal that paper documents are gradually worn out over time. So are the PDF documents. An overused PDF file that will start to crash or show signs of corruption. Flattening streamlines the document to basic PDF specifications, improving the usability of PDF files.



How to Flatten PDFs


Annotation flattening refers to the operation that changes annotations into a static area that is part of the PDF document, just like the other text and images in the document. When flattening an annotation, the annotation is removed from the document, while its visual representation is kept intact. A flattened annotation is visible but is non-editable by others.


Annotations in a PDF document can be flattened in the ComPDFKit PDF SDK by saving the document and choosing the flatten mode.


NSURL *url = [NSURL fileURLWithPath:pdfPath];
CPDFDocument *document = [[[CPDFDocument alloc] initWithURL:url] autorelease];

NSURL *surl = [NSURL fileURLWithPath:savePath];
[document writeFlattenToURL:surl];


PDF Form flattening works the same as annotation flattening.





Flattening PDFs is an effective method to protect information within PDF documents, so that your PDF files cannot be modified easily by others. We also provide other  ways to protect your files, like setting password, adding watermark, redaction, etc.