# ConvertHtmlToPdfDemo **Repository Path**: zhaoyuanhai66/convert-html-to-pdf-demo ## Basic Information - **Project Name**: ConvertHtmlToPdfDemo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-22 - **Last Updated**: 2026-01-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WebApplication1 - PDF 生成服务 基于 ASP.NET Core 8.0 和 PuppeteerSharp 的 HTML/URL 转 PDF 服务。 ## 功能特性 - ✅ HTML 内容转 PDF - ✅ URL 网页转 PDF - ✅ Docker 容器化部署 - ✅ 支持中文字符 - ✅ Swagger API 文档 ## API 接口 ### 1. 测试接口 ``` GET /api/pdf/test ``` 生成一个示例 PDF 文件用于测试。 ### 2. HTML 转 PDF ``` POST /api/pdf/html-to-pdf Content-Type: application/json { "html": "..." } ``` ### 3. URL 转 PDF ``` POST /api/pdf/url-to-pdf Content-Type: application/json { "url": "https://www.example.com" } ``` ## 本地运行 ```bash cd WebApplication1/WebApplication1 dotnet restore dotnet run ``` 访问 Swagger UI: `http://localhost:5000/swagger` ## Docker 部署 ### 方法 1: 使用 Docker Compose(推荐) ```bash cd WebApplication1 docker-compose up -d ``` 查看日志: ```bash docker-compose logs -f ``` 停止服务: ```bash docker-compose down ``` ### 方法 2: 使用 Docker 命令 ```bash cd WebApplication1 # 构建镜像 docker build -t webapplication1 -f WebApplication1/Dockerfile . # 运行容器 docker run -d -p 8080:8080 \ -e PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium \ -e PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ --name pdf-service webapplication1 # 查看日志 docker logs -f pdf-service ``` ### 方法 3: 使用 Windows 脚本 ```bash # 重新构建并运行 rebuild-docker.cmd # 测试 API test-api.cmd ``` **注意:** 容器会自动使用系统安装的 Chromium,无需手动下载。 ### 测试 ```bash # 测试接口 curl http://localhost:8080/api/pdf/test --output test.pdf # HTML 转 PDF curl -X POST http://localhost:8080/api/pdf/html-to-pdf \ -H "Content-Type: application/json" \ -d '{"html":"