在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
PDF (便携式文档格式) 文件被广泛用于文档交换,能够以编程方式读取其内容在各种应用程序中都很有价值。以下库可用来在 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 阅读器项目,我们需要具备以下先决条件:
1.系统中已安装 GCC 或 Clang 等 C++ 编译器。您可以使用任何支持 C++ 编程的集成开发环境。
2.系统中已安装 Xpdf 命令行工具。Xpdf 是 PDF 实用工具的集合,可从 Xpdf 网站获取。从此处下载:https://www.xpdfreader.com/。在环境变量路径中设置 Xpdf 的 bin 目录,以便在任何地方使用命令行工具访问它。
首先,在我们的 main.cpp 文件顶部添加必要的头文件:
#include <cstdlib>
#include <iostream>
#include <fstream>
让我们编写 C++ 代码,调用 Xpdf 命令行工具从 PDF 文档中提取文本内容。我们将使用以下 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;
}
在上述代码中,我们定义了 pdfPath
变量来保存输入 PDF 文件的路径。请确保将其替换为实际输入 PDF 文档的适当路径。
我们还定义了 outputFilePath
变量,用于保存 Xpdf 将生成的输出文本文件的路径。
代码使用 system
函数执行 pdftotext
命令,将输入 PDF 文件路径和输出文本文件路径作为命令行参数传递。status
变量捕捉命令的退出状态。
如果 pdftotext
执行成功 (表示状态为 0)然后,我们使用 ifstream
打开输出文本文件。然后,我们逐行读取文本内容,并将其存储到 textContent
字符串中。
最后,我们从生成的输出文件中将提取的文本内容输出到控制台。如果不需要可编辑的输出文本文件或想释放磁盘空间,在程序结束时,只需在主函数结束前使用以下命令删除该文件即可:
remove(outputFilePath.c_str());
编译 C++ 代码并运行可执行文件。如果在环境变量系统路径中添加了 pdftotext
,其命令将成功执行。程序将生成输出文本文件,并从 PDF 文档中提取文本内容。提取的文本会显示在控制台上。
IronPDF 是一个流行的 C# PDF 库,为处理 PDF 文档提供了强大的功能。它使开发人员能够以编程方式创建、编辑、修改和读取 PDF 文件;
使用 IronPDF 库读取 PDF 文档是一个简单明了的过程。该库提供了各种方法和属性,使开发人员能够从 PDF 页面中提取文本、图像、元数据和其他数据。提取的信息可用于进一步处理、分析或在应用程序中显示。
以下代码示例将 阅读 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);
//...
}
有关如何阅读 PDF 文档的详细信息,请访问链接 这里.
在本文中,我们学习了如何使用 Xpdf 命令行工具在 C++ 中读取 PDF 文档的内容。通过将 Xpdf 集成到 C++ 程序中,我们可以在一秒钟内以编程方式从 PDF 文件中提取文本内容。这种方法使我们能够在 C++ 应用程序中处理和分析提取的文本。
IronPDF 是一个功能强大的 C# 库,便于阅读和处理 PDF 文件。其丰富的功能、易用性和可靠的渲染引擎使其成为在 C&num 项目中使用 PDF 文档的开发人员的首选。