Token导航 LogoToken导航TokenDH.com
MCP Go Pdf To Img logo
文档知识未说明官方级别未说明来源级核验

MCP Go Pdf To Img

MCP Server

一款基于Go语言的高质量PDF转PNG/JPG工具,提供CLI、MCP服务器和REST API三种使用方式,支持自定义DPI、页面范围等参数。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
命令行工具GoClaude文档处理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

scopweb

提供方

scopweb

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

PDF2IMG-将PDF转换为图像

Go中的一个完整工具,用于将PDF页面渲染为PNG或JPG图像。包括CLI应用程序和MCP(模型上下文协议)服务器。

特性

  • 高质量渲染 使用go-pdfium v1.17.2(基于pdfium)
  • 🖼️ 多种格式:PNG和JPG
  • 🎯 精细控制:可定制的DPI,可配置的页面范围
  • 💻 完整的CLI:具有多个选项的命令行界面
  • 🔌 MCP服务器:与模型上下文协议集成
  • 📊 PDF信息:获取PDF文件元数据的命令
  • 🗜️ pdf压缩:优化和压缩PDF文件以减小大小
  • 🚀 纯Go:无CGO,嵌入式WebAssembly,单个二进制文件(约18 MB)
  • 🔒 跨平台:Windows、Linux、macOS

安装

先决条件

  • 达到1.21或更高
  • 备注:不需要外部PDFium,所有内容都嵌入二进制文件中

源代码

git clone 
cd pdf2img
go mod download
go build -o pdf2img ./cmd/pdf2img

全球安装

go install github.com/tu-usuario/pdf2img/cmd/pdf2img@latest

用法

CLI-基本转换

# Convert all pages to PNG
pdf2img -i document.pdf -o ./output

# Convert to JPG with custom DPI
pdf2img -i document.pdf -o ./output -f jpg -d 300

# Convert only pages 1-10
pdf2img -i document.pdf -o ./output --start 1 --end 10

# With custom prefix
pdf2img -i document.pdf -o ./output --prefix img_

CLI-获取PDF信息

pdf2img info document.pdf

输出:

PDF Information
===============
File: document.pdf
Pages: 25
Size: 2.50 MB
Width: 612.00 pt
Height: 792.00 pt

CLI选项

选项简短描述默认
--input-iPDF路径(必填)-
--output-o输出目录.
--format-f格式:png或jpgpng
--dpi-d用于渲染的DPI150
--start-起始页(1-索引)0 (第一)
--end-结束页(1个索引)0 (最后)
--prefix-输出文件的前缀page_
--verbose-v详细输出false

MCP服务器

pdf2img MCP服务器支持与Claude Desktop和其他支持模型上下文协议的系统集成。

使用Claude Desktop进行配置(推荐)

⚡ 快速指南:阅读 MCP_CLAUDESKTOP.md 获取分步说明。

总结:

  1. 编译: go build -o mcp-server.exe ./cmd/mcp-server
  2. 编辑 claude_desktop_config.json (in %APPDATA%\Claude\)
  3. 添加:
{
  "mcpServers": {
    "pdf2img": {
      "command": "C:\\path\\to\\mcp-server.exe",
      "args": ["--stdio"]
    }
  }
}
  1. 重新启动克劳德桌面
  2. 完成!现在您可以使用Claude的pdf2imig

有问题吗? 阅读 MCP_钻孔.md 用于排除常见问题。

程序化使用

要在Go代码中使用MCP服务器:

package main

import (
	"log"
	"github.com/tu-usuario/pdf2img/mcp"
)

func main() {
	server, err := mcp.NewMCPServer()
	if err != nil {
		log.Fatal(err)
	}
	defer server.Close()

	// Use server.ExecuteTool() to execute tools
	tools := server.GetTools()
	for _, tool := range tools {
		log.Printf("Available: %s", tool.Name)
	}
}

可用的MCP工具

pdf_to_images

将PDF页面转换为PNG或JPG图像。

{
  "pdf_path": "document.pdf",
  "output_dir": "./output",
  "format": "png",
  "dpi": 150,
  "start_page": 0,
  "end_page": 0,
  "prefix": "page_"
}

