C++版PDF处理控件Aspose.PDF功能演示:使用C ++以编程方式从PDF文档中提取文本

  • 使用C ++从PDF文档中提取文本。
  • 使用C ++从PDF文档中的特定页面提取文本。
  • 使用C ++从PDF文档中逐页提取文本。


C++版PDF处理控件Aspose.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 documentextractor->BindPdf(u"candy.pdf");// Extract text from PDF to PdfExtractorextractor->ExtractText();auto memStream = MakeObject();// Save text into memory streamextractor->GetText(memStream);auto unicode = System::Text::Encoding::get_Unicode();String allText = unicode->GetString(memStream->ToArray());// Print extracted textConsole::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 documentextractor->BindPdf(u"candy.pdf");// Set page rangeextractor->set_StartPage(2);extractor->set_EndPage(2);// Extract text from PDF to PdfExtractorextractor->ExtractText();auto memStream = MakeObject();// Save text into memory streamextractor->GetText(memStream);auto unicode = System::Text::Encoding::get_Unicode();String allText = unicode->GetString(memStream->ToArray());// Print extracted textConsole::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 documentextractor->BindPdf(u"candy.pdf");// Extract text from PDF to PdfExtractorextractor->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 constructorauto streamReader = MakeObject(memStream, unicode);streamReader->get_BaseStream()->Seek(0, SeekOrigin::Begin);text = streamReader->ReadToEnd();streamReader->Dispose();// Print extracted textstd::cout << "Page: " << pageNumber << "n"; Console::Write(text); std::cout << "n------------------------n"; pageNumber++; }

Aspose是目前国内外非常火爆且功能强大的文件格式敏捷开发控件,但因为产品众多、技术问题复杂等因素,也常常遭受开发人员吐槽。如果您也正在使用Aspose相关产品,点击下方按钮,来谈谈Aspose的优劣,您的感受对我们相当宝贵哦~

一起聊聊Aspose的感受吧

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月19日
下一篇 2020年3月19日

相关推荐

发表回复

登录后才能评论