57 lines
2.2 KiB
C#
57 lines
2.2 KiB
C#
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);
|
||
}
|
||
|