在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
PDF(便携式文档格式).NET、Java、Python 或 Node js 文件被广泛用于文档交换,能够以编程方式读取其内容在各种应用中都很有价值。 以下库可用来用 C++ 阅读 PDF:Poppler、Mupdf、Haru 免费 PDF 库、Xpdf 和 Qpdf。
本文将探讨如何使用 Xpdf 命令行工具在 C++ 中读取 PDF 文件。 Xpdf 提供一系列用于处理 PDF 文件的实用程序,包括提取文本内容。 通过将 Xpdf 集成到 C++ 程序中,我们可以从 PDF 文件中提取文本并进行编程处理。
Xpdf是一个开放源码软件套件,提供了一系列用于处理 PDF 的工具和库(便携式文档格式)文件 Xpdf 套件包括多个命令行实用程序和 C++ 库,可实现各种 PDF 相关功能,如解析、渲染、文本提取等。 Xpdf 的一些关键组件包括 pdfimages、pdftops、pdfinfo 和 pdfimages。 在这里,我们将使用 pdftotext
来阅读 PDF 文档。
pdftotext
是一种命令行工具,可从 PDF 文件中提取文本内容并将其输出为纯文本。 当您需要从 PDF 中提取文本信息进行进一步处理或分析时,该工具尤其有用。 使用选项,您还可以指定从哪一页或哪几页提取文本。
要使 PDF 阅读器项目提取文本,我们需要具备以下先决条件:
系统中已安装 GCC 或 Clang 等 C++ 编译器。 您只需使用任何支持 C++ 编程的集成开发环境即可。
首先,让我们在顶部的 main.cpp 文件中添加必要的头文件:
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iostream>
#include <fstream>
让我们编写调用 Xpdf 命令行工具从 PDF 文档中提取文本内容的 C++ 代码。 我们将使用以下 input.pdf 文件:
代码示例如下:
// Include C library
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
int main() {
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
if (status == 0) {
cout << "Text extraction successful." << endl;
} else {
cout << "Text extraction failed." << endl;
return 1;
}
ifstream outputFile(outputFilePath);
if (outputFile.is_open()) {
string textContent;
string line;
while (getline(outputFile, line)) {
textContent += line + "\n";
}
outputFile.close();
cout << "Text content extracted from PDF document:" << endl;
cout << textContent << endl;
} else {
cout << "Failed to open output file." << endl;
return 1;
}
return 0;
}
// Include C library
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
int main() {
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
if (status == 0) {
cout << "Text extraction successful." << endl;
} else {
cout << "Text extraction failed." << endl;
return 1;
}
ifstream outputFile(outputFilePath);
if (outputFile.is_open()) {
string textContent;
string line;
while (getline(outputFile, line)) {
textContent += line + "\n";
}
outputFile.close();
cout << "Text content extracted from PDF document:" << endl;
cout << textContent << endl;
} else {
cout << "Failed to open output file." << endl;
return 1;
}
return 0;
}
在上述代码中,我们定义了 pdfPath
变量来保存输入 PDF 文件的路径。请确保将其替换为实际输入 PDF 文档的适当路径。
我们还定义了 outputFilePath
变量,用于保存 Xpdf 将生成的输出文本文件的路径。
代码使用 system
函数执行 pdftotext
命令,将输入 PDF 文件路径和输出文本文件路径作为命令行参数传递。 status
变量捕捉命令的退出状态。
如果 pdftotext
执行成功(表示状态为 0)现在,我们使用 ifstream
打开输出文本文件。 然后,我们逐行读取文本内容,并将其存储到 textContent
字符串中。
最后,我们从生成的输出文件中将提取的文本内容输出到控制台。 如果您不需要可编辑的输出文本文件或希望释放磁盘空间,只需在程序结束时使用以下命令删除它,然后再结束主函数:
remove(outputFilePath.c_str());
remove(outputFilePath.c_str());
编译 C++ 代码并运行可执行文件。 如果将 pdftotext
添加到环境变量系统路径中,其命令将成功执行。 程序生成输出文本文件,并从 PDF 文档中提取文本内容。 然后将提取的文本显示在控制台上。
IronPdf C# 库概述C# PDF 是一个流行的 C# PDF 库,为处理 PDF 文档提供了强大的功能。 它使开发人员能够以编程方式创建、编辑、修改和读取 PDF 文件。
使用 IronPDF 库阅读 PDF 文档是一个简单明了的过程。 该库提供各种方法和属性,使开发人员能够从 PDF 页面中提取文本、图像、元数据和其他数据。 提取的信息可用于进一步处理、分析或在应用程序中显示。
以下代码示例将使用 IronPDF 阅读 PDF 文件:
// Rendering PDF documents to Images or Thumbnails
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Extracting Image and Text content from Pdf Documents
// open a 128 bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Get all text to put in a search index
string text = pdf.ExtractAllText();
// Get all Images
var allImages = pdf.ExtractAllImages();
// Or even find the precise text and images for each page in the document
for (var index = 0 ; index < pdf.PageCount ; index++)
{
int pageNumber = index + 1;
text = pdf.ExtractTextFromPage(index);
List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
//...
}
// Rendering PDF documents to Images or Thumbnails
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Extracting Image and Text content from Pdf Documents
// open a 128 bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Get all text to put in a search index
string text = pdf.ExtractAllText();
// Get all Images
var allImages = pdf.ExtractAllImages();
// Or even find the precise text and images for each page in the document
for (var index = 0 ; index < pdf.PageCount ; index++)
{
int pageNumber = index + 1;
text = pdf.ExtractTextFromPage(index);
List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
//...
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
有关如何阅读 PDF 文档的详细信息,请访问IronPDF C# PDF 阅读指南.
在本文中,我们学习了如何使用 Xpdf 命令行工具在 C++ 中读取 PDF 文档的内容。 通过将 Xpdf 集成到 C++ 程序中,我们可以在一秒钟内以编程方式从 PDF 文件中提取文本内容。 这种方法使我们能够在 C# 应用程序中处理和分析提取的文本。
探索IronPDF是一个功能强大的 C# 库,便于阅读和操作 PDF 文件。 其丰富的功能、易用性和可靠的渲染引擎使其成为在 C#; 项目中使用 PDF 文档的开发人员的热门选择。