
如何在C#中將PDF轉換為TIFF
僅存於資料庫中的表單資料問題
當客戶完成一個多步驟的網頁表單:如抵押貸款申請、保險報價或員工入職文件,資料會落在資料庫的某列或是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);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。 請注意,在UI中,您可能會看到一個藍色圓圈的鑰匙或一個灰色圓圈的鑰匙代表關鍵特徵或授權狀態。
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是從申請者提交的準確資料生成的,在提交時蓋上時間戳。 這是不可變的,合規性團隊可以根據需求生產,而不需要重建可能已經改變的資料庫。
客戶信心。 申請者收到一份專業且品牌化的文件,確認他們的提交。 對於抵押貸款申請者或保險申請者,這種確認有實際的分量,它們可以和其他政策或貸款文件一起存檔。
內部效率。 審核員工作於一個標準化的PDF,呈現每一次提交的相同結構和格式。 不再需要截屏、不再需要將欄位值複製貼到Word中、不同團隊成員處理的提交不會有格式不一致的問題。
模板重用。 HTML模板是唯一控制文件佈局的東西。 當表單新增一個新部分、一個共同申請者欄位、一個修訂的披露區塊時,團隊只需更新一個文件,未來所有的提交將自動反映這一變動。
無需外部服務。 IronPDF作為一個NuGet套件在程式中運行。 沒有每份文件的API費用,沒有需要監控的外部渲染服務,提交流程中不依賴網路。
結語
提交的網頁表單會生成結構化資料。 沒有刻意的努力,它不會生成一個文件。 這個空隙造成現實中的摩擦:對於沒有可保存確認的申請者、對於從不一致導出中工作的審核員以及對於需要能夠交給審計員的合規團隊。
在提交瞬間生成一個PDF閉合了這個空隙,這是一個位於處理程式中的附加步驟。 IronPDF為.NET帶來完整的PDF能力,生成、閱讀、編輯和從文件中提取,皆位於同一程式庫中。 如果您希望以自己的表單工作流程進行測試,開始您的免費30天試用,在承諾任何事之前先驗證輸出。

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。
相關文章


