文档彩票走势图>>Aspose.PDF使用教程>>C++版PDF处理控件Aspose.PDF功能演示:使用C ++以编程方式从PDF文档中提取文本
C++版PDF处理控件Aspose.PDF功能演示:使用C ++以编程方式从PDF文档中提取文本
在数字信息领域,从文档(PDF,文字处理,网页等)中提取文本具有多种用例。例如,它可以用于解析文档,执行文本分析,信息检索,将文档内容存储到数据库中等等。如果缩小范围,PDF是保存和共享数字信息的最广泛使用的文档格式之一。这种受欢迎程度使PDF文档成为信息的巨大来源。因此,从PDF文档中解析或提取文本可能会涉及多种文本分析方案。
为了在C ++应用程序中自动进行PDF解析,本文演示了如何使用C ++ 从PDF文档中提取文本。它涵盖以下文本提取方案:
- 使用C ++从PDF文档中提取文本。
- 使用C ++从PDF文档中的特定页面提取文本。
- 使用C ++从PDF文档中逐页提取文本。
使用C ++从PDF提取文本
Aspose.PDF for C ++使您可以通过几个简单的步骤来解析PDF文档。以下是从PDF文档提取文本的方法。
- 创建一个PdfExtractor类的对象。
- 使用PdfExtractor-> BindPdf()函数加载PDF文档。
- 使用PdfExtractor-> ExtractText()函数将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中提取文本。在这种情况下,可以通过设置开始和结束页码来指定PDF中的页面范围。以下是从PDF文档中特定页面提取文本的步骤。
- 创建一个PdfExtractor类的对象。
- 使用PdfExtractor-> BindPdf()函数加载PDF文档。
- 分别使用PdfExtractor-> set_StartPage()和PdfExtractor-> set_EndPage()函数设置开始和结束页码。
- 使用PdfExtractor-> ExtractText()函数从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中逐页提取文本的步骤。
- 创建一个PdfExtractor类的对象。
- 使用PdfExtractor-> BindPdf()函数加载PDF文档。
- 调用PdfExtractor-> ExtractText()函数将文本从PDF文档检索到PdfExtractor。
- 使用PdfExtractor-> HasNextPageText()函数循环浏览每个页面。
- 使用PdfExtractor-> GetNextPageText()函数将文本提取到内存流中。
- 从内存流中读取文本。
下面的代码示例演示如何在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是目前国内外非常火爆且功能强大的文件格式敏捷开发控件,但因为产品众多、技术问题复杂等因素,也常常遭受开发人员吐槽。如果您也正在使用Aspose相关产品,点击下方按钮,来谈谈Aspose的优劣,您的感受对我们相当宝贵哦~