欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

引言

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

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

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

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

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

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

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

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

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

            }

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

到此這篇關(guān)于通過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ù)可供選擇,本文將介紹一些常見的 C# 日志庫(kù),包括 NLog、log4net、Serilog 和 Microsoft.Extensions.Logging,并通過示例展示它們的使用方法及區(qū)別,感興趣的朋友一起看看吧
    2024-06-06
  • 說說C#的async和await的具體用法

    說說C#的async和await的具體用法

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

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

    這篇文章介紹了C#泛型集合類型實(shí)現(xiàn)添加和遍歷的方法,文中通過示例代碼介紹的非常詳細(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# 前端無插件打印導(dǎo)出實(shí)現(xiàn)方式詳解

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

    本文講述了使用C#實(shí)現(xiàn)前端無插件的打印和導(dǎo)出功能,介紹了相關(guān)技術(shù)和方法,適合需要在項(xiàng)目中實(shí)現(xiàn)相應(yīng)功能的開發(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í)行問題

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

    這篇文章主要介紹了有關(guān)c# for循環(huán)中創(chuàng)建線程執(zhí)行問題,下面文章將將以舉例的方式展開for循環(huán)中創(chuàng)建線程執(zhí)行問題的內(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è)置為該版本中寫入的新功能,在舊版本和免費(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ù)壓縮算法的原理分析

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

最新評(píng)論