HTML转PDF服务

一个将HTML内容转换为电子书和PDF文档的服务器,支持处理嵌入图像并提供详细的诊断信息。

  • by rmcendarfer2017
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 rmcendarfer2017/mcp-server-pdf--conversion

使用说明

支持PDF转换的电子书MCP服务器

一种服务器,用于从嵌入图像的HTML内容创建电子书和PDF文档。该项目提供了强大的功能,可以将HTML文件转换为PDF,同时正确处理嵌入的图像。

特性

  • 通过适当的图像处理将HTML文件转换为PDF文档
  • 支持pdfkit(wkhtmltopdf)和reportlab PDF生成引擎
  • 强大的错误处理和日志记录
  • 具有自动清理功能的临时文件管理
  • 转换过程中的详细诊断信息

需求

  • Python 3.9+
  • wkhtmltopdf(可选,但建议使用以获得更好的PDF质量)
  • Python包:
    • 快速
    • python docx
    • pdfkit
    • 报告实验室
    • 媒染剂
    • 优维康
    • 枕头

安装

  1. 克隆此存储库
  2. 安装所需的Python包:
    pip install fastapi python-docx pdfkit reportlab pydantic uvicorn pillow
    
  3. 安装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"
})

运作原理

  1. 服务器处理输入的HTML文件
  2. 它将HTML中的图像引用替换为绝对路径
  3. 它尝试使用pdfkit(如果可用)将HTML转换为PDF
  4. 如果pdfkit失败或不可用,它将退回到reportlab
  5. 生成的PDF将保存到指定的输出路径

项目结构

  • main.py:包含PDF转换的核心功能
  • pyproject.toml:项目元数据和依赖关系

许可证

麻省理工学院