• <menu id="w2i4a"></menu>
  • logo Aspose.PDF使用教程

    文檔首頁>>Aspose.PDF使用教程>>C++版PDF處理控件Aspose.PDF功能演示:使用C ++以編程方式從PDF文檔中提取文本

    C++版PDF處理控件Aspose.PDF功能演示:使用C ++以編程方式從PDF文檔中提取文本


    在數(shù)字信息領(lǐng)域,從文檔(PDF,文字處理,網(wǎng)頁等)中提取文本具有多種用例。例如,它可以用于解析文檔,執(zhí)行文本分析,信息檢索,將文檔內(nèi)容存儲到數(shù)據(jù)庫中等等。如果縮小范圍,PDF是保存和共享數(shù)字信息的最廣泛使用的文檔格式之一。這種受歡迎程度使PDF文檔成為信息的巨大來源。因此,從PDF文檔中解析或提取文本可能會涉及多種文本分析方案。

    為了在C ++應(yīng)用程序中自動進(jìn)行PDF解析,本文演示了如何使用C ++ 從PDF文檔中提取文本。它涵蓋以下文本提取方案:

    • 使用C ++從PDF文檔中提取文本。
    • 使用C ++從PDF文檔中的特定頁面提取文本。
    • 使用C ++從PDF文檔中逐頁提取文本。

    點擊下載最新版Aspose.PDF for C++

    C++版PDF處理控件Aspose.PDF功能演示:使用C ++以編程方式從PDF文檔中提取文本


    使用C ++從PDF提取文本

    Aspose.PDF for C ++使您可以通過幾個簡單的步驟來解析PDF文檔。以下是從PDF文檔提取文本的方法。

    • 創(chuàng)建一個PdfExtractor類的對象。
    • 使用PdfExtractor-> BindPdf()函數(shù)加載PDF文檔。
    • 使用PdfExtractor-> ExtractText()函數(shù)將PDF文檔中的文本提取到PdfExtractor。
    • 將提取的文本保存到MemoryStream對象中。
    • 從MemoryStream中以字符串形式讀取文本。

    以下代碼示例顯示了如何使用C ++從PDF中提取文本。

    auto extractor = MakeObject();
    // Bind source PDF document
    extractor->BindPdf(u"candy.pdf");
    // Extract text from PDF to PdfExtractor
    extractor->ExtractText();
    auto memStream = MakeObject();
    // Save text into memory stream
    extractor->GetText(memStream);
    auto unicode = System::Text::Encoding::get_Unicode();
    String allText = unicode->GetString(memStream->ToArray());
    // Print extracted text
    Console::WriteLine(u"Extracted text:");
    Console::WriteLine(allText);

    使用C ++從PDF中的特定頁面提取文本

    在某些情況下,僅需要從幾頁PDF中提取文本。在這種情況下,可以通過設(shè)置開始和結(jié)束頁碼來指定PDF中的頁面范圍。以下是從PDF文檔中特定頁面提取文本的步驟。

    • 創(chuàng)建一個PdfExtractor類的對象。
    • 使用PdfExtractor-> BindPdf()函數(shù)加載PDF文檔。
    • 分別使用PdfExtractor-> set_StartPage()和PdfExtractor-> set_EndPage()函數(shù)設(shè)置開始和結(jié)束頁碼。
    • 使用PdfExtractor-> ExtractText()函數(shù)從PDF提取文本。
    • 將提取的文本保存到MemoryStream對象中。
    • 從MemoryStream中以字符串形式讀取文本。

    以下代碼示例顯示了如何從C ++中的PDF特定頁面提取文本。

    auto extractor = MakeObject();
    // Bind source PDF document
    extractor->BindPdf(u"candy.pdf");
    // Set page range
    extractor->set_StartPage(2);
    extractor->set_EndPage(2);
    // Extract text from PDF to PdfExtractor
    extractor->ExtractText();
    auto memStream = MakeObject();
    // Save text into memory stream
    extractor->GetText(memStream);
    auto unicode = System::Text::Encoding::get_Unicode();
    String allText = unicode->GetString(memStream->ToArray());
    // Print extracted text
    Console::WriteLine(u"Extracted text:");
    Console::WriteLine(allText);

    在C ++中從PDF提取逐頁文本

    您可以從文檔的每一頁分別提取文本,而不是從PDF文檔提取所有文本。以下是從PDF中逐頁提取文本的步驟。

    • 創(chuàng)建一個PdfExtractor類的對象。
    • 使用PdfExtractor-> BindPdf()函數(shù)加載PDF文檔。
    • 調(diào)用PdfExtractor-> ExtractText()函數(shù)將文本從PDF文檔檢索到PdfExtractor。
    • 使用PdfExtractor-> HasNextPageText()函數(shù)循環(huán)瀏覽每個頁面。
    • 使用PdfExtractor-> GetNextPageText()函數(shù)將文本提取到內(nèi)存流中。
    • 從內(nèi)存流中讀取文本。

    下面的代碼示例演示如何在C ++中從PDF逐頁提取文本。

    auto extractor = MakeObject();
    // Bind source PDF document
    extractor->BindPdf(u"candy.pdf");
    // Extract text from PDF to PdfExtractor
    extractor->ExtractText();
    auto unicode = System::Text::Encoding::get_Unicode();
    int pageNumber = 1; 
    
    while (extractor->HasNextPageText())
    {
    	auto memStream = MakeObject();
    	extractor->GetNextPageText(memStream);
    	String text;
    	// Specify Unicode encoding type in StreamReader constructor
    	auto streamReader = MakeObject(memStream, unicode);
    	streamReader->get_BaseStream()->Seek(0, SeekOrigin::Begin);
    	text = streamReader->ReadToEnd();
    	streamReader->Dispose();
    	// Print extracted text
    	std::cout << "Page: " << pageNumber << "\n"; Console::Write(text); std::cout << "\n------------------------\n"; pageNumber++; }

    Aspose是目前國內(nèi)外非?;鸨夜δ軓?qiáng)大的文件格式敏捷開發(fā)控件,但因為產(chǎn)品眾多、技術(shù)問題復(fù)雜等因素,也常常遭受開發(fā)人員吐槽。如果您也正在使用Aspose相關(guān)產(chǎn)品,點擊下方按鈕,來談?wù)凙spose的優(yōu)劣,您的感受對我們相當(dāng)寶貴哦~

    一起聊聊Aspose的感受吧

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();