支持PDF转换的电子书MCP服务器
一种服务器,用于从嵌入图像的HTML内容创建电子书和PDF文档。该项目提供了强大的功能,可以将HTML文件转换为PDF,同时正确处理嵌入的图像。
特性
- 通过适当的图像处理将HTML文件转换为PDF文档
- 支持pdfkit(wkhtmltopdf)和reportlab PDF生成引擎
- 强大的错误处理和日志记录
- 具有自动清理功能的临时文件管理
- 转换过程中的详细诊断信息
需求
- Python 3.9+
- wkhtmltopdf(可选,但建议使用以获得更好的PDF质量)
- Python包:
- 快速 - python docx - pdfkit - 报告实验室 - 媒染剂 - 优维康 - 枕头
安装
- 克隆此存储库
- 安装所需的Python包:
pip install fastapi python-docx pdfkit reportlab pydantic uvicorn pillow- 安装wkhtmltopdf(可选):
- Windows:从下载并安装 wkhtmltopdf.org - Linux: sudo apt-get install wkhtmltopdf - macOS: brew install wkhtmltopdf
用法
服务器提供了一个名为 handle_call_tool 接受以下论点:
arguments = {
"text_file": "path/to/input.html",
"images": {
"image1.png": "path/to/image1.png",
"image2.jpg": "path/to/image2.jpg"
},
"output_pdf": "path/to/output.pdf"
}示例
result = await handle_call_tool("CREATE_DOC", {
"text_file": "document.html",
"images": {
"header.png": "images/header.png",
"footer.jpg": "images/footer.jpg"
},
"output_pdf": "output/document.pdf"
})运作原理
- 服务器处理输入的HTML文件
- 它将HTML中的图像引用替换为绝对路径
- 它尝试使用pdfkit(如果可用)将HTML转换为PDF
- 如果pdfkit失败或不可用,它将退回到reportlab
- 生成的PDF将保存到指定的输出路径
项目结构
main.py:包含PDF转换的核心功能pyproject.toml:项目元数据和依赖关系
许可证
麻省理工学院
