> 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/core/accessibility/convert.md).

# Convert PDF to PDF/UA on Server/Desktop

Convert a PDF document to PDF/UA-1 format with ease. Learn about the key functions of PDF/UA for enhanced accessibility. Ideal for creating inclusive digital documents. The Apryse Server SDK streamlin

{% hint style="info" %}
**Requirements**

*These packages are required to use these features in production. Trial keys have unlimited access to all features*

<a href="https://apryse.com/capabilities#Accessibility" class="button primary">Package: Accessibility</a><a href="/core/learn-more/modules.md#data-extraction-module" class="button primary">Module: Data Extraction</a><a href="https://showcase.apryse.com/pdfua-auto-tagging" class="button primary">Live demo</a>
{% endhint %}

## What Does Conversion to PDF/UA Do?

* Ensures compliance with PDF/UA (ISO 14289-1).
* AutoTagging automatically applies structure to meet accessibility guidelines.
* Embeds fonts and updates metadata for compliance.

## What is AutoTagging?

AutoTagging is a feature in the Apryse SDK that automatically detects and applies accessibility tags to a PDF. It eliminates the need for manual intervention, ensuring PDFs are screen-reader-friendly and PDF/UA-compliant.

{% hint style="info" %}
**Important**

The AutoTagging feature requires PDFs with extractable text; scanned or image‑only PDFs result in malformed files and missing content. If required glyphs are missing from an embedded font, the system applies font substitution, which may affect visual output but does not fail the operation.
{% endhint %}

{% hint style="info" %}
**Trial mode page limit**

When in trial mode, output is limited to 100 pages, and a random evaluation page is inserted in the output content. Once licensed, there is no page limit and the demo page will no longer be inserted.
{% endhint %}

## How AutoTagging Works

1. Scans PDFs → Detects headings, lists, tables, images, and links.
2. Applies appropriate tags → Ensures proper semantic structure.
3. Maintains document integrity → Keeps formatting unchanged while making content accessible.
4. Enhances assistive technology support → Ensures compatibility with screen readers.

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

```csharp
PDFUAConformance pdf_ua = new PDFUAConformance();
pdf_ua.AutoConvert(inputFileName, outputFileName);
```

{% endcode %}
{% endtab %}

{% tab title="C++" %}
{% code lineNumbers="true" %}

```cpp
PDFUAConformance pdf_ua;
pdf_ua.AutoConvert(input_filename, output_filename);
```

{% endcode %}
{% endtab %}

{% tab title="Go" %}
{% code lineNumbers="true" %}

```go
pdfua := NewPDFUAConformance()
pdfua.AutoConvert(inputFileName, outputFileName)
```

{% endcode %}
{% endtab %}

{% tab title="Java" %}
{% code lineNumbers="true" %}

```java
PDFUAConformance pdf_ua = new PDFUAConformance();
pdf_ua.autoConvert(input_filename, output_filename);
```

{% endcode %}
{% endtab %}

{% tab title="JavaScript" %}
{% code lineNumbers="true" %}

```js
const pdf_ua = await PDFNet.PDFUAConformance.create();
await pdf_ua.autoConvert(input_filename, output_filename);
```

{% endcode %}
{% endtab %}

{% tab title="Kotlin" %}
{% code lineNumbers="true" %}

```kotlin
PDFUAConformance pdf_ua = new PDFUAConformance()
pdf_ua.autoConvert(input_filename, output_filename)
```

{% endcode %}
{% endtab %}

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

```objc
PTPDFUAConformance *pdf_ua = [[PTPDFUAConformance alloc] init];
[pdf_ua AutoConvert: input_filename dest_file: output_filename];
```

{% endcode %}
{% endtab %}

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

```swift
let pdf_ua: PTPDFUAConformance = PTPDFUAConformance()
pdf_ua.autoConvert(srcFile: input_filename, destFile: output_filename)
```

{% endcode %}
{% endtab %}

{% tab title="PHP" %}
{% code lineNumbers="true" %}

```php
$pdf_ua = PDFUAConformance();
$pdf_ua->AutoConvert(input_filename, output_filename);
```

{% endcode %}
{% endtab %}

{% tab title="Python" %}
{% code lineNumbers="true" %}

```python
pdf_ua = PDFUAConformance()
pdf_ua.AutoConvert(input_filename, output_filename)
```

{% endcode %}
{% endtab %}

{% tab title="Ruby" %}
{% code lineNumbers="true" %}

```ruby
pdf_ua = PDFUAConformance.new()
pdf_ua.AutoConvert(input_filename, output_filename)
```

{% endcode %}
{% endtab %}

{% tab title="VB" %}
{% code lineNumbers="true" %}

```vb
Dim pdf_ua As PDFUAConformance = New PDFUAConformance()
pdf_ua.AutoConvert(input_filename, output_filename)
```

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

[Convert PDF to PDF/UA - Full Sample](/core/get-started/samples/pdfuatest.md) Full sample code which illustrates how to convert generic PDF documents to PDF/UA format. Sample code provided in Python, C++, C#, Java, Node.js (JavaScript), PHP, Ruby, Go and VB.


---

# 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/core/accessibility/convert.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.
