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

通過(guò)C#代碼輕松提取PDF文本

 更新時(shí)間:2024年11月21日 08:36:59   作者:Eiceblue  
提取PDF中的文本可以幫助我們對(duì)PDF文檔進(jìn)行內(nèi)容再利用,從而制作新的PDF文檔或?qū)?nèi)容插入到其他格式的文檔中,下面我們就來(lái)看看如何使用C#代碼提取PDF文本吧

PDF格式因其跨平臺(tái)兼容性強(qiáng)、安全性高等特點(diǎn)而被廣泛使用。但PDF文檔不易編輯,因此提取PDF文檔的文本從而進(jìn)行操作是一個(gè)常見(jiàn)的需求。提取PDF中的文本可以幫助我們對(duì)PDF文檔進(jìn)行內(nèi)容再利用,從而制作新的PDF文檔或?qū)?nèi)容插入到其他格式的文檔中。在.NET平臺(tái),我們可以使用簡(jiǎn)單的C#代碼輕松實(shí)現(xiàn)PDF文檔文本的提取。

本文所使用的方法需要用到Free Spire.PDF for .NET,NuGet:PM> Install-Package FreeSpire.PDF。

用C#提取PDF文本的操作步驟

庫(kù)中提供了PdfTextExtractor類(lèi)來(lái)處理PDF文檔的文本提取。我們可以使用頁(yè)面創(chuàng)建PdfTextExtractor對(duì)象,然后使用PdfTextExtractor.ExtractText()方法來(lái)提取頁(yè)面文本。同時(shí),PdfTextExtractOptions類(lèi)能對(duì)提取選項(xiàng)進(jìn)行設(shè)置,如設(shè)置是否保留布局和設(shè)置提取的頁(yè)面區(qū)域。以下是一般操作步驟。

創(chuàng)建PdfDocument對(duì)象。

使用PdfDocument.LoadFromFile()方法載入PDF文檔。

使用PdfDocument.Pages[]屬性獲取指定頁(yè)面,也可以遍歷所有頁(yè)面。

使用頁(yè)面創(chuàng)建PdfTextExtractor對(duì)象。

創(chuàng)建PdfTextExtractOptions對(duì)象并設(shè)置提取選項(xiàng)。

使用PdfTextExtractor.ExtractText(PdfTextExtractOptions)方法提取頁(yè)面文本。

將提取的文本寫(xiě)入文件或用于其他用途。

釋放資源。

提取PDF文本不保留文本布局

如果需要不保留文本布局直接提取文本內(nèi)容,可以將PdfTextExtractOptions.IsSimpleExtraction屬性設(shè)置為true來(lái)實(shí)現(xiàn)。以下是代碼示例:

using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Text;

namespace ExtractPDFText
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創(chuàng)建PdfDocument對(duì)象
            PdfDocument pdf = new PdfDocument();

            // 載入PDF文檔
            pdf.LoadFromFile("Sample.pdf");

            // 創(chuàng)建PdfTextExtractOptions對(duì)象,并設(shè)置不保留布局
            PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();
            extractOptions.IsSimpleExtraction = true;

            // 創(chuàng)建StringBuilder對(duì)象以儲(chǔ)存提取的文本
            StringBuilder extractedText = new StringBuilder();

            // 遍歷文檔頁(yè)面
            foreach (PdfPageBase page in pdf.Pages)
            {
                // 使用頁(yè)面創(chuàng)建PdfTextExtractor對(duì)象
                PdfTextExtractor extractor = new PdfTextExtractor(page);
                // 提取當(dāng)前頁(yè)面的文本
                string text = extractor.ExtractText(extractOptions);
                // 將提取到的文本添加到StringBuilder對(duì)象
                extractedText.Append(text);
            }

            // 將提取結(jié)果寫(xiě)入文本文件
            using (StreamWriter writer = new StreamWriter("output/ExtractedPDFText.txt", false, Encoding.UTF8))
            {
                writer.Write(extractedText.ToString());
            }

            // 釋放資源
            pdf.Close();
        }
    }
}

