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

.NET使用DocNET庫(kù)實(shí)現(xiàn)快速高效的操作PDF文檔

 更新時(shí)間:2025年07月21日 08:41:55   作者:追逐時(shí)光者  
PDF?文檔,作為日常工作中不可或缺的文檔格式,廣泛應(yīng)用于各類(lèi)場(chǎng)景,DocNET?是一個(gè)基于?.NET?開(kāi)源操作庫(kù),下面我們來(lái)看看.NET如何使用DocNET庫(kù)實(shí)現(xiàn)快速高效的操作PDF文檔吧

前言

PDF 文檔,作為日常工作中不可或缺的文檔格式,廣泛應(yīng)用于各類(lèi)場(chǎng)景。今天我們來(lái)講講在 .NET 中使用 DocNET 庫(kù)快速高效的操作 PDF 文檔。

項(xiàng)目介紹

DocNET 是一個(gè)基于 .NET 開(kāi)源(MIT license)、跨平臺(tái)(支持Windows、Linux和macOS平臺(tái))的旨在提供快速 PDF 編輯和數(shù)據(jù)提取的操作庫(kù)。它是基于 Chromium 所使用的 PDFium C++ 庫(kù)開(kāi)發(fā)的 .NET Standard 2.0 封裝庫(kù)。

項(xiàng)目特性

PDF 提取功能:支持 PDF 版本、頁(yè)數(shù)、頁(yè)面寬度、頁(yè)面高度、頁(yè)面文本、字符字體大小等相關(guān)PDF信息提取。

PDF 編輯功能: 支持分割 PDF 文檔、合并 PDF 文檔、解鎖 PDF 文檔。

支持渲染頁(yè)面為圖像、JPEG 圖片轉(zhuǎn)換為 PDF 文件等等。

項(xiàng)目源代碼

創(chuàng)建DocNETExercises控制臺(tái)應(yīng)用

創(chuàng)建一個(gè)名為 DocNETExercises 的.NET 9 控制臺(tái)應(yīng)用:

Docnet.Core NuGet包安裝

在 NuGet 包管理器中搜索 Docnet.Core 安裝:

獲取 PDF 文件頁(yè)碼和版本

 /// <summary>
        /// 獲取 PDF 文件頁(yè)碼和版本
        /// </summary>
        public static void GetPDFPageCountAndVersion()
        {
            using var docReader = _docNetInstance.GetDocReader(FilePath, new PageDimensions(1080, 1920));
            var getPageCount = docReader.GetPageCount();
            var getPdfVersion = docReader.GetPdfVersion();
            Console.WriteLine($"PageCount:{getPageCount},PdfVersion:{getPdfVersion}");
        }

獲取 PDF 文件的文本內(nèi)容

   /// <summary>
        /// 獲取 PDF 文件的文本內(nèi)容
        /// </summary>
        public static void GetPDFText()
        {
            using var docReader = _docNetInstance.GetDocReader(FilePath, new PageDimensions(1080, 1920));
            using var pageReader = docReader.GetPageReader(0); //注意pageIndex從0開(kāi)始

            // 獲取指定頁(yè)面的文本(自動(dòng)處理編碼)
            string pageText = pageReader.GetText();

            Console.WriteLine(pageText);
        }

將 JPEG 圖片轉(zhuǎn)換為 PDF 文件???????

 /// <summary>
        /// 將 JPEG 圖片轉(zhuǎn)換為 PDF 文件
        /// </summary>
        public static void JPEGImageConvertToPDF()
        {
            var file = new JpegImage
            {
                Bytes = File.ReadAllBytes("Assets/image1.jpeg"),
                Width = 580,
                Height = 387
            };

            var bytes = _docNetInstance.JpegToPdf(new[] { file });

            File.WriteAllBytes("Assets/output_file.pdf", bytes);
        }

將 PDF 文件轉(zhuǎn)換為圖片

  /// <summary>
        /// 將 PDF 文件轉(zhuǎn)換為圖片
        /// </summary>
        public static void PDFConvertToImage()
        {
            using var docReader = _docNetInstance.GetDocReader(FilePath, new PageDimensions(1080, 1920));
            //指定第一頁(yè)
            using var pageReader = docReader.GetPageReader(0);

            var rawBytes = pageReader.GetImage();
            var width = pageReader.GetPageWidth();
            var height = pageReader.GetPageHeight();
            var characters = pageReader.GetCharacters();

            using var bmp = new Bitmap(width, height, PixelFormat.Format32bppArgb);

            AddBytes(bmp, rawBytes);
            DrawRectangles(bmp, characters);

            using var stream = new MemoryStream();

            bmp.Save(stream, ImageFormat.Png);

            File.WriteAllBytes("Assets/output_image.png", stream.ToArray());
        }

        private static void AddBytes(Bitmap bmp, byte[] rawBytes)
        {
            var rect = new Rectangle(0, 0, bmp.Width, bmp.Height);

            var bmpData = bmp.LockBits(rect, ImageLockMode.WriteOnly, bmp.PixelFormat);
            var pNative = bmpData.Scan0;

            Marshal.Copy(rawBytes, 0, pNative, rawBytes.Length);
            bmp.UnlockBits(bmpData);
        }

        private static void DrawRectangles(Bitmap bmp, IEnumerable<Character> characters)
        {
            var pen = new Pen(Color.Red);

            using var graphics = Graphics.FromImage(bmp);

            foreach (var c in characters)
            {
                var rect = new Rectangle(c.Box.Left, c.Box.Top, c.Box.Right - c.Box.Left, c.Box.Bottom - c.Box.Top);
                graphics.DrawRectangle(pen, rect);
            }
        }

項(xiàng)目源碼地址

更多項(xiàng)目實(shí)用功能和特性歡迎前往項(xiàng)目開(kāi)源地址查看。

到此這篇關(guān)于.NET使用DocNET庫(kù)實(shí)現(xiàn)快速高效的操作PDF文檔的文章就介紹到這了,更多相關(guān).NET操作PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

金山区| 临西县| 莱州市| 高阳县| 闽清县| 东源县| 年辖:市辖区| 安达市| 哈巴河县| 南昌县| 周至县| 黑龙江省| 岳池县| 长岭县| 唐海县| 满洲里市| 永城市| 密山市| 甘南县| 五指山市| 柳河县| 彭山县| 宁强县| 肇东市| 大英县| 韶山市| 丽水市| 电白县| 海丰县| 增城市| 苗栗县| 沙田区| 浦江县| 突泉县| 河间市| 桃园县| 会昌县| 剑川县| 高平市| 房产| 涞源县|