PDF 生成模板编辑器
开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。
GetStatus() 返回最近一次操作(转换、导出 HTML 或生成 PDF)的状态,大于或等于 0 表示成功,小于 0 表示失败。IsSuccess() 在结果有效且状态大于或等于 0 时返回 true。
状态(CEmailStatus) | 说明 |
|---|---|
EMAIL_SUCCESS | 成功 |
EMAIL_SUCCESS_WITH_WARNINGS | 成功,但存在降级或容错处理,详见诊断信息 |
EMAIL_ERROR_INVALID_PARAMETER | 参数无效,例如路径为空、选项无效 |
EMAIL_ERROR_READ | 读取输入失败,例如文件不存在 |
EMAIL_ERROR_PARSE | 邮件解析失败,包括空输入 |
EMAIL_ERROR_HTML | 生成 HTML 失败 |
EMAIL_ERROR_WRITE | 写入输出失败,包括目标文件已存在 |
EMAIL_ERROR_PDF | 生成 PDF 失败,可通过 GetPdfError() 获取详细错误 |
EMAIL_ERROR_LICENSE | 许可证未初始化、无效、过期或无权限,可通过 GetPdfError() 获取详细错误 |
EMAIL_ERROR_LIMIT | 超出大小上限或内部结构上限 |
EMAIL_ERROR_CANCELLED | 取消回调要求取消 |
EMAIL_ERROR_OUT_OF_MEMORY | 内存不足 |
EMAIL_ERROR_INTERNAL | 内部错误 |
转换过程中的降级、容错和错误会记录为诊断信息,建议写入应用日志:
foreach (CEmailDiagnostic diagnostic in result.GetDiagnostics())
{
Console.WriteLine($"[{(diagnostic.IsError ? "错误" : "警告")}] {diagnostic.Code}:{diagnostic.Detail}({diagnostic.FallbackAction})");
}判断成败请以状态为准,不要依赖诊断码做业务判断;诊断码中带有 limit 的可用于提示"文件过大"。