> 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/android/changelogs/version-7/v7-1-0.md).

# Version 7.1.0 Changelog (February 26, 2020)

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

Version: 7.1.0.74186

Release Date: February 26, 2020

## New features

* New built-in support for **PPT** format, can now view and convert these files to pdf
* Adds support for converting [**XOD**](/web/custom-server/custom-server-deployment.md#overview) (a web-optimized file format used by some deployments of [WebViewer](/web/get-started/guides.md)) and [**XPS**](https://en.wikipedia.org/wiki/Open_XML_Paper_Specification) formats to PDF when using [PdfViewCtrlTabHostFragment](/android/open-save-document/open.md) or [DocumentActivity](/android/open-save-document/open.md)
* Adds support for viewing Viewer Optimized PDF files, see guide: [Viewer Optimized PDF](/android/optimization/viewer-optimized.md)
* Adds new fill and sign toolbar with 2 new utility FreeText tools: [`FreeTextSpacingCreate`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/tools/FreeTextSpacingCreate.html) and [`FreeTextDateCreate`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/tools/FreeTextDateCreate.html), as well as 3 stamp utility tools: check mark, cross mark and dot

| Text spacing tool                                                                                                                                                                                                                              | Text date tool                                                                                                                                                                                                                                 | Stamp tools                                                                                                                                                                                                                                    |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-b08329ede3e25d7418ac1d0b864c5a5083e17832%2F84ff8e547f4ddd7310e95bedc50e2c59aa877d68-481x858.gif?alt=media) | ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-0aed5d0610cb7dbd7a992b7df96420fcef1cf5ae%2Fc47fce6d47432b66e73efa4e9431d6df47a48c7a-481x858.gif?alt=media) | ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-d7b217c336743cca687de2730895b0836d37e3c1%2F96ffe2952108abbda8a62b6120142b0bf81db089-481x858.gif?alt=media) |

* See cross-platform changelog here: [7.1.0](/core/changelogs/version-7/7-1-0.md)

## Fixed

* Fixed issue where Toolbar menu editor did not work with `ViewerConfig.documentEditingEnabled` flag
* Optimized ink drawing performance for pressure sensitive mode
* Fixed issue where drawing dots in ink pressure sensitive mode was difficult
* Fixed issue where eraser would erase larger area in ink pressure sensitive mode
* Fixed issue where fonts would not be applied to form field widgets in some situations
* Fixed issue where `adjustResize` Activity flag would not work correctly with form filling tool
* Fixed issue where sticky note appearance when selected is incorrect when importing from XFDF in some situations

## APIs

### Apryse package

#### PDFViewCtrl.HTTPRequestOptions

*new* method: `void skipByteRangeTest(boolean)`

*new* method: `void useRemoteFileSize(long)`

#### PDFViewCtrl

*new* method: `void setRequiredFieldBorderColor(ColorPt)`

#### Ink

*new* method: `void getHighlightIntent()`

*new* method: `void setHighlightIntent(boolean)`

### PDFViewCtrlTools package

#### ToolStyleConfig

*new* method: `String getCustomDateFormat(Context, int, String)`

*new* method: `String getDateFormatKey(int, String)`

*new* method: `String getDefaultDateFormat(Context, int)`

*new* method: `String getDefaultDateFormat(Context, int, int)`

#### ViewerConfig.Builder

*new* method: `Builder showFillAndSignToolbarOption(boolean)`

#### AnnotationToolbar

*new* static final field: `int START_MODE_FILL_AND_SIGN_TOOLBAR`

*new* method: `void showFormToolbar(ToolMode, int)`

*removed* method: `void showFormToolbar(ToolMode)`

#### FormToolbar

*new* static final field: `int START_MODE_FILL_AND_SIGN_TOOLBAR`

*new* static final field: `int START_MODE_PREPARE_FORM_TOOLBAR`

*new* method: `void setMode(int)`

#### SimpleDateTimePickerFragment

*new* static final field: `String BUNDLE_ALLOW_ENTER_VALUE`

*new* static method: `SimpleDateTimePickerFragment newInstance(int, boolean)`

#### AnnotStyle

*new* static final field: `int CUSTOM_ANNOT_TYPE_FREE_TEXT_DATE`

*new* static final field: `int CUSTOM_ANNOT_TYPE_FREE_TEXT_SPACING`

*new* method: `String getDateFormat()`

*new* method: `float getLetterSpacing()`

*new* method: `boolean isDateFreeText()`

*new* method: `boolean isFreeTextGroup()`

*new* static method: `boolean isFreeTextGroup(int)`

*new* method: `boolean isSpacingFreeText()`

*new* method: `void setDateFormat(String)`

*new* method: `void setLetterSpacing(float)`

#### OnAnnotStyleChangeListener

*new* method: `void onChangeDateFormat(String)`

#### AnnotEdit

*new* method: `void enterDate()`

*new* method: `void onChangeDateFormat(String)`

#### FreeHighlighterCreate

*removed* static final field: `float BLEND_OPACITY`

#### FreeTextDateCreate

*new* class: `FreeTextDateCreate`

*new* constructor: `FreeTextDateCreate(PDFViewCtrl)`

