UNPKG

@web-js/dom-screenshot

Version:

A lightweight DOM screenshot library based on @zumer/snapdom and html2canvas.

112 lines (111 loc) 3.65 kB
import { type Options as Html2CanvasOptions } from "html2canvas"; import { type SnapOptions } from "@zumer/snapdom"; /** * DOM截图配置选项 */ export interface ScreenshotOptions { /** 输出图片质量 (0-1) */ quality?: number; /** 输出图片格式 */ format?: "png" | "jpeg" | "webp"; /** 背景颜色 */ backgroundColor?: string; /** 是否允许跨域 */ allowTaint?: boolean; /** 是否使用CORS */ useCORS?: boolean; /** 缩放比例 */ scale?: number; /** 输出宽度 */ width?: number; /** 输出高度 */ height?: number; /** 是否忽略元素 */ ignoreElements?: (element: Element) => boolean; /** 是否启用SVG元素预处理 */ processSvg?: boolean; /** 是否启用CSS渐变文本预处理 */ processGradientText?: boolean; /** 引擎优先级 */ enginePriority?: "snapdom" | "html2canvas"; /** 是否内联字体以确保字体正确渲染 */ embedFonts?: boolean; /** 是否预加载字体和资源 */ preCacheFonts?: boolean; /** * snapdom截图配置选项 */ snapdomOptions?: Partial<SnapOptions>; /** * html2canvas截图配置选项 */ html2canvasOptions?: Partial<Html2CanvasOptions>; } /** * DOM截图类 */ export declare class DomScreenshot { private defaultOptions; /** * 截取DOM元素为Canvas * @param element - 要截图的DOM元素 * @param options - 截图配置选项 * @returns Promise<HTMLCanvasElement> */ captureToCanvas(element: HTMLElement, options?: ScreenshotOptions): Promise<HTMLCanvasElement>; /** * 截取DOM元素为Base64字符串 * @param element - 要截图的DOM元素 * @param options - 截图配置选项 * @returns Promise<string> */ captureToBase64(element: HTMLElement, options?: ScreenshotOptions): Promise<string>; /** * 截取DOM元素为Blob对象 * @param element - 要截图的DOM元素 * @param options - 截图配置选项 * @returns Promise<Blob> */ captureToBlob(element: HTMLElement, options?: ScreenshotOptions): Promise<Blob>; /** * 下载DOM元素截图 * @param element - 要截图的DOM元素 * @param filename - 下载文件名 * @param options - 截图配置选项 */ downloadScreenshot(element: HTMLElement, filename?: string, options?: ScreenshotOptions): Promise<void>; } /** * 创建DOM截图实例 * @returns DomScreenshot实例 */ export declare function createScreenshot(): DomScreenshot; /** * 快速截图函数 - 返回Base64 * @param element - 要截图的DOM元素 * @param options - 截图配置选项 * @returns Promise<string> */ export declare function screenshot(element: HTMLElement, options?: ScreenshotOptions): Promise<string>; /** * 快速截图函数 - 返回Canvas * @param element - 要截图的DOM元素 * @param options - 截图配置选项 * @returns Promise<HTMLCanvasElement> */ export declare function screenshotToCanvas(element: HTMLElement, options?: ScreenshotOptions): Promise<HTMLCanvasElement>; /** * 快速截图函数 - 返回Blob * @param element - 要截图的DOM元素 * @param options - 截图配置选项 * @returns Promise<Blob> */ export declare function screenshotToBlob(element: HTMLElement, options?: ScreenshotOptions): Promise<Blob>; declare const _default: { DomScreenshot: typeof DomScreenshot; createScreenshot: typeof createScreenshot; screenshot: typeof screenshot; screenshotToCanvas: typeof screenshotToCanvas; screenshotToBlob: typeof screenshotToBlob; }; export default _default;