HtmlToPdf/mvp/HtmlToPdfService.Core/Services/IPdfService.cs
2025-12-11 23:35:52 +08:00

57 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using HtmlToPdfService.Core.Models;
using PuppeteerSharp;
using PuppeteerSharp.Media;
namespace HtmlToPdfService.Core.Services;
/// <summary>
/// PDF 转换服务接口
/// </summary>
public interface IPdfService
{
/// <summary>
/// 将 HTML 内容转换为 PDF
/// </summary>
/// <param name="html">HTML 内容</param>
/// <param name="options">PDF 选项</param>
/// <param name="callbackUrl">回调 URL可选</param>
/// <param name="callbackHeaders">回调自定义 Headers可选</param>
/// <param name="includePdfInCallback">是否在回调中包含 PDF 数据</param>
/// <param name="saveLocal">是否保存本地副本</param>
/// <param name="cancellationToken">取消令牌</param>
/// <returns>转换结果</returns>
Task<ConversionResult> ConvertHtmlToPdfAsync(
string html,
PdfOptions? options = null,
string? callbackUrl = null,
Dictionary<string, string>? callbackHeaders = null,
bool? includePdfInCallback = null,
bool? saveLocal = null,
CancellationToken cancellationToken = default);
/// <summary>
/// 将 URL 转换为 PDF
/// </summary>
/// <param name="url">URL 地址</param>
/// <param name="options">PDF 选项</param>
/// <param name="waitUntil">等待条件</param>
/// <param name="timeout">页面加载超时(毫秒)</param>
/// <param name="callbackUrl">回调 URL可选</param>
/// <param name="callbackHeaders">回调自定义 Headers可选</param>
/// <param name="includePdfInCallback">是否在回调中包含 PDF 数据</param>
/// <param name="saveLocal">是否保存本地副本</param>
/// <param name="cancellationToken">取消令牌</param>
/// <returns>转换结果</returns>
Task<ConversionResult> ConvertUrlToPdfAsync(
string url,
PdfOptions? options = null,
WaitUntilNavigation[]? waitUntil = null,
int? timeout = null,
string? callbackUrl = null,
Dictionary<string, string>? callbackHeaders = null,
bool? includePdfInCallback = null,
bool? saveLocal = null,
CancellationToken cancellationToken = default);
}