*new* method: `int getCreateAnnotType()`

*new* method: `ToolModeBase getToolMode()`

*new* method: `boolean onUp(MotionEvent, PriorEventMode)`

*new* method: `void setupAnnotProperty(AnnotStyle)`

#### FreeTextSpacingCreate

*new* class: `FreeTextSpacingCreate`

*new* constructor: `FreeTextSpacingCreate(PDFViewCtrl)`

*new* method: `int getCreateAnnotType()`

*new* method: `ToolModeBase getToolMode()`

#### RubberStampCreate

*new* method: `void setStampName(String)`

#### ToolMode

*new* static final field: `ToolMode FREE_TEXT_DATE_CREATE`

*new* static final field: `ToolMode FREE_TEXT_SPACING_CREATE`

#### AnalyticsHandlerAdapter

*new* static final field: `int FILL_AND_SIGN_TOOL_CHECKMARK`

*new* static final field: `int FILL_AND_SIGN_TOOL_CROSS`

*new* static final field: `int FILL_AND_SIGN_TOOL_DATE`

*new* static final field: `int FILL_AND_SIGN_TOOL_DOT`

*new* static final field: `int FILL_AND_SIGN_TOOL_TEXT`

#### AnnotUtils

*new* static field: `String KEY_FreeTextDate`

*new* static field: `String KEY_FreeTextFill`

*new* static method: `void applyCustomFreeTextAppearance(PDFViewCtrl, AutoScrollEditText, Annot, int)`

*new* static method: `void createCustomFreeTextAppearance(View, PDFViewCtrl, Annot, int, Rect)`

*new* static method: `String getCurrentTime(String)`

*new* static method: `boolean isFreeTextDate(Annot)`

*new* static method: `boolean isFreeTextSpacing(Annot)`

*removed* static method: `Bitmap createTrimmedBitmap(Bitmap)`

*removed* static method: `Rect trimWebView(WebView)`

#### Constants

*new* static final field: `String[] FILE_NAME_EXTENSIONS_OTHERS`

#### Utils

*new* static method: `boolean isConvertibleFormat(String)`

#### AnnotDrawingView

*removed* method: `void removeCtrlPts()`

*removed* method: `void setCtrlPts(PointF[])`

*removed* method: `void setHasPermission(boolean)`

#### AnnotTextView

*removed* class: `AnnotTextView`

#### AnnotView

*new* method: `void onCanvasSizeChanged()`

*new* method: `void prepareRemoval()`

*new* method: `void setPage(int)`

*removed* method: `boolean hasIcon()`

*modified* class: `AnnotView`

|       | Declaration                                                                         |
| ----- | ----------------------------------------------------------------------------------- |
| From: | public class AnnotView extends RelativeLayout                                       |
| To:   | public class AnnotView extends RelativeLayout implements OnCanvasSizeChangeListener |

*modified* method: `AnnotTextView getTextView()`

|       | Declaration                             |
| ----- | --------------------------------------- |
| From: | public AnnotTextView getTextView()      |
| To:   | public AutoScrollEditText getTextView() |

#### AnnotViewImpl

*new* method: `void loadFont()`

#### AutoScrollEditText

*new* method: `void addLetterSpacingHandle()`

*new* method: `Rect getBoundingRect()`

*new* method: `boolean getDynamicLetterSpacingEnabled()`

*new* method: `boolean isSuggestionsEnabled()`

*new* method: `boolean onTouchEvent(MotionEvent)`

*new* method: `void removeSpacingHandle()`

*new* method: `void setAnnotStyle(AnnotViewImpl)`

*new* method: `void setAutoScrollEditTextSpacingListener(AutoScrollEditTextSpacingListener)`

*new* method: `void setZoom(double)`

*new* method: `void updateColor(int)`

*new* method: `void updateFillColor(int)`

*new* method: `void updateFont(FontResource)`

*new* method: `void updateOpacity(float)`

*new* method: `void updateTextColor(int)`

*new* method: `void updateTextSize(float)`

*new* method: `void updateThickness(float)`

#### AutoScrollEditTextSpacingListener

*new* interface: `AutoScrollEditTextSpacingListener`

#### SelectionHandleView

*new* method: `void setCustomSize(int)`

*new* method: `void setImageResource(int)`

### pdfnet-demo-utils package

#### FileEntity

*new* constructor: `FileEntity(String, String, String, int, long, String, long)`

*new* method: `long getSize()`

*removed* constructor: `FileEntity(String, String, String, int, long, String)`

#### FileItem

*new* constructor: `FileItem(String, String, String, int, long, String, long, boolean, boolean)`

*new* final field: `long size`

*removed* constructor: `FileItem(String, String, String, int, long, String, boolean, boolean)`

#### FileHeader

*removed* class: `FileHeader`

#### ThumbnailWorker

*new* method: `void tryLoadImageWithUuid(int, String, String, String, ImageViewTopCrop)`

*removed* method: `void tryLoadImageWithUuid(int, String, String, ImageViewTopCrop)`

### pdftron-collab-wvs package

#### BlackBoxConnection

*new* method: `boolean isStarted()`


---

# 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/android/changelogs/version-7/v7-1-0.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.
