男女做爽爽爽网站-男女做羞羞高清-男女做爰高清无遮挡免费视频-男女做爰猛烈-男女做爰猛烈吃奶啪啪喷水网站-内射白浆一区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 實戰指南:使用 iText7 高效處理 PDF 文件

admin
2025年4月19日 11:40 本文熱度 253

1. 引言

在開發中,處理 PDF 文件是一個常見的需求,例如生成報告、填充表單、設置權限或簽名等。iText7 是一個功能強大的 PDF 操作庫,支持多種 PDF 操作,包括表單填充、加密、數字簽名、分割與合并等。

本文將通過實戰,詳細介紹如何使用 iText7 在 C# 中處理 PDF 文件,幫助快速上手并解決常見問題。


2. 環境準備

2.1 安裝 iText7

dotnet add package itext7 --version 9.1.0
dotnet add package itext7.font-asian --version 9.1.0
dotnet add package itext7.bouncy-castle-adapter --version 9.1.0

3. 使用 iText7 處理 PDF 文件

3.1 填充 PDF 表單并設置為只讀

打開一個 PDF 文件,填充表單字段,并將其設置為只讀:

using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Forms;
using iText.Forms.Fields;

// 輸入 PDF 文件路徑
using System.Reflection.PortableExecutable;

string src = "template.pdf";
// 輸出 PDF 文件路徑
string dest = "filled_form.pdf";

// 打開現有的 PDF 文件
using (PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest)))
{
    // 獲取 PDF 表單
    PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true);

    // 填充表單字段
    form.GetField("Name").SetValue("Netshare").SetReadOnly(true);
    form.GetField("Date").SetValue("2025-04-19").SetReadOnly(true);
    form.GetField("Amount").SetValue("$1000").SetReadOnly(true);

    // 將表單字段設置為不可編輯
    form.FlattenFields();
}

Console.WriteLine("PDF 表單已填充并設置為只讀");

3.2 合并多個 PDF 文件

using System;
using iText.Kernel.Pdf;

string[] pdfFiles = { "file1.pdf""file2.pdf""file3.pdf" };
string dest = "merged.pdf";

using (PdfDocument mergedPdf = new PdfDocument(new PdfWriter(dest)))
{
    foreach (stringfilein pdfFiles)
    {
        using (PdfDocument pdf = new PdfDocument(new PdfReader(file)))
        {
            pdf.CopyPagesTo(1, pdf.GetNumberOfPages(), mergedPdf);
        }
    }
}

Console.WriteLine("PDF 文件已成功合并");

3.3 分割 PDF 文件

using System;
using iText.Kernel.Pdf;

string src = "large.pdf";
string outputDir = "output/";

using (PdfDocument pdfDoc = new PdfDocument(new PdfReader(src)))
{
    for (int i = 1; i <= pdfDoc.GetNumberOfPages(); i++)
    {
        string dest = $"{outputDir}page-{i}.pdf";
        using (PdfDocument singlePagePdf = new PdfDocument(new PdfWriter(dest)))
        {
            pdfDoc.CopyPagesTo(i, i, singlePagePdf);
        }
    }
}

Console.WriteLine("PDF 文件已成功分割");

3.4 加密 PDF 文件

using System;
using iText.Kernel.Pdf;

string src = "document.pdf";
string dest = "encrypted.pdf";

WriterProperties props = new WriterProperties()
    .SetStandardEncryption(
        "user_password".GetBytes(),
        "owner_password".GetBytes(),
        EncryptionConstants.ALLOW_PRINTING,
        EncryptionConstants.ENCRYPTION_AES_256
    );

using (PdfWriter writer = new PdfWriter(dest, props))
using (PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), writer))
{
    Console.WriteLine("PDF 文件已加密");
}

4. 常見問題及解決方案

4.1 表單字段名稱不匹配

問題描述:調用 GetField 時返回 null
解決方案:確保字段名稱與 PDF 表單中的實際名稱一致,可以使用 PDF 編輯工具(如 Adobe Acrobat)檢查字段名稱。

4.2 中文字體顯示問題

問題描述:填充的中文字符顯示為亂碼。
解決方案

  1. 1. 安裝 iText7 的字體支持包:
    dotnet add package itext7.font-asian
  2. 2. 在代碼中指定支持中文的字體:
    var font = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);
    field.SetFont(font);

5. 總結

通過本文的實戰案例,您可以使用 iText7 在 C# 中輕松實現 PDF 表單填充、文件合并、分割和加密等操作。iText7 提供了強大的功能,適用于各種復雜的 PDF 處理場景。


該文章在 2025/4/19 11:40:42 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 黑人特黄AA完整性大片 | 久久国产精品亚洲va麻豆 | 91女神爱丝袜vivian在线观看 | 欧美精品人妻aⅴ在线观视频 | 国产精品免费一级在线观看 | 亚洲永久精品免费ww52com | 黑料不打烊tttzzz首页 | 成人国产色情免费观看 | 一级国产片网站 | 欧美日本国产xxxxx视频 | 亚洲精品久久国产高清情趣 | 国产99久久亚洲综合精品 | 91精品欧美一区二区三区综合在 | 欧美又粗又大AAAAA级毛片 | 欧美.亚洲.日韩.天堂 | 2024国产激情视频在 | 国产91视频 | 国产成人综合一区二区三区 | 成人A片动漫无码免费播放 成人A片免费看男人社区 | 人妻体体内射精一区二区 | 国产福利一区二区精品秒 | 99国产精品人妻无码网站 | 亚洲免费一区二区 | 精品国产乱码久久久久久免费 | 成人免费视频无遮挡 | 婷婷成人基地 | 欧美成人一区二区三区不卡视频 | 好男人社区神马WWW在线观看 | 精品日产1区2卡三卡麻豆全集精选 | 中文字幕国产精品欧美激情 | 日韩射吧| 在线播放亚洲国产 | 国产丰满xxx高潮 | 精品无码久久久久久久久 | 人妻a级毛片无码中文字幕 人妻A片免费看 | 鲁丝片一区二区三区免费 | 欧美人妻精品一区二区三区 | 99精品久久久久久国产人妻 | 99精产国品一二三产区区 | 欧美亚洲另类综合在线中文字幕 | 亚洲国产艾杏在线观看 |