結(jié)果

保留文本布局提取PDF文本

如果在提取PDF文本時(shí)需要保留PDF文本的布局(使用空格填補(bǔ)),則可以直接使用默認(rèn)的提取選項(xiàng)提取PDF文本。以下是代碼示例:

using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Text;

namespace ExtractPDFTextAndLayout
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創(chuàng)建PdfDocument對(duì)象
            PdfDocument pdf = new PdfDocument();

            // 載入PDF文檔
            pdf.LoadFromFile("Sample.pdf");

            // 創(chuàng)建文本提取選項(xiàng)
            PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();

            // 創(chuàng)建StringBuilder對(duì)象以儲(chǔ)存提取的文本
            StringBuilder extractedText = new StringBuilder();

            // 遍歷文檔頁(yè)面
            foreach (PdfPageBase page in pdf.Pages)
            {
                // 使用頁(yè)面創(chuàng)建PdfTextExtractor對(duì)象
                PdfTextExtractor extractor = new PdfTextExtractor(page);
                // 提取當(dāng)前頁(yè)面的文本
                string text = extractor.ExtractText(extractOptions);
                // 將提取到的文本添加到StringBuilder對(duì)象
                extractedText.Append(text);
            }

            // 將提取結(jié)果寫(xiě)入文本文件
            using (StreamWriter writer = new StreamWriter("output/ExtractedPDFText.txt", false, Encoding.UTF8))
            {
                writer.Write(extractedText.ToString());
            }

            // 釋放資源
            pdf.Close();
        }
    }
}

結(jié)果

提取PDF頁(yè)面指定區(qū)域內(nèi)的文本

我們還可以通過(guò)PdfTextExtractOptions.ExtractArea屬性設(shè)置提取區(qū)域,從而實(shí)現(xiàn)提取頁(yè)面上指定區(qū)域內(nèi)的文本。以下是代碼示例:

using Spire.Pdf.Texts;
using Spire.Pdf;

using System.Drawing;
using System.Text;

namespace ExtractPDFTextArea
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創(chuàng)建PdfDocument對(duì)象
            PdfDocument pdf = new PdfDocument();

            // 載入PDF文檔
            pdf.LoadFromFile("Sample.pdf");

            // 獲取指定頁(yè)面
            PdfPageBase page = pdf.Pages[0];

            // 創(chuàng)建PdfTextExtractor對(duì)象
            PdfTextExtractor extractor = new PdfTextExtractor(page);

            // 創(chuàng)建PdfTextExtractOptions對(duì)象
            PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();
            // 設(shè)置要提取文本的矩形區(qū)域
            extractOptions.ExtractArea = new RectangleF(80, 100, 250, 150);

            // 提取頁(yè)面上指定位置的文本
            string extractedText = extractor.ExtractText(extractOptions);

            // 將提取的文本寫(xiě)入文本文件
            File.WriteAllText("output/ExtractPDFPageAreaText.txt", extractedText, Encoding.UTF8);

            // 釋放資源
            pdf.Close();
        }
    }
}

結(jié)果

以上就是通過(guò)C#代碼輕松提取PDF文本的詳細(xì)內(nèi)容,更多關(guān)于C#提取PDF文本的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

始兴县| 莒南县| 叙永县| 中阳县| 广昌县| 建始县| 天气| 怀宁县| 高陵县| 凤城市| 繁昌县| 南丹县| 简阳市| 江永县| 习水县| 安陆市| 三亚市| 天等县| 广昌县| 镇沅| 台中市| 托里县| 高陵县| 会东县| 阿尔山市| 鄂托克旗| 齐齐哈尔市| 锡林浩特市| 枣强县| 出国| 淅川县| 景泰县| 承德市| 育儿| 明水县| 文山县| 即墨市| 高碑店市| 辉县市| 油尖旺区| 三门峡市|