This skill converts Word documents (.docx) to PDF format, preserving embedded images, formatting, tables, and document structure.
Use this skill when you need to:
Best for: Complex documents, highest fidelity, cross-platform Requirements: LibreOffice installed Pros: Free, handles complex formatting well, excellent image support Cons: Requires LibreOffice installation
Best for: Programmatic conversion, custom formatting Requirements: Python with specific libraries Pros: Highly customizable, no external dependencies Cons: More complex setup, may miss some formatting
Best for: Text-heavy documents, simple conversion Requirements: Pandoc installed Pros: Fast, widely available Cons: Limited image support, basic formatting
Best for: Quick conversions, good image support Requirements: Python with docx2pdf library Pros: Easy setup, good for most documents Cons: May struggle with very complex layouts
Convert document.docx to PDF
Convert all .docx files in current directory to PDF
Convert report.docx to PDF and name it monthly-report.pdf
# Install LibreOffice
sudo apt-get install libreoffice
# Or on macOS
brew install --cask libreoffice
# Or on Windows
# Download from libreoffice.org
# Install required libraries
pip install python-docx reportlab pillow
# Or use docx2pdf
pip install docx2pdf
# Install pandoc
sudo apt-get install pandoc
# Or on macOS
brew install pandoc
# Single file conversion
libreoffice --headless --convert-to pdf document.docx
# Specify output directory
libreoffice --headless --convert-to pdf --outdir ./pdfs document.docx
# Batch convert
for file in *.docx; do
libreoffice --headless --convert-to pdf "$file"
done
from docx import Document
from docx2pdf import convert
# Convert with images preserved
convert("document.docx", "output.pdf")
# Basic conversion (limited image support)
pandoc document.docx -o output.pdf
# With better formatting
pandoc document.docx -o output.pdf --pdf-engine=xelatex
# Increase LibreOffice memory (Linux)
soffice --headless -accept="socketsocket,host=localhost,port=2002;urp;" -nologo -nodefault -nofirststartwizard -nolockcheck -norestore -nocrashreport -nocrashreport -headless -invisible -convert-to pdf -nocrashreport -outdir /output /input
# Or split large document into parts before conversion
7w4.net小葱技能站,你的AI助手技能库。
# Export with specific settings
libreoffice --headless --convert-to pdf:writer_pdf_Export --infilter="writer_pdf_Export" document.docx
import os
from docx2pdf import convert
def convert_folder(input_dir, output_dir):
os.makedirs(output_dir, exist_ok=True)
for file in os.listdir(input_dir):
if file.endswith('.docx'):
input_path = os.path.join(input_dir, file)
output_path = os.path.join(output_dir, file.replace('.docx', '.pdf'))
convert(input_path, output_path)
print(f"Converted: {file}")
convert_folder('./docs', './pdfs')
Before final conversion:
For detailed conversion options and troubleshooting: