> 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/changelogs/version-6/v6-10-3-70547.md).

# Version 6.10.3.70547 Changelog (April 30th, 2019)

World's #1 PDF SDK Library for Web, Mobile, Server, Desktop

* Version: 6.10.3.70547
* Release Date: April 30th, 2019
* Built with Xcode 10.1 (10B61)

## New

* The [`PTPDFViewCtrl`](https://sdk.apryse.com/api/ios/Classes/PTPDFViewCtrl.html) and [`PTDocumentViewController`](https://sdk.apryse.com/api/ios/Classes/PTDocumentViewController.html) classes are now able to convert Office and image on-the-fly. Pages in the document are rendered as soon as they are converted, as opposed to waiting for the entire document to be converted before seeing any content. For the `PTDocumentViewController` class, streaming-conversion is used when opening any compatible file with the [`openDocumentWithURL:`](https://sdk.apryse.com/api/ios/Classes/PTDocumentViewController.html#/c:objc\(cs\)PTDocumentViewController\(im\)openDocumentWithURL:) method. To open a file with the `PTPDFViewCtrl` class, the [`openUniversalDocumentWithConversion:`](https://sdk.apryse.com/api/ios/Classes/PTPDFViewCtrl.html#/c:objc\(cs\)PTPDFViewCtrl\(im\)openUniversalDocumentWithConversion:) method is used as follows:

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

```swift
// Open a .docx file.
let conversion: PTDocumentConversion = PTConvert.streamingPDFConversion(docxFilePath, options: nil)
pdfViewCtrl.openUniversalDocument(with: conversion)
```

{% endcode %}
{% endtab %}

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

```objc
// Open a .docx file.
PTDocumentConversion *conversion = [PTConvert StreamingPDFConversion:docxFilePath options:nil];
[pdfViewCtrl openUniversalDocumentWithConversion:conversion];
```

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

* This release adds an image stamper tool, [`PTImageStampCreate`](https://sdk.apryse.com/api/ios/Classes/PTImageStampCreate.html), to add images to a document. The tool allows the user to select an image from the device's photo library and add the image as an annotation.
* This release also introduces end-point snapping for the measurement tools, [`PTRulerCreate`](https://sdk.apryse.com/api/ios/Classes/PTRulerCreate.html), [`PTPerimeterCreate`](https://sdk.apryse.com/api/ios/Classes/PTPerimeterCreate.html), and [`PTAreaCreate`](https://sdk.apryse.com/api/ios/Classes/PTAreaCreate.html). For more information, please see the [measurement tools guide](/ios/measurement/measurement-tools-i.md#point-snapping).
* It is now possible to override localized string definitions in the `Tools.framework` bundle by adding a `PTLocaliable.strings` file to the main (app) bundle. When this file is present it will be used to search for string definitions before the Tools-internal is used. This allows for new language translations to be added without needing to recompile the Tools framework. Please see our [localization guide](/ios/viewer/localization.md) for more information.
* This release adds the following Showcase samples:
  * Measurement tools
  * File comparison
  * Annotation extraction
  * Form extraction
  * Image stamping
* The scroll direction of the [`PTReflowViewController`](https://sdk.apryse.com/api/ios/Classes/PTReflowViewController.html) class can now be controlled via its [`scrollDirection`](https://sdk.apryse.com/api/ios/Classes/PTReflowViewController.html#/c:objc\(cs\)PTReflowViewController\(py\)scrollingDirection) property. This defaults to horizontal scrolling/paging, but can be changed to allow scrolling vertically to change pages.

## Bug fixes

* A number of miscellaneous bug fixes.

## API diff

* The `PTPDFViewCtrl` class now posts notifications for streaming download and conversion events. When an http(s) PDF file is downloaded with [`OpenUrlAsync:`](https://sdk.apryse.com/api/ios/Classes/PTPDFViewCtrl.html#/c:objc\(cs\)PTPDFViewCtrl\(im\)OpenUrlAsync:) or a universal document is converted with the streaming [`openUniversalDocumentWithConversion:`](https://sdk.apryse.com/api/ios/Classes/PTPDFViewCtrl.html#/c:objc\(cs\)PTPDFViewCtrl\(im\)openUniversalDocumentWithConversion:) method, notifications will be posted for every download/conversion event. These events were already provided via the [`PTPDFViewCtrlDelegate`](https://sdk.apryse.com/api/ios/Protocols/PTPDFViewCtrlDelegate.html) protocol method [`pdfViewCtrl:downloadEventType:pageNumber:`](https://sdk.apryse.com/api/ios/Protocols/PTPDFViewCtrlDelegate.html#/c:objc\(pl\)PTPDFViewCtrlDelegate\(im\)pdfViewCtrl:downloadEventType:pageNumber:).


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.apryse.com/ios/changelogs/version-6/v6-10-3-70547.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
