This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

HTML sang ảnh

Chụp một URL trang web hoặc nội dung HTML thô thành ảnh chụp màn hình. Hỗ trợ giả lập thiết bị (desktop, tablet, mobile), chụp toàn trang và nhiều định dạng đầu ra.

Điểm cuối API

POST /api/v1/tools/image/html-to-image

Chấp nhận một thân JSON (không phải multipart). Không cần tải lên tệp.

Tham số

Tham sốKiểuBắt buộcMặc địnhMô tả
urlstringCó điều kiện-URL cần chụp (phải là một URL hợp lệ)
htmlstringCó điều kiện-Nội dung HTML thô để kết xuất (1 đến 5.000.000 ký tự)
formatstringKhông"png"Định dạng đầu ra: jpg, png, webp
qualitynumberKhông90Chất lượng đầu ra cho các định dạng mất dữ liệu (1 đến 100)
fullPagebooleanKhôngfalseChụp toàn bộ trang có thể cuộn, không chỉ khung nhìn
devicePresetstringKhông"desktop"Giả lập thiết bị: desktop, tablet, mobile, custom
viewportWidthnumberKhông1280Chiều rộng khung nhìn tùy chỉnh tính bằng pixel (320 đến 3840, dùng khi devicePreset là custom)
viewportHeightnumberKhông720Chiều cao khung nhìn tùy chỉnh tính bằng pixel (320 đến 2160, dùng khi devicePreset là custom)

Phải cung cấp url hoặc html, nhưng không phải cả hai.

Cấu hình thiết bị dựng sẵn

Cấu hìnhChiều rộngChiều caoUA di động
desktop1280720Không
tablet7681024Không
mobile375812
custom(người dùng chỉ định)(người dùng chỉ định)Không

Ví dụ yêu cầu

Chụp một trang web:

bash
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
  -H "Authorization: Bearer si_your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "format": "png", "fullPage": true, "devicePreset": "desktop"}'

Kết xuất nội dung HTML:

bash
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
  -H "Authorization: Bearer si_your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"html": "<div style=\"padding: 20px; background: #f0f0f0;\"><h1>Hello</h1></div>", "format": "png"}'

Ví dụ phản hồi

json
{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/screenshot.png",
  "originalSize": 0,
  "processedSize": 145000
}

Ghi chú

  • Yêu cầu Chromium được cài đặt trên máy chủ. Trả về HTTP 503 nếu dịch vụ trình duyệt không khả dụng.
  • Các URL được kiểm tra chống lại tấn công SSRF (các địa chỉ mạng riêng/nội bộ bị chặn).
  • Điểm cuối này bị giới hạn tốc độ ở mức 120 yêu cầu mỗi giờ.
  • originalSize luôn là 0 vì công cụ này tạo ảnh từ URL/HTML.
  • Tên tệp đầu ra là screenshot.<format>.
  • Nếu trang mất quá nhiều thời gian để tải, yêu cầu trả về HTTP 504 (gateway timeout).
  • Nếu dịch vụ trình duyệt liên tục gặp sự cố, nó tạm thời bị vô hiệu hóa và trả về HTTP 503 với mã BROWSER_CRASHED.