Usage
Basic Usage
AutoWriterLLM can be used either through its GUI interface or programmatically.
GUI Interface
To launch the GUI interface:
from autowriterllm.markdown_to_pdf_converter import ConverterGUI
gui = ConverterGUI()
gui.run()
The GUI provides easy access to all conversion features:
Select input markdown files
Choose output PDF location
Configure conversion options
Monitor conversion progress
Programmatic Interface
For programmatic usage:
from autowriterllm.markdown_to_pdf_converter import MarkdownToPDFConverter
converter = MarkdownToPDFConverter()
# Convert single file
converter.convert_to_pdf(
input_file="path/to/input.md",
output_file="path/to/output.pdf"
)
# Convert entire book
converter.convert_book(
toc_file="path/to/toc.md",
input_dir="path/to/chapters",
output_file="path/to/book.pdf"
)
Configuration
Create a config.yaml file in your project root:
# API Configuration
api:
anthropic:
api_key: "your-api-key"
model: "claude-3-sonnet-20240229"
max_tokens: 4096
temperature: 0.7
# Output Configuration
output:
directory: "output"
format: "markdown"
# Logging Configuration
logging:
level: "INFO"
file: "logs/autowriter.log"
PDF Conversion
The PDF converter supports various options:
converter = MarkdownToPDFConverter(
config={
"pandoc_options": [
"--pdf-engine=xelatex",
"--toc",
"--number-sections"
],
"supported_encodings": ["utf-8", "cp1252"],
"max_workers": 4
}
)
Error Handling
The library includes comprehensive error handling:
try:
converter.convert_to_pdf(input_file="input.md", output_file="output.pdf")
except FileNotFoundError:
logger.error("Input file not found")
except subprocess.CalledProcessError as e:
logger.error(f"Conversion failed: {e}")
except Exception as e:
logger.error(f"Unexpected error: {e}")
For more detailed error handling, enable debug logging:
import logging
logging.basicConfig(level=logging.DEBUG)