跳過到頁腳內容
使用IRONPDF

使用 IronPDF 將線上申請表轉換為 PDF 摘要

僅存在於資料庫中的表單資料所面臨的問題

IronPDF 首頁 當客戶完成多步驟的網頁表單(例如房貸申請、保險報價或員工入職資料包)時,資料便會存入資料庫的資料列或 JSON 載荷中。 就是這樣。 沒有 PDF 文件。 客戶未提供其提交內容的可列印紀錄或 PDF 檔案。 那位剛花費四十分鐘填寫收入詳情並上傳文件的借款人,最終只收到一封寫著"我們已收到您的申請"的確認電子郵件。他們既沒有任何 PDF 格式的文件可供存檔,若日後因文件完整性產生爭議,也無任何依據可供參照。

合規性問題則更為嚴重。 稽核團隊通常需要一份精確的快照,以呈現申請人在點擊"提交"按鈕當下,整份文件中確切提交的內容。 內部審閱人員通常透過截圖或複製貼上至 WORD 來彌補此缺口。 上述方法均無法產生標準且可重現的記錄,亦無法保留文件結構。 當審計員要求提供原始貸款申請書時,不應回答"讓我從資料庫匯出並重新排版"。今天,我們將探討 IronPDF 如何成為解決您問題的方案。

解決方案:在提交時以 C# 生成 PDF

透過 Iron Software 的 IronPDF 函式庫,.NET 應用程式和 .NET Core 系統可立即將 HTML 及表單提交資料轉換為帶有品牌標識的 PDF 文件。 此 .NET PDF 函式庫可確保您的團隊目前用於確認頁面的 HTML 內容與網頁技術,能直接作為 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 文件

使用 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);
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)
$vbLabelText   $csharpLabel

C# PDF 輸出範例

範例輸出 PDF 其易於使用的 API 讓您能夠生成 PDF 文件,並從本地檔案或簡單的 HTML 字串建立 PDF 檔案。 對於動態報表,ChromePdfRenderer 能完美處理 JavaScript 的執行。 請注意,在使用者介面中,您可能會看到藍色圓圈內的鑰匙圖示,或灰色圓圈內的鑰匙圖示,這些代表關鍵功能或授權狀態。

提示將您的公司標誌以 base64 資料 URI 格式直接嵌入 HTML 範本中,以確保無論應用程式部署於何處,都能正確顯示,且在渲染時無需依賴檔案路徑或 CDN 的可用性。

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);
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
$vbLabelText   $csharpLabel

附帶 PDF 檔案的電子郵件範例

Ironpdf Form To Pdf 4 related to 附帶 PDF 檔案的電子郵件範例 相同的 BinaryData 位元組陣列會與提交記錄一同寫入 Blob 儲存體 —— 例如 Azure Blob、AWS S3 或您的文件管理系統。 審核人員每次從工作佇列中提取文件時,開啟的都是格式一致的文件。

實際效益

合規性與稽核追蹤。此 PDF 文件是根據申請人提交的原始資料所產生,並於提交當下加註時間戳記。 它是不可變的,是合規團隊可按需產出的快照,無需從可能已變更的資料庫中重新建構。

客戶信心。申請人將收到一份專業且帶有品牌標識的文件,用以確認其提交的內容。 對於房貸借款人或保險申請人而言,這份確認書具有實質意義,是他們可以與其他保單或貸款文件一併提交的文件。

內部效率。審核人員依據標準化的 PDF 文件進行作業,該文件將每份提交內容以相同的結構與格式呈現。 不再需要螢幕截圖、不再將欄位值複製貼上至 WORD,也不再出現由不同團隊成員處理的提交內容格式不一致的情況。

模板重用。HTML 模板是唯一控制文件版面的元素。 當表單新增一個區塊、共同申請人欄位或修訂後的揭露聲明區塊時,團隊只需更新一個檔案,所有未來的提交內容便會自動反映這些變更。

不使用外部服務。IronPDF 作為 NuGet 套件在進程內運行。 無需支付按文件計費的 API 費用,無需監控外部渲染服務,且在提交流程中不依賴網路連線。

關閉

提交的網頁表單會產生結構化資料。 若未刻意為之,它並不會自動產生文件。 這種差距會造成實際的摩擦:對於無法獲得可保留確認的申請者、必須處理不一致匯出檔的審核人員,以及需要能實際提交給稽核人員的資料的合規團隊而言,皆是如此。

在提交時生成 PDF,只需在處理程序中增加一個步驟,即可彌補此缺口。 IronPDF for .NET 為 .NET 帶來完整的 PDF 功能,可在同一個函式庫內執行文件的產生、讀取、編輯及資料擷取。 若您想測試其與您自身表單工作流程的相容性,請先啟動 30 天試用,並在決定採用前驗證輸出結果。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我