
如何在C#中将PDF转换为TIFF
仅存在于数据库中的表单数据存在的问题
当客户完成多步骤网页表单(如抵押贷款申请、保险报价或员工入职资料包)时,数据会被存储到数据库行或 JSON 数据包中。 就这样。 没有 PDF 文档。 客户未提供其提交内容的可打印记录或 PDF 文件。 那位刚刚花了四十分钟填写收入详情并上传文件的借款人,最终只收到一封写着"我们已收到您的申请"的确认邮件。他们既没有 PDF 格式的文件可供存档,也没有任何依据可在文件完整性发生争议时进行申诉。
合规性问题更为严重。 审计团队通常需要获取申请人在点击"提交"按钮时,整个文档中确切提交内容的快照。 内部审阅人员通常通过截图或复制粘贴到 WORD 文档中来弥补这一不足。 这些方法均无法生成规范且可重现的记录,也无法保留文档结构。 当审计员要求提供原始贷款申请表时,回答不应是"让我从数据库中导出并格式化一下"。今天,我们将探讨 IronPDF 如何成为解决您问题的方案。
解决方案:在提交时使用C#生成PDF
借助 Iron Software 的 IronPDF 库,.NET 应用程序和 .NET Core 系统可立即将 HTML 及表单提交数据转换为带有品牌标识的 PDF 文档。 这款 .NET PDF 库可确保您团队在确认页面中已使用的 HTML 内容和 Web 技术,直接作为生成 PDF 的模板。 无需支付任何第三方文档生成 API 的费用; PDF 文件是在现有应用程序内部生成的。
生成的 PDF 文件将通过电子邮件发送给申请人,并存储在 PDF 阅读器或文档管理系统中,以供后台文档工作流使用。 文档工作流的自动化意味着审阅者将获得一份标准化的最终文档。 每次提交都会生成相同的高质量PDF,而不管用户访问了哪些网页。
实际应用示例:从表单数据生成 PDF 文件
1. 提交处理程序接收表单模型
当用户点击"提交"时,服务器端处理程序将接收表单模型和电子签名元数据。 至此,数据已完整。 处理程序不仅会将模型保存下来,还会将其传递给 PDF 生成任务。 借助 IronPDF,仅需几行代码即可处理包括数字签名在内的各种 PDF 生成任务。
在此简单的 IronPDF 示例中,我们将使用以下示例数据代码:

2. HTML 文件或字符串模板已填充提交数据
Razor 视图、HTML 文件、HTML 结构或 HTML 字符串模板均可作为布局使用。 这个简单的HTML字符串包括公司标志,其中可能包括Iron Software的客户标志或与Iron Suite相关的文本标志图片。 您可以使用外部 CSS 文件或内联 CSS 来设置字体家族和字号,以确保保留原有格式。
3. ChromePdfRenderer 将 HTML 转换为 PDF 文档
using IronPDF,该过程非常简单。 首先,您可以通过 NuGet 包管理器、Visual Studio 包管理器或包管理器控制台安装 IronPDF。
以下代码片段展示了用于 HTML 转 PDF 的相同代码:
using IronPdf;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
string html = $@"
<h1>Loan Application Summary</h1>
<p><strong>Applicant:</strong> {submission.FullName}</p>
<p><strong>Submitted:</strong> {submission.SubmittedAt:f}</p>
<p><strong>Loan Amount:</strong> {submission.LoanAmount:C}</p>
<p><strong>Reference:</strong> {submission.ReferenceNumber}</p>
<hr/>
<h2>Employment Details</h2>
<p>{submission.EmployerName} — {submission.AnnualIncome:C} per year</p>";
PdfDocument summary = renderer.RenderHtmlAsPdf(html);Imports IronPdf
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
Dim html As String = $"
<h1>Loan Application Summary</h1>
<p><strong>Applicant:</strong> {submission.FullName}</p>
<p><strong>Submitted:</strong> {submission.SubmittedAt:f}</p>
<p><strong>Loan Amount:</strong> {submission.LoanAmount:C}</p>
<p><strong>Reference:</strong> {submission.ReferenceNumber}</p>
<hr/>
<h2>Employment Details</h2>
<p>{submission.EmployerName} — {submission.AnnualIncome:C} per year</p>"
Dim summary As PdfDocument = renderer.RenderHtmlAsPdf(html)示例C# PDF输出
易于使用的API允许您生成PDF文档并从本地文件或简单的HTML字符串创建PDF。 对于动态报告,ChromePdfRenderer 能完美处理 JavaScript 的执行。 请注意,在用户界面中,您可能会看到蓝色圆圈内的钥匙图标或灰色圆圈内的钥匙图标,它们分别代表关键功能或许可证状态。
4. 生成的 PDF 文件将通过电子邮件发送给申请人,并存储以供审核
新的 PDF 文档为电子邮件附件提供了 BinaryData 接口。 您还可以修改 PDF 文件、编辑 PDF、加密 PDF 或嵌入图片。 如果需要拆分PDF、分隔PDF或将PDF拆分为多个PDF,库会处理。 您甚至可以将其合并到现有 PDF 中,或管理 PDF 表单。
using System.Net.Mail;
using System.IO;
var stream = new MemoryStream(summary.BinaryData);
var attachment = new Attachment(
stream,
$"Application-{submission.ReferenceNumber}.pdf",
"application/pdf"
);
var message = new MailMessage
{
From = new MailAddress("applications@yourcompany.com"),
Subject = $"Your Application Confirmation – Ref {submission.ReferenceNumber}",
Body = $"Dear {submission.FullName},\n\nThank you for submitting your application. Your submission summary is attached.",
};
message.To.Add(submission.Email);
message.Attachments.Add(attachment);
using var client = new SmtpClient("smtp.yourprovider.com");
await client.SendMailAsync(message);Imports System.Net.Mail
Imports System.IO
Dim stream As New MemoryStream(summary.BinaryData)
Dim attachment As New Attachment(
stream,
$"Application-{submission.ReferenceNumber}.pdf",
"application/pdf"
)
Dim message As New MailMessage With {
.From = New MailAddress("applications@yourcompany.com"),
.Subject = $"Your Application Confirmation – Ref {submission.ReferenceNumber}",
.Body = $"Dear {submission.FullName}," & vbCrLf & vbCrLf & "Thank you for submitting your application. Your submission summary is attached."
}
message.To.Add(submission.Email)
message.Attachments.Add(attachment)
Using client As New SmtpClient("smtp.yourprovider.com")
Await client.SendMailAsync(message)
End Using附带 PDF 的示例邮件
相同的 BinaryData 字节数组将与提交记录一同写入 Blob 存储——Azure Blob、AWS S3 或您的文档管理系统。 审阅人员每次从任务队列中提取任务时,打开的都是格式统一的文档。
实际好处
**合规性与审计追踪。**该 PDF 文件基于申请人提交的原始数据生成,并带有提交时的精确时间戳。 它是不可变的,合规团队可以按需生成其快照,而无需从可能已发生变化的数据库中重新构建。
**客户信心。**申请人将收到一份Professional且带有品牌标识的文件,以确认其提交的内容。 对于抵押贷款借款人或保险申请人而言,该确认函具有实际效力,可与其他保单或贷款文件一并存档。
**内部效率。**审阅人员基于标准化 PDF 文件进行工作,该文件以统一的结构和格式呈现每份提交内容。 不再需要截图,不再在 WORD 中复制粘贴字段值,不同团队成员处理的提交内容之间不再存在格式不一致的问题。
**模板复用。**HTML 模板是唯一控制文档布局的元素。 当表格新增一个部分、共同申请人字段或修订后的披露块时,团队只需更新一个文件,此后所有提交的内容都会自动反映这些变更。
**不依赖外部服务。**IronPDF 作为 NuGet 包在进程内运行。 提交流程中不收取按文档计费的 API 费用,无需监控外部渲染服务,且不存在网络依赖。
结语
提交的网页表单会生成结构化数据。 若不刻意为之,它无法生成文档。 这种差距造成了实际的摩擦:对于无法获得可保留确认的申请人、需要处理不一致导出数据的审核人员,以及需要向审计员提交实际可用材料的合规团队而言,都带来了困扰。
在提交时生成 PDF 文件,只需在处理程序中增加一个步骤,即可弥补这一缺口。 IronPDF for .NET 提供了全面的 PDF 功能,可在同一库内生成、读取、编辑和提取文档内容。 如果您想将其应用于您自己的表单工作流进行测试,请开始您的 30 天试用,并在做出任何决定前验证输出结果。

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。
相关文章


