Introduction

Aspose.Words FOSS for Python provides a straightforward API for converting Word documents from supported input formats to PDF, Markdown, and plain text. The Document class loads files in five input formats and the save() method exports to PDF, Markdown, or plain text.

This post walks through the core conversion workflows, from single-file conversion to batch processing across all supported formats.


Key Features

Single Document Conversion

Load any supported input file and convert it to a target format with a Writer class. The Document constructor accepts DOCX, DOC, RTF, TXT, and Markdown files.

import aspose.words_foss as aw
from aspose.words_foss.pdf_writer import LdmPdfWriter

doc = aw.Document("input.docx")
LdmPdfWriter().write(doc, "output.pdf")

Batch Conversion to Multiple Formats

Reuse the same loaded document with multiple Writer classes to produce outputs in every supported format without reloading the input file.

import aspose.words_foss as aw
from aspose.words_foss.md_writer import LdmMarkdownWriter
from aspose.words_foss.pdf_writer import LdmPdfWriter

doc = aw.Document("report.docx")
LdmMarkdownWriter().write(doc, "report.md")
LdmPdfWriter().write(doc, "report.pdf")
with open("report.txt", "w", encoding="utf-8") as f:
    f.write(doc.text)

PDF Export with PdfSaveOptions

Use PdfSaveOptions for fine-grained control over PDF output. For default settings, LdmPdfWriter() with no options is sufficient.

import aspose.words_foss as aw
from aspose.words_foss.pdf_writer import LdmPdfWriter
from aspose.words_foss.saving import PdfSaveOptions

doc = aw.Document("input.docx")
pdf_opts = PdfSaveOptions()
LdmPdfWriter(pdf_opts).write(doc, "output.pdf")

Markdown Export with MarkdownSaveOptions

Use MarkdownSaveOptions for additional control over Markdown output formatting.

import aspose.words_foss as aw
from aspose.words_foss.md_writer import LdmMarkdownWriter
from aspose.words_foss.saving import MarkdownSaveOptions

doc = aw.Document("input.docx")
md_opts = MarkdownSaveOptions()
LdmMarkdownWriter(md_opts).write(doc, "output.md")

Text Extraction

Extract plain text content from any loaded document using the Document.text property without writing to a file.

import aspose.words_foss as aw

doc = aw.Document("input.docx")
text = doc.text
print(f"Extracted {len(text)} characters")

Quick Start

pip install aspose-words-foss
import aspose.words_foss as aw
from aspose.words_foss.md_writer import LdmMarkdownWriter
from aspose.words_foss.pdf_writer import LdmPdfWriter

# Load a Word document
doc = aw.Document("contract.docx")

# Convert to all output formats
LdmMarkdownWriter().write(doc, "contract.md")
LdmPdfWriter().write(doc, "contract.pdf")
with open("contract.txt", "w", encoding="utf-8") as f:
    f.write(doc.text)

# Extract text for processing
text = doc.text
print(f"Document contains {len(text)} characters")

Supported Formats

FormatExtensionReadWrite
DOCX.docx
DOC.doc
RTF.rtf
TXT.txt
Markdown.md
PDF.pdf

Open Source & Licensing

Aspose.Words FOSS for Python is released under the MIT License. You can use it in personal, internal, and commercial projects without license fees. The source code is available on GitHub.


Getting Started