c++批量将pdf转换成txt
时间: 2023-08-19 11:05:07 浏览: 47
你可以使用第三方库来实现将 PDF 转换成 TXT,比如 Poppler 和 Ghostscript。以下是基于 Poppler 的示例代码:
```c++
#include <iostream>
#include <poppler/cpp/poppler-document.h>
#include <poppler/cpp/poppler-page.h>
int main(int argc, char* argv[]) {
if (argc < 2) {
std::cerr << "Usage: " << argv[0] << " <input-pdf-files>" << std::endl;
return 1;
}
for (int i = 1; i < argc; ++i) {
try {
poppler::document doc(poppler::document::load_from_file(argv[i]));
if (!doc.is_valid()) {
std::cerr << "Invalid PDF file: " << argv[i] << std::endl;
continue;
}
std::string txt;
for (int j = 0; j < doc.get_page_count(); ++j) {
const auto page = doc.create_page(j);
txt += page->text().to_latin1();
}
const std::string output_filename = std::string(argv[i]) + ".txt";
std::ofstream output_file(output_filename);
output_file << txt;
std::cout << "Converted " << argv[i] << " to " << output_filename << std::endl;
} catch (std::exception& e) {
std::cerr << "Error while converting " << argv[i] << ": " << e.what() << std::endl;
}
}
return 0;
}
```
你可以将以上代码保存为 `pdf2txt.cpp`,使用以下命令编译:
```
g++ pdf2txt.cpp -o pdf2txt $(pkg-config --cflags --libs poppler-cpp)
```
之后,你可以使用以下命令将所有 PDF 文件转换成 TXT 文件:
```
./pdf2txt *.pdf
```