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

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

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

引言

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

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

點擊下載 Spire.PDF for.NET

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

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

  1. 加載 PDF 文件,然后獲取指定頁面。
  2. 通過 PdfTextFinder.Find() 方法查找指定文本,并返回一個 PdfTextFragment 對象。
  3. 創(chuàng)建一個StringBuilder實例來存儲信息。
  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實例中,然后寫入 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");

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

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

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

            // 創(chuàng)建StringBuilder實例
            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實例中
                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(" ");
            }
            // 寫入一個txt文件
            File.WriteAllText("Pdf字體.txt", str.ToString());
        }
    }
}

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

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

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

            }

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

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

相關(guān)文章

最新評論

余庆县| 河北区| 巴里| 余庆县| 含山县| 福贡县| 顺义区| 赣州市| 任丘市| 周至县| 子洲县| 旬阳县| 通山县| 任丘市| 沿河| 临泽县| 凤山市| 通山县| 龙井市| 涡阳县| 普兰县| 景洪市| 从化市| 辛集市| 涿州市| 佛教| 大理市| 额尔古纳市| 农安县| 前郭尔| 兴山县| 天津市| 宁安市| 南汇区| 台江县| 郯城县| 华安县| 乌兰县| 长宁县| 台江县| 思茅市|