Skip to main content
Glama

word2img-mcp

by AdolphNB
IMGKIT_USAGE.md6.3 kB
# imgkit/wkhtmltopdf 渲染方案使用指南 ## 🎯 概述 成功实现了基于 `imgkit + wkhtmltopdf` 的 Markdown 渲染方案,这是一个高质量的 HTML 到图片转换解决方案。 ## ✨ 特性 ### 🚀 核心功能 - **HTML 渲染**: 将 Markdown 转换为结构化 HTML,再通过 wkhtmltopdf 渲染为图片 - **自定义样式**: 完全的 CSS 样式控制,支持复杂布局和设计 - **高质量输出**: wkhtmltopdf 提供专业级别的渲染质量 - **中文支持**: 完美支持中文字体和排版 ### 🎨 样式特性 - 自定义背景色、文字色、强调色 - 丰富的字体选项(字体族、大小、行高) - 多种对齐方式(居中、左对齐、右对齐) - 标题缩放和阴影效果 - 表格样式和代码块高亮 - 水印功能 ### 📋 支持的 Markdown 语法 - 标题 (H1-H6) - 段落和文本格式化(粗体、斜体) - 列表(有序、无序) - 表格 - 代码块和行内代码 - 引用块 - 水平分割线 - 链接 ## 🔧 安装与配置 ### 1. 安装 Python 依赖 ```bash # 使用 uv 安装 uv add imgkit markdown # 或使用 pip 安装 pip install imgkit markdown ``` ### 2. 安装 wkhtmltopdf #### Windows 1. 访问 [wkhtmltopdf 官网](https://wkhtmltopdf.org/downloads.html) 2. 下载 Windows 版本安装包 3. 安装到默认路径(通常是 `C:\Program Files\wkhtmltopdf\`) 4. 将安装路径添加到系统 PATH 环境变量 #### macOS ```bash # 使用 Homebrew brew install wkhtmltopdf # 或下载安装包 # https://wkhtmltopdf.org/downloads.html ``` #### Linux (Ubuntu/Debian) ```bash sudo apt-get update sudo apt-get install wkhtmltopdf ``` #### Linux (CentOS/RHEL) ```bash sudo yum install wkhtmltopdf # 或 sudo dnf install wkhtmltopdf ``` ### 3. 验证安装 ```bash # 检查 wkhtmltoimage 是否可用 wkhtmltoimage --version ``` ## 🚀 使用方法 ### 1. 基础使用 ```python from word2img_mcp.render import RenderOptions, MarkdownRenderer # 创建渲染选项 options = RenderOptions( width=1200, height=1600, background=(255, 255, 255), # 白色背景 text_color=(0, 0, 0), # 黑色文字 accent_color=(70, 130, 180), # 钢蓝色强调 align="left", font_size=16, output_format="png" ) # Markdown 内容 markdown_text = """ # 标题示例 这是一个 **加粗文字** 和 *斜体文字* 的示例。 ## 列表示例 - 项目 1 - 项目 2 - 项目 3 ## 表格示例 | 列 1 | 列 2 | 列 3 | |------|------|------| | A | B | C | | 1 | 2 | 3 | """ # 渲染 renderer = MarkdownRenderer() output_path = renderer.render(markdown_text, options) print(f"图片已生成: {output_path}") ``` ### 2. 高级配置 ```python # 创建高级渲染选项 advanced_options = RenderOptions( width=1400, height=1800, background=(248, 249, 250), # 浅灰背景 text_color=(33, 37, 41), # 深灰文字 accent_color=(13, 110, 253), # 蓝色强调 align="center", font_family="'Microsoft YaHei', 'PingFang SC', Arial, sans-serif", font_size=18, line_height=1.8, header_scale=1.6, shadow=True, # 标题阴影 watermark=True, # 水印 watermark_text="Generated by imgkit", output_format="jpg" ) ``` ### 3. MCP 服务使用 ```python # 通过 MCP 接口使用 import asyncio from word2img_mcp.mcp_app import server # 启动 MCP 服务器 # uv run python -m word2img_mcp.server ``` ## 🔍 故障排除 ### 常见问题 #### 1. "No wkhtmltoimage executable found" **问题**: wkhtmltopdf 未安装或不在 PATH 中 **解决方案**: - 确保已安装 wkhtmltopdf - 检查安装路径是否在系统 PATH 中 - Windows 用户检查是否需要重启命令行 #### 2. 中文字体显示问题 **问题**: 中文字符显示为方框或乱码 **解决方案**: - 确保系统安装了中文字体 - 在 `font_family` 中指定正确的中文字体 - Windows: "Microsoft YaHei" - macOS: "PingFang SC" - Linux: 安装 `fonts-wqy-zenhei` 等中文字体包 #### 3. 渲染超时 **问题**: 复杂内容渲染时间过长 **解决方案**: - 适当增加超时时间 - 简化内容结构 - 检查网络连接(如果内容包含外部资源) #### 4. 图片质量问题 **问题**: 输出图片模糊或质量不佳 **解决方案**: - 增加输出尺寸 - 调整 `quality` 参数 - 使用 PNG 格式获得更好质量 ## 📊 性能对比 | 后端 | 质量 | 速度 | 功能性 | 依赖复杂度 | |------|------|------|--------|------------| | imgkit/wkhtmltopdf | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | | markdown-pdf | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | | PIL 备选 | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ## 🎨 样式定制 ### CSS 样式系统 imgkit 后端使用完整的 CSS 样式系统,支持: - 字体和排版 - 颜色和背景 - 边距和间距 - 边框和阴影 - 伪元素和动画(静态渲染) ### 自定义主题 可以通过修改 `_generate_css` 方法创建自定义主题: ```python def create_dark_theme_options(): return RenderOptions( background=(33, 37, 41), # 深色背景 text_color=(248, 249, 250), # 浅色文字 accent_color=(108, 117, 125), # 灰色强调 # ... 其他选项 ) ``` ## 📚 技术细节 ### 渲染流程 1. **Markdown 解析**: 使用 `python-markdown` 将 Markdown 转换为 HTML 2. **样式注入**: 根据 `RenderOptions` 生成对应的 CSS 样式 3. **HTML 组装**: 将内容和样式组合成完整的 HTML 文档 4. **图片渲染**: 使用 wkhtmltoimage 将 HTML 渲染为图片 5. **文件输出**: 保存到指定路径 ### 扩展功能 - **表格支持**: 自动处理复杂表格布局 - **代码高亮**: 支持多种编程语言语法高亮 - **响应式设计**: 自适应不同尺寸要求 - **水印系统**: 灵活的水印位置和样式 ## 🔮 未来改进 ### 计划功能 - 主题预设系统 - 更多输出格式支持 - 性能优化 - 批量处理功能 - 自定义字体加载 ### 贡献指南 欢迎提交 Issue 和 Pull Request 来改进这个项目! ## 📄 许可证 本项目使用与主项目相同的许可证。 --- **享受使用 imgkit/wkhtmltopdf 带来的高质量 Markdown 渲染体验!** 🎉

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AdolphNB/md2img-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server