备注: start_pageend_page 值为0表示“所有页面”。

pdf_info

获取PDF信息(页面、大小、尺寸)。

{
  "pdf_path": "document.pdf"
}

操作模式

MCP服务器支持两种模式:

  • 标准 (Claude Desktop的默认设置): mcp-server --stdio
  • 超文本传输协议: mcp-server --port 8080 (用于测试)

更多示例请参见 示例.md.

项目结构

pdf2img/
├── cmd/
│   └── pdf2img/
│       └── main.go          # CLI application
├── mcp/
│   └── server.go            # MCP server
├── pkg/
│   └── converter/
│       └── converter.go      # Shared conversion logic
├── go.mod                   # Dependencies
└── README.md               # This file

依赖项

  • go pdfium v1.17.2 (Apache 2.0):使用PDFium WebAssembly进行PDF渲染
  • 眼镜蛇v1.10.1 (Apache 2.0):CLI框架
  • mark3labs/mcp版本0.43.0 (Apache 2.0):官方MCP SDK
  • wazero v1.9.0 (Apache 2.0):Go的WebAssembly运行时(包含在Go-pdfium中)

例子

示例1:将整个文档转换为高分辨率

pdf2img -i book.pdf -o ./images -f jpg -d 300

创建以下文件: page_0001.jpg, page_0002.jpg等等。

示例2:仅提取前5页

pdf2img -i report.pdf -o ./thumbs --start 1 --end 5 --prefix thumb_

创建: thumb_0001.png, thumb_0002.png等等。

示例3:PDF信息

pdf2img info form.pdf

示例4:从Go代码开始

package main

import (
	"log"
	"github.com/tu-usuario/pdf2img/pkg/converter"
)

func main() {
	conv, err := converter.New()
	if err != nil {
		log.Fatal(err)
	}
	defer conv.Close()

	result, err := conv.Convert(&converter.ConvertOptions{
		InputPath: "document.pdf",
		OutputDir: "./output",
		Format:    "png",
		DPI:       150,
	})

	if err != nil {
		log.Fatal(err)
	}

	log.Printf("Successful: %d, Failed: %d", result.Successful, result.Failed)
}

技术

WebAssembly实现

此项目使用 使用WebAssembly访问pdfium v1.17.2,它提供:

  • 纯Go:无CGO依赖关系,无需在主机上使用C编译器
  • 单一二进制:所有内容都嵌入在一个可执行文件中(约18 MB)
  • 跨平台:相同的二进制文件适用于Windows、Linux、macOS
  • 演出:比多线程CGO版本快约2倍
  • 安全:WebAssembly沙盒中的独立执行

为什么选择WebAssembly

选择WebAssembly而不是CGO是因为:

  • ❌ CGO需要主机上的C编译器(在不同系统上有问题)
  • ❌ go pdfium v1.12.0 CGO存在严重的兼容性错误
  • ✅ WebAssembly更健壮、更便携
  • ✅ 编译后不需要外部依赖
  • ✅ 更好的资源隔离

📚 文档

公共文件

内部文档

有关维护人员和详细技术信息,请参阅 docs/README.md

______________________________________________________________________

故障排除

错误:“找不到PDF文件”

验证PDF路径是否正确:

ls -la document.pdf

错误:“初始化PDFium失败”

确保Go可以下载依赖项:

go mod download
go mod verify

图像以低分辨率显示

增加DPI值:

pdf2img -i document.pdf -o ./output -d 300  # Higher = better quality

处理速度慢

降低DPI以加快处理速度:

pdf2img -i document.pdf -o ./output -d 96

许可证

该项目使用Apache 2.0许可证下的go-pdfium。

贡献

欢迎捐款。拜托:

  1. 分叉项目
  2. 为您的功能创建分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add AmazingFeature')
  4. 推到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

路线图

  • \[\]水印支持
  • \[\]渲染图像的OCR
  • \[\]并行页面处理
  • \[\]渲染图像缓存
  • \[\]REST HTTP API
  • \[\]密码保护的PDF支持

参考文献

目录标签

目录标签

命令行工具GoClaude文档处理PDF转换本地部署Go语言CLI工具MCP集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP