亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

通過(guò)C#獲取PDF中指定文本或所有文本的字體信息

 更新時(shí)間:2025年01月17日 09:05:10   作者:Eiceblue  
在設(shè)計(jì)和出版行業(yè)中,字體的選擇和使用對(duì)最終作品的質(zhì)量有著重要影響,然而,有時(shí)我們可能會(huì)遇到包含未知字體的PDF文件,這使得我們無(wú)法準(zhǔn)確地復(fù)制或修改文檔,本文將介紹如何通過(guò)C#獲取PDF中指定文本或所有文本的字體信息,需要的朋友可以參考下

引言

在設(shè)計(jì)和出版行業(yè)中,字體的選擇和使用對(duì)最終作品的質(zhì)量有著重要影響。然而,有時(shí)我們可能會(huì)遇到包含未知字體的PDF文件,這使得我們無(wú)法準(zhǔn)確地復(fù)制或修改文檔。獲取PDF中的字體信息可以解決這個(gè)問(wèn)題,讓我們能夠更好地處理這些文件。無(wú)論是用于重新設(shè)計(jì)、文檔翻譯還是個(gè)人學(xué)習(xí),了解如何獲取PDF中的字體信息都是一項(xiàng)非常有用的技能。本文將介紹如何通過(guò)C#獲取PDF中指定文本或所有文本的字體信息。

獲取字體的操作需要用到第三方庫(kù) Spire.PDF for .NET,我們可以通過(guò)以下鏈接下載產(chǎn)品包后手動(dòng)添加引用,或者直接通過(guò)NuGet安裝。

點(diǎn)擊下載 Spire.PDF for.NET

C# 獲取PDF中指定文本的字體信息

通過(guò)使用Spire.PDF for .NET提供的 PdfTextFragment 類下的各屬性,我們可以獲取字體名稱、大小、樣式和顏色。主要實(shí)現(xiàn)步驟如下

  1. 加載 PDF 文件,然后獲取指定頁(yè)面。
  2. 通過(guò) PdfTextFinder.Find() 方法查找指定文本,并返回一個(gè) PdfTextFragment 對(duì)象。
  3. 創(chuàng)建一個(gè)StringBuilder實(shí)例來(lái)存儲(chǔ)信息。
  4. 遍歷所有查找到的文本
  5. 通過(guò) PdfTextFragment.Text 屬性獲取找到的文本內(nèi)容。
  6. 通過(guò) PdfTextFragment.TextStates[0].FontName 屬性獲取找到的文本的字體名稱。
  7. 通過(guò) PdfTextFragment.TextStates[0].FontSize 屬性獲取找到的文本的字體大小。
  8. 通過(guò) PdfTextFragment.TextStates[0].FontFamily 屬性獲取找到的文本的字體類型。
  9. 通過(guò) PdfTextFragment.TextStates[0].IsBold 和 PdfTextFragment.TextStates[0].IsSimulateBold 屬性指示字體是否加粗或模擬加粗(字體樣式設(shè)置為填充和描邊)。
  10. 通過(guò) PdfTextFragment.TextStates[0].IsItalic 屬性指示字體是否為斜體.
  11. 使用 PdfTextFragment.TextStates[0].ForegroundColor 屬性獲取找到的文本的字體顏色。
  12. 將獲取到的字體信息添加到StringBuilder實(shí)例中,然后寫(xiě)入 txt 文件。

C#代碼:

using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Text;

namespace GetTextFont
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加載PDF文件
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("E:\\PythonPDF\\南極.pdf");

            // 獲取第一頁(yè)
            PdfPageBase page = pdf.Pages[0];

            // 創(chuàng)建PdfTextFinder實(shí)例
            PdfTextFinder finds = new PdfTextFinder(page);

            // 查找頁(yè)面上指定文本
            finds.Options.Parameter = TextFindParameter.None;
            List<PdfTextFragment> result = finds.Find("南極洲");

            // 創(chuàng)建StringBuilder實(shí)例
            StringBuilder str = new StringBuilder();

            // 遍歷所有查找到的文本
            foreach (PdfTextFragment find in result)
            {
                // 獲取文本
                string text = find.Text;
                // 獲取字體名
                string FontName = find.TextStates[0].FontName;
                // 獲取字體大小
                float FontSize = find.TextStates[0].FontSize;
                // 獲取字體類型
                string FontFamily = find.TextStates[0].FontFamily;
                // 判斷是否加粗或模擬加粗
                bool IsBold = find.TextStates[0].IsBold;
                bool IsSimulateBold = find.TextStates[0].IsSimulateBold;
                // 判斷是否為斜體
                bool IsItalic = find.TextStates[0].IsItalic;
                // 獲取字體顏色
                Color color = find.TextStates[0].ForegroundColor;

                // 將獲取到的信息添加到StringBuilder實(shí)例中
                str.AppendLine(text);
                str.AppendLine("字體名: " + FontName);
                str.AppendLine("字體大?。?" + FontSize);
                str.AppendLine("字體系列: " + FontFamily);
                str.AppendLine("是否加粗: " + IsBold);
                str.AppendLine("是否模擬加粗: " + IsSimulateBold);
                str.AppendLine("是否為斜體: " + IsItalic);
                str.AppendLine("字體顏色:" + color);
                str.AppendLine(" ");
            }
            // 寫(xiě)入一個(gè)txt文件
            File.WriteAllText("Pdf字體.txt", str.ToString());
        }
    }
}

C# 獲取PDF文檔中用到的所有字體信息

PdfUsedFont 類表示PDF文檔中使用到的字體,它提供了不同的屬性來(lái)幫助我們獲取字體名稱、大小、類型和樣式等。主要實(shí)現(xiàn)步驟如下:

  1. 加載 PDF 文件。
  2. 通過(guò) PdfDocument.UsedFonts 屬性獲取 PDF 文件中使用的所有字體。
  3. 創(chuàng)建一個(gè)StringBuilder實(shí)例來(lái)存儲(chǔ)信息。
  4. 遍歷所有使用到的字體。
  5. 通過(guò) PdfUsedFont.Name 屬性獲取字體名稱。
  6. 通過(guò) PdfUsedFont.Size 屬性獲取字體大小。
  7. 通過(guò) PdfUsedFont.Type 屬性獲取字體類型。
  8. 通過(guò) PdfUsedFont.Style 屬性獲取字體樣式。
  9. 將獲取到的字體信息添加到StringBuilder實(shí)例中,然后寫(xiě)入 txt 文件。

C#代碼:

using Spire.Pdf;
using Spire.Pdf.Graphics.Fonts;
using Spire.Pdf.Graphics;
using System.IO;
using System.Text;

namespace GetTextFont
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加載PDF文件
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("E:\\PythonPDF\\南極.pdf");

            // 獲取PDF文件中使用到的字體
            PdfUsedFont[] fonts = pdf.UsedFonts;

            // 創(chuàng)建StringBuilder實(shí)例
            StringBuilder str = new StringBuilder();

            // 遍歷所有使用到的字體
            foreach (PdfUsedFont font in fonts)
            {
                // 獲取字體名
                string name = font.Name;

                // 獲取字體大小
                float size = font.Size;

                // 獲取字體類型
                PdfFontType type = font.Type;

                // 獲取字體樣式
                PdfFontStyle style = font.Style;

                // 將獲取到的信息添加到StringBuilder實(shí)例中
                str.AppendLine("字體名稱: " + name + " 字體大?。?" + size + " 字體類型: " + type + " 字體樣式: " + style);

            }

            // 寫(xiě)入一個(gè)txt文件
            File.WriteAllText("Pdf字體信息.txt", str.ToString());
        }
    }
}

到此這篇關(guān)于通過(guò)C#獲取PDF中指定文本或所有文本的字體信息的文章就介紹到這了,更多相關(guān)C#獲取PDF文本信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 常用不同日志庫(kù)的區(qū)別與示例解析

    C# 常用不同日志庫(kù)的區(qū)別與示例解析

    C# 作為一種流行的編程語(yǔ)言,有許多優(yōu)秀的日志庫(kù)可供選擇,本文將介紹一些常見(jiàn)的 C# 日志庫(kù),包括 NLog、log4net、Serilog 和 Microsoft.Extensions.Logging,并通過(guò)示例展示它們的使用方法及區(qū)別,感興趣的朋友一起看看吧
    2024-06-06
  • 說(shuō)說(shuō)C#的async和await的具體用法

    說(shuō)說(shuō)C#的async和await的具體用法

    本篇文章主要介紹了說(shuō)說(shuō)C#的async和await的具體用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • C#泛型集合類型實(shí)現(xiàn)添加和遍歷

    C#泛型集合類型實(shí)現(xiàn)添加和遍歷

    這篇文章介紹了C#泛型集合類型實(shí)現(xiàn)添加和遍歷的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • C#實(shí)現(xiàn)日歷效果

    C#實(shí)現(xiàn)日歷效果

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)日歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C# 前端無(wú)插件打印導(dǎo)出實(shí)現(xiàn)方式詳解

    C# 前端無(wú)插件打印導(dǎo)出實(shí)現(xiàn)方式詳解

    本文講述了使用C#實(shí)現(xiàn)前端無(wú)插件的打印和導(dǎo)出功能,介紹了相關(guān)技術(shù)和方法,適合需要在項(xiàng)目中實(shí)現(xiàn)相應(yīng)功能的開(kāi)發(fā)者參考
    2024-10-10
  • C# WCF簡(jiǎn)單入門圖文教程(VS2010版)

    C# WCF簡(jiǎn)單入門圖文教程(VS2010版)

    這篇文章主要介紹了WCF簡(jiǎn)單入門圖文教程,版本是VS2010版,幫助大家輕松學(xué)習(xí)了解DataContract、ServiceContract等特性,感興趣的小伙伴們可以參考一下
    2016-03-03
  • c# for循環(huán)中創(chuàng)建線程執(zhí)行問(wèn)題

    c# for循環(huán)中創(chuàng)建線程執(zhí)行問(wèn)題

    這篇文章主要介紹了有關(guān)c# for循環(huán)中創(chuàng)建線程執(zhí)行問(wèn)題,下面文章將將以舉例的方式展開(kāi)for循環(huán)中創(chuàng)建線程執(zhí)行問(wèn)題的內(nèi)容,需要的朋友可以參考一下,希望對(duì)你有所幫助
    2021-11-11
  • C#?將Excel轉(zhuǎn)為PDF時(shí)自定義表格紙張大小的代碼思路

    C#?將Excel轉(zhuǎn)為PDF時(shí)自定義表格紙張大小的代碼思路

    這篇文章主要介紹了C#?將Excel轉(zhuǎn)為PDF時(shí)自定義表格紙張大小的代碼思路,轉(zhuǎn)換前的頁(yè)面大小設(shè)置為該版本中寫(xiě)入的新功能,在舊版本和免費(fèi)版本中暫不支持,感興趣的朋友跟隨小編一起看看實(shí)例代碼
    2021-11-11
  • C#基于XNA生成隨機(jī)顏色的方法

    C#基于XNA生成隨機(jī)顏色的方法

    這篇文章主要介紹了C#基于XNA生成隨機(jī)顏色的方法,涉及XNA Color類的使用技巧,需要的朋友可以參考下
    2015-06-06
  • LZW數(shù)據(jù)壓縮算法的原理分析

    LZW數(shù)據(jù)壓縮算法的原理分析

    我希望通過(guò)本文的介紹,能給那些目前不太了解lzw算法和該算法在gif圖像中應(yīng)用,但渴望了解它的人一些啟發(fā)和幫助。拋磚引玉而已,更希望兄弟們提出寶貴的意見(jiàn)。
    2016-06-06

最新評(píng)論