> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/ios/optimization/viewer-optimized.md).

# Optimizing PDF files on iOS for fast viewing

Create viewer optimized PDFs with ease using our comprehensive guide. Learn how to compress, optimize, and open these files for fast viewing. Optimize your PDFs today! The Apryse iOS SDK streamlines s

Viewer optimized PDF is a unique way of near-instantaneous loading and viewing of remotely stored PDFs regardless of their size or complexity. A Viewer optimized file is an optimized PDF document that allows the Viewer to display a document preview even before all client-side components are loaded. In the past, a Viewer could stream arbitrary large documents for viewing optimization using standard [PDF linearization](https://apryse.com/blog/pdf-format/what-is-pdf-linearization), but we have extended this concept to support fast viewing of complex pages which are slow to render as well.

## Create a viewer optimized PDF

To optimize a PDF, use the `SaveViewerOptimized` function with default or custom settings on desktop or server.

{% tabs %}
{% tab title="Obj-C" %}
{% code lineNumbers="true" %}

```objc
PTPDFDoc *doc = [[PTPDFDoc alloc] initWithFilepath: filename];

// Options for SaveViewerOptimized
PTViewerOptimizedOptions *options = [[PTViewerOptimizedOptions alloc] init];

// A number from 0 (include all thumbnails) to 100
// (include only the first thumbnail). The default value is 50.
[options SetThumbnailRenderingThreshold: 0];

// The maximum allowed length for the thumbnail's height/width.
// The default thumbnail size is 1024.
[options SetThumbnailSize: 1500];

// Optimize pdf
[doc SaveViewerOptimized: output opts: options];
```

{% endcode %}
{% endtab %}
{% endtabs %}

[Compress & optimize PDF files](/ios/get-started/samples.md#optimizer) Full sample code shows how to use `SaveViewerOptimized` to embed thumbnails with a PDF file which will enable fast rendering in the viewer.

## Create a viewer optimized PDF using DocPub

[DocPub](/cli/docpub/docpub.md) is a command-line utility which provides an alternative way of generating viewer optimized PDF files.

To create a viewer optimized PDF, use the command `docpub -f pdf --viewer_optimized file.pdf`.

{% tabs %}
{% tab title="Shell" %}
{% code lineNumbers="true" %}

```sh
./docpub -f pdf --viewer_optimized demo.pdf --fname demo.optimized.pdf
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Open a viewer optimized PDF

The opening of the optimized PDF is no different than opening regular PDF files. By default, the Viewer is able to recognize a PDF that is Viewer optimized and will utilize this enhancement.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.apryse.com/ios/optimization/viewer-optimized.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
