在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
PDF (可攜式文件格式) 檔案廣泛用於文件交換,能夠以程式化方式讀取其內容在各種應用中非常有價值。以下是一些用於在 C++ 中讀取 PDF 的庫:Poppler、Mupdf、Haru free PDF library、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讀取器專案以提取文本,我們需要以下先決條件到位:
在你的系統上安裝C++編譯器,例如GCC或Clang。你可以使用任何支援C++編程的IDE。
首先,在我們的 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 檔案 使用 IronPDF 進行格式化:
//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#項目中處理PDF文檔的熱門選擇。