最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用PdfiumViewer庫處理PDF文件的實踐方法

 更新時間:2026年01月05日 09:15:14   作者:拾荒的小海螺  
PdfiumViewer 是一個基于 Google PDFium 引擎 的 .NET 封裝庫,在 C# 項目中處理 PDF 是一個高頻但復(fù)雜的需求,因此本文介紹了C#中使用PdfiumViewer庫處理PDF文件的實踐方法,需要的朋友可以參考下

1、簡述

在 C# 項目中處理 PDF 是一個高頻但復(fù)雜的需求,例如:

  • 預(yù)覽 PDF 頁面
  • 將 PDF 轉(zhuǎn)為圖片(JPG / PNG / TIFF)
  • 獲取 PDF 頁數(shù)、尺寸信息
  • 提取文本內(nèi)容
  • 配合 OCR、歸檔、批處理系統(tǒng)使用

相比 iText(偏編輯/生成)或 PDFBox(Java),
PdfiumViewer 更適合“解析 + 渲染”場景,尤其在 Windows 桌面程序(WinForms / WPF)中表現(xiàn)非常優(yōu)秀。

2、什么是 PdfiumViewer?

PdfiumViewer 是一個基于 Google PDFium 引擎 的 .NET 封裝庫,主要特點:

  • 高性能 PDF 渲染
  • 原生支持 PDF → Bitmap
  • API 簡潔,易上手
  • 非商業(yè)許可(免費)
  • 僅支持 Windows(依賴 pdfium.dll)

適合以下場景:

  • WinForms / WPF PDF 預(yù)覽器
  • PDF 批量轉(zhuǎn)圖片
  • PDF 頁面級解析
  • 與 OpenCV / OCR(Tesseract)聯(lián)動

PdfiumViewer 的核心能力:

功能是否支持
獲取 PDF 頁數(shù)?
渲染為 Bitmap?
指定 DPI 渲染?
提取文本?
頁面裁切?
編輯 PDF?(非設(shè)計目標)

3、安裝 PdfiumViewer

1、NuGet 安裝

dotnet add package PdfiumViewer

2、引入 pdfium.dll(關(guān)鍵)

PdfiumViewer 必須依賴 pdfium.dll

  • x86 / x64 需與程序一致

常用來源:

  • PdfiumViewer.Native.x86
  • PdfiumViewer.Native.x64

推薦方式:

dotnet add package PdfiumViewer.Native.x64

WinForms / WPF / Console 都適用

4、實踐樣例

using PdfiumViewer;

using (var document = PdfDocument.Load("sample.pdf"))
{
    int pageCount = document.PageCount;
    Console.WriteLine($"PDF 頁數(shù):{pageCount}");
}

這是所有 PDF 處理流程的起點。

實戰(zhàn)一:PDF 渲染為 Bitmap(核心功能)

單頁轉(zhuǎn)圖片

using PdfiumViewer;
using System.Drawing;

using (var document = PdfDocument.Load("sample.pdf"))
{
    int pageIndex = 0;

    // 300 DPI 高清渲染
    var image = document.Render(
        pageIndex,
        300,
        300,
        PdfRenderFlags.Annotations
    );

    image.Save("page1.png", System.Drawing.Imaging.ImageFormat.Png);
}

參數(shù)說明:

參數(shù)含義
pageIndex從 0 開始
dpiX / dpiY分辨率(建議 200–300)
RenderFlags是否包含注釋

實戰(zhàn)二:PDF 全量轉(zhuǎn)圖片(批量處理)

using PdfiumViewer;
using System.Drawing.Imaging;

void ConvertPdfToImages(string pdfPath, string outputDir)
{
    using var document = PdfDocument.Load(pdfPath);

    Directory.CreateDirectory(outputDir);

    for (int i = 0; i < document.PageCount; i++)
    {
        using var image = document.Render(i, 300, 300, PdfRenderFlags.Annotations);
        string path = Path.Combine(outputDir, $"page_{i + 1}.jpg");
        image.Save(path, ImageFormat.Jpeg);
    }
}

常用于:

  • PDF → OCR
  • PDF → 歸檔圖片
  • PDF → OpenCV 圖像處理流水線

實戰(zhàn)三:獲取 PDF 頁面尺寸(像素 / 物理尺寸)

using PdfiumViewer;

using var document = PdfDocument.Load("sample.pdf");

var size = document.PageSizes[0];

Console.WriteLine($"寬:{size.Width} pt");
Console.WriteLine($"高:{size.Height} pt");

PDF 中單位是 Point(1 pt = 1/72 inch)

轉(zhuǎn)為像素:

int dpi = 300;
int widthPx = (int)(size.Width / 72 * dpi);
int heightPx = (int)(size.Height / 72 * dpi);

對齊 OpenCV、圖像裁切時非常關(guān)鍵。

實戰(zhàn)四:提取 PDF 文本內(nèi)容

using PdfiumViewer;

using var document = PdfDocument.Load("sample.pdf");

string text = document.GetPdfText(0);
Console.WriteLine(text);

注意事項:

  • 僅適用于 文本型 PDF
  • 掃描件(圖片 PDF)需 OCR
  • 表格結(jié)構(gòu)會被打平

常見用途:

  • 關(guān)鍵字定位
  • 文檔分類
  • 索引構(gòu)建

實戰(zhàn)五:結(jié)合 WinForms 顯示 PDF 頁面

using PdfiumViewer;

PdfDocument document = PdfDocument.Load("sample.pdf");

pictureBox1.Image = document.Render(
    0,
    pictureBox1.Width,
    pictureBox1.Height,
    true
);

實際項目中可實現(xiàn):

  • 上一頁 / 下一頁
  • 縮放
  • 滾動預(yù)覽

實戰(zhàn)六:PDF 頁面裁切后渲染(區(qū)域提?。?/h3>
using PdfiumViewer;
using System.Drawing;

using var document = PdfDocument.Load("sample.pdf");

var pageSize = document.PageSizes[0];

RectangleF crop = new RectangleF(
    0,
    0,
    pageSize.Width / 2,
    pageSize.Height / 2
);

using var image = document.Render(
    0,
    300,
    300,
    crop,
    PdfRenderFlags.None
);

image.Save("crop.png");

常用于:

  • 表格區(qū)域識別
  • 公章 / 簽名區(qū)域截取
  • OCR 局部增強

5、總結(jié)

PdfiumViewer 是 C# 世界中處理 PDF 解析與渲染的利器

  • 簡單
  • 高效
  • 穩(wěn)定
  • 非商業(yè)免費

如果你的項目涉及:

  • PDF → 圖片
  • OCR 前處理
  • WinForms / WPF 桌面工具
  • 批量文檔處理

PdfiumViewer 是非常值得優(yōu)先選擇的方案。

以上就是C#使用PdfiumViewer庫處理PDF文件的實踐方法的詳細內(nèi)容,更多關(guān)于C# PdfiumViewer處理PDF文件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

胶南市| 广宗县| 保康县| 乌鲁木齐县| 镇平县| 耒阳市| 遵义市| 温宿县| 合水县| 大邑县| 株洲县| 砀山县| 泸定县| 普定县| 洪雅县| 广南县| 谷城县| 尚志市| 精河县| 雅江县| 兖州市| 商河县| 长岭县| 铜川市| 荣成市| 南投市| 襄城县| 石家庄市| 桓仁| 马关县| 宜都市| 泰兴市| 玉屏| 蓬安县| 公主岭市| 康乐县| 固阳县| 双峰县| 兴海县| 宝清县| 醴陵市|