# Supported File Formats

> Load and save DOCX, DOC, RTF, HTML, PDF and Markdown in .NET and import XLSX: StreamType values, Core and Classic differences, PDF/A, PDF/UA and PDF import.

- **Product:** TX Text Control .NET Server
- **Section:** Documentation
- **Kind:** Topic
- **Path:** TX Text Control .NET Server > Overview > Supported File Formats
- **2869 words**
- **Web URL:** https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/file-formats/
- **LLMs URL:** https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/file-formats/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/file-formats/llms-full.txt

---

TX Text Control .NET Server loads a document in one format and saves it in the same or another format, so converting a document takes a load and a save. The supported formats are listed with the enumeration values you pass to `Load` and `Save`, together with the differences between the Core and Classic engines. PDF, Excel spreadsheets, images and Markdown get sections of their own.

### Formats and StreamType Values

`ServerTextControl.Load` and `ServerTextControl.Save` need to know the format of the data. Which enumeration you use depends on where the data comes from or goes to:

- [`StreamType`](https://docs.textcontrol.com/tx-text-control-dotnet-server/reference/txtextcontrol/streamtype/enumeration/llms-full.txt) for a file path or a `FileStream`
- [`BinaryStreamType`](https://docs.textcontrol.com/tx-text-control-dotnet-server/reference/txtextcontrol/binarystreamtype/enumeration/llms-full.txt) for a byte array
- [`StringStreamType`](https://docs.textcontrol.com/tx-text-control-dotnet-server/reference/txtextcontrol/stringstreamtype/enumeration/llms-full.txt) for a string

A dash means that the enumeration has no value for this format.

| Format | Load | Save | `StreamType` | `BinaryStreamType` | `StringStreamType` |
|---|---|---|---|---|---|
| DOCX (Microsoft Word, Office Open XML) | Yes | Yes | `WordprocessingML` | `WordprocessingML` | — |
| DOC (Microsoft Word binary format, Classic only) | Yes | Yes | `MSWord` | `MSWord` | — |
| RTF (Rich Text Format) | Yes | Yes | `RichTextFormat` | — | `RichTextFormat` |
| HTML | Yes | Yes | `HTMLFormat` | — | `HTMLFormat` |
| PDF | Yes | Yes | `AdobePDF` | `AdobePDF` | — |
| PDF/A | No | Yes | `AdobePDFA` | `AdobePDFA` | — |
| XLSX (Microsoft Excel, Office Open XML) | Yes | No | `SpreadsheetML` | `SpreadsheetML` | — |
| XML (Classic only) | Yes | Yes | `XMLFormat` | — | `XMLFormat` |
| CSS (Cascading Style Sheet) | No | Yes | `CascadingStylesheet` | — | `CascadingStylesheet` |
| Plain text, Unicode | Yes | Yes | `PlainText` | — | `PlainText` |
| Plain text, Windows ANSI | Yes | Yes | `PlainAnsiText` | — | — |
| TX Text Control format (`.tx`), Unicode | Yes | Yes | `InternalUnicodeFormat` | `InternalUnicodeFormat` | — |
| TX Text Control format, ANSI | Yes | Yes | `InternalFormat` | `InternalFormat` | — |
| Markdown | Yes | Yes | — | — | — |

What the table does not show:

- **PDF/A and CSS are save-only formats.** The reference describes `AdobePDFA` and `CascadingStylesheet` as formats that can only be used in saving operations. CSS files contain the styles of a document, for example to format XML documents.
- **PDF and PDF/A are saved as complete documents.** With `AdobePDF` and `AdobePDFA`, only a complete document can be saved.
- **PDF import has options.** How a PDF document is loaded depends on the `LoadSettings.PDFImportSettings` property, as described under PDF Import below.
- **XLSX is an import format.** A worksheet is loaded as a table, and you save the result in a document format, as described under Excel Spreadsheets below.
- **Plain text** marks the end of a paragraph with the control characters 13 and 10 (carriage return and line feed).
- **Markdown** is not part of these enumerations. It is loaded and saved with the separate `TXTextControl.Markdown.Core` package, as described under Markdown below.
- `StreamType.AllFormats` is not a document format. It adds an *All Formats* item to a load dialog.

To load and save these formats in code, see [Load a Document](https://docs.textcontrol.com/tx-text-control-dotnet-server/getting-started/document-processing/load/llms-full.txt) and [Save as DOCX and PDF](https://docs.textcontrol.com/tx-text-control-dotnet-server/getting-started/document-processing/save-docx-pdf/llms-full.txt).

### Core and Classic Differences

Both engines use the same enumerations, and your code is the same for both. The file format support differs in these points:

|  | Core (`TXTextControl.TextControl.Core.SDK`) | Classic (`TXTextControl.TextControl.ASP.SDK`) |
|---|---|---|
| DOC (`MSWord`) | Not available | Load and save |
| XML (`XMLFormat`) | Not available | Load and save |
| RTF (`RichTextFormat`) | Load and save on Windows and Linux since version 34.0 | Load and save |
| EMF images (Windows Enhanced Metafile) | Supported since version 34.0. EMF images are converted to SVG when a document is saved. | Supported |

- **DOC** is the legacy binary format of Microsoft Word and the predecessor of DOCX. Text Control's documentation of the Core engine names DOC import and export as the feature that is not available in Core. If your application must load or save DOC files, use the Classic engine, which runs on Windows only. In the Document Viewer, DOC also requires the Classic engine with the `TXTextControl.Web.DocumentViewer.Classic` package.
- **XML** documents are loaded and saved by a filter that only the Classic package contains: `TXTextControl.TextControl.ASP.SDK` 34.0.5 ships the native library *tx34\_xml.dll* beside *tx34\_doc.dll*, and the Core package ships neither. [XML Documents](https://docs.textcontrol.com/tx-text-control-dotnet-server/document-processing/xml/llms-full.txt) shows how to load an XML file with its DTD and CSS and edit its elements.
- **RTF and EMF on Linux.** Version 34.0 added a complete RTF filter to the Core engine on Windows and Linux, and EMF image support to the Core engine. Linux applications can handle RTF documents and EMF images since version 34.0.

[Supported Platforms](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/platforms/llms-full.txt) explains where each engine runs.

### PDF

TX Text Control creates and imports PDF documents with its own filters, without Adobe Acrobat or other third-party tools.

#### PDF Export

Save a document with `AdobePDF` to create a PDF document. The same document can be saved with digital signatures, form fields, passwords and embedded files. See [PDF Processing](https://docs.textcontrol.com/tx-text-control-dotnet-server/pdf/llms-full.txt) and [Digital Signatures](https://docs.textcontrol.com/tx-text-control-dotnet-server/digital-signatures/llms-full.txt).

#### Accessible PDF (PDF/UA)

PDF/UA (ISO 14289) is the standard for PDF documents that are accessible to people who use assistive technologies such as screen readers. Since version 34.0, PDF documents contain a tagged logical structure in addition to the visible content, and whether a document fully complies depends on descriptive texts that you provide, for example alternative texts for images. See [PDF/UA](https://docs.textcontrol.com/tx-text-control-dotnet-server/pdf/pdf-ua/llms-full.txt), and [PDF Validation](https://docs.textcontrol.com/tx-text-control-dotnet-server/pdf/validation/llms-full.txt) for the `TXTextControl.PDF.Validation` package that validates PDF/UA documents.

#### PDF/A

PDF/A (ISO 19005) is the standard for the long-term archiving of documents. Save a document with `AdobePDFA` to create PDF/A. Since version 34.0, TX Text Control writes **PDF/A-3a** documents, which include the tagged structure, so a document can comply with PDF/A-3a and PDF/UA at the same time, and which allow embedded files such as the XML data of an electronic invoice. See [PDF/A](https://docs.textcontrol.com/tx-text-control-dotnet-server/pdf/pdf-a/llms-full.txt) and [Attachments](https://docs.textcontrol.com/tx-text-control-dotnet-server/pdf/attachments/llms-full.txt).

#### PDF Import

Load a PDF document with `AdobePDF` to edit it or save it in another format. TX Text Control rebuilds an editable document from the pages, as [What Happens When You Load a PDF](https://docs.textcontrol.com/tx-text-control-dotnet-server/getting-started/pdf/load-modify/#what-happens-when-you-load-a-pdf) in Getting Started explains with its limits.

The [`LoadSettings.PDFImportSettings`](https://docs.textcontrol.com/tx-text-control-dotnet-server/reference/txtextcontrol/loadsettings/pdfimportsettings-property/llms-full.txt) property controls the result with values of the [`PDFImportSettings`](https://docs.textcontrol.com/tx-text-control-dotnet-server/reference/txtextcontrol/pdfimportsettings/enumeration/llms-full.txt) enumeration:

| Value | Result |
|---|---|
| `GenerateLines` | Text only. Images and paragraph formatting are discarded. Best suited for searching PDF files. |
| `GenerateParagraphs` | Paragraphs are generated from the text flow. Images are discarded. |
| `GenerateTextFrames` | Default. Tables, images and text frames create a document that best matches the original appearance. |
| `GenerateTextFramesFirstPageOnly` | Like `GenerateTextFrames`, but only the first page is loaded, for example for a preview. |
| `LoadEmbeddedData` | Provides the metadata, form fields and text coordinates of the PDF document through `LoadSettings.EmbeddedData`. |
| `LoadEmbeddedFiles` | Default. Files embedded in the PDF document are provided through `LoadSettings.EmbeddedFiles`. |

### Excel Spreadsheets (XLSX)

`SpreadsheetML` loads a worksheet from a Microsoft Excel XLSX file and converts it into a table in the document. The table keeps the cell formatting and the Excel compatible formulas, which calculate their results from other cells of the same table.

An XLSX file can contain several worksheets. [`LoadSettings.GetDocumentPartNames`](https://docs.textcontrol.com/tx-text-control-dotnet-server/reference/txtextcontrol/loadsettings/getdocumentpartnames-method/llms-full.txt) returns their names, and [`LoadSettings.DocumentPartName`](https://docs.textcontrol.com/tx-text-control-dotnet-server/reference/txtextcontrol/loadsettings/documentpartname-property/llms-full.txt) selects the worksheet to load. If you do not set it, the first worksheet is loaded. TX Text Control is designed for page-oriented documents, so you save the imported spreadsheet in a document format such as DOCX or PDF. [Convert All Worksheets of a Workbook](https://docs.textcontrol.com/tx-text-control-dotnet-server/pdf/conversion/#convert-all-worksheets-of-a-workbook) shows the code.

The formulas of a loaded worksheet become table formulas, and TX Text Control calculates them again with the functions it supports for table formulas. [Formula Functions](https://docs.textcontrol.com/tx-text-control-dotnet-server/reference/formula-functions/llms-full.txt) lists these functions; a cell whose formula uses another function, such as `VLOOKUP`, shows the text `UNSUPPORTED` in place of the value Excel saved.

### Images

Documents can contain images in the formats BMP, TIF, WMF, PNG, JPG, GIF, SVG and EMF, which the Core engine supports since version 34.0. By default, an image is saved in its original format. [Supported Image Formats](https://docs.textcontrol.com/tx-text-control-dotnet-server/document-processing/images/#supported-image-formats) lists the filter indexes of the formats and how to save images in another format, and [Render Pages as SVG Images](https://docs.textcontrol.com/tx-text-control-dotnet-server/document-processing/pages/#render-pages-as-svg-images) creates an image of a complete page.

### Markdown

Markdown is supported through the separate NuGet package **`TXTextControl.Markdown.Core`**, which you install from [nuget.org](https://www.nuget.org/packages/TXTextControl.Markdown.Core/) in addition to the TX Text Control package. It targets .NET 8 and works with `ServerTextControl`.

- The package adds the extension methods `LoadMarkdown` and `SaveMarkdown` in the `TXTextControl.Markdown` namespace.
- You can import and export a complete document, the current selection or a `SubTextPart`.
- Supported Markdown elements are headings, paragraphs, horizontal rules, blockquotes, lists, images, links and tables.
- Because the Markdown is loaded into a regular document, you can save it as DOCX or PDF, and convert DOCX, RTF or HTML documents to Markdown.

```csharp
using TXTextControl;
using TXTextControl.Markdown;

using var tx = new ServerTextControl();
tx.Create();

// load Markdown and save it as PDF
tx.LoadMarkdown("# Hello from Markdown");
tx.Save("result.pdf", StreamType.AdobePDF);

// export the document as Markdown
string markdown = tx.SaveMarkdown();
```

The blog post [Introducing TXTextControl.Markdown.Core](https://www.textcontrol.com/blog/2025/09/16/introducing-txtextcontrol-markdown-core-import-and-export-markdown-in-tx-text-control/) shows how paragraph styles are mapped to Markdown.

### Related Pages

- [Load a Document](https://docs.textcontrol.com/tx-text-control-dotnet-server/getting-started/document-processing/load/llms-full.txt): load DOCX, RTF, HTML, PDF and other formats from a file, a byte array or a string.
- [Save as DOCX and PDF](https://docs.textcontrol.com/tx-text-control-dotnet-server/getting-started/document-processing/save-docx-pdf/llms-full.txt): save and convert documents, including PDF/A.
- [PDF Processing](https://docs.textcontrol.com/tx-text-control-dotnet-server/pdf/llms-full.txt): PDF creation, PDF/A, PDF/UA, forms and attachments.
- [StreamType Enumeration](https://docs.textcontrol.com/tx-text-control-dotnet-server/reference/txtextcontrol/streamtype/enumeration/llms-full.txt): the reference of all format values.

---

## Nearby

- **Previous:** [Supported Platforms](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/platforms/llms-full.txt)
- **Next:** [Licensing Overview](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/licensing/llms-full.txt)
