# HOOPS Publish 2019

## Web Format Export

We added a new feature for converting a PDF to an HTML document, which includes two new API functions: - \ref `A3DConvertPDFToWebFormat()` to convert from an existing file. - \ref `A3DPDFDocumentExportToWebFormat()` to convert from an \ref `A3DPDFDocument` instance. The HTML document can be viewed online or offline from any compatible web browser. All the content of the 3D PDF document such as 3D annotations, widgets, controls and the various types of interactivity are managed and maintained in the resulting HTML document. This function is available as part of HOOPS Publish Advanced module. Please see the Programming Guide for more information.

## New PDF Security Features

We added a new security-related function: \ref `A3DPDFDocumentSetPasswordSecurity()`. This function can secure a PDF Document by requiring a password for reading it. In addition, PDF documents can be further secured by defining an owner password and a permissions field that give the document author the ability to control whether the document may be edited, saved, copied or printed. As part of this change, the functions \ref `A3DPDFDocumentSetPassword()` and \ref `A3DPDFDocumentSetDocumentPermissions()` are now *deprecated*. Please see the Programming Guide for more information.

## Graphics Driver Selection

By default, HOOPS Publish tries selecting the graphics driver according to these priorities: - DirectX 11, then 9. - Then OpenGL 2, then 1. We added a new environment variable named `A3DPOSTERDRV` which can be set to one of: - `DX11` - `DX9` - `OGL2` - `OGL1`

## Text Display Width Calculation

We added a new function named \ref `A3DPDFTextGetWidth()`. It calculates the length of a string. It simplifies text insertion depending on an expected alignment.

## Fixed Bugs

Issue Number | Description
--- | ---
31589 | Fix PMI cross highlight issue when PMI is selected from a scroll table
32922 | Snapshots generation time improvement (call to API \ref `A3DPDFMakeSnapshotFromModelFile()`)

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Exchange in your own language, or choose a sample question below to start a conversation:

What is HOOPS Exchange?
What are the latest release notes for HOOPS Exchange?
How do I start evaluating HOOPS Exchange?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...