C++ 使用 Poppler 库将 PDF 文件从中间分割成上下两页
"要将一个 PDF 文件从中间分割成上下两页,你可以使用 C++ 编程语言和一些库来进行操作。以下是一个示例程序,演示了如何使用poppler库来实现此功能:\n\ncpp\n#include <poppler-document.h>\n#include <poppler-page.h>\n\nint main() {\n // 打开 PDF 文件\n GError* error = nullptr;\n PopplerDocument* document = poppler_document_new_from_file("input.pdf", nullptr, &error);\n if (error != nullptr) {\n g_error_free(error);\n return 1;\n }\n\n // 获取 PDF 文件的页面数量\n int numPages = poppler_document_get_n_pages(document);\n if (numPages < 1) {\n return 1;\n }\n\n // 获取中间页的索引\n int middlePageIndex = numPages / 2;\n if (middlePageIndex < 0 || middlePageIndex >= numPages) {\n return 1;\n }\n\n // 获取中间页对象\n PopplerPage* middlePage = poppler_document_get_page(document, middlePageIndex);\n if (middlePage == nullptr) {\n return 1;\n }\n\n // 创建上下两页的 PDF 文件\n PopplerDocument* topDocument = poppler_document_new();\n PopplerDocument* bottomDocument = poppler_document_new();\n\n // 将中间页之前的页添加到上一页\n for (int i = 0; i < middlePageIndex; i++) {\n PopplerPage* page = poppler_document_get_page(document, i);\n poppler_document_insert_page(topDocument, -1, page);\n }\n\n // 将中间页和之后的页添加到下一页\n for (int i = middlePageIndex; i < numPages; i++) {\n PopplerPage* page = poppler_document_get_page(document, i);\n poppler_document_insert_page(bottomDocument, -1, page);\n }\n\n // 保存上下两页的 PDF 文件\n poppler_document_save(topDocument, "top.pdf", nullptr, &error);\n if (error != nullptr) {\n g_error_free(error);\n return 1;\n }\n\n poppler_document_save(bottomDocument, "bottom.pdf", nullptr, &error);\n if (error != nullptr) {\n g_error_free(error);\n return 1;\n }\n\n // 清理资源\n g_object_unref(middlePage);\n g_object_unref(topDocument);\n g_object_unref(bottomDocument);\n g_object_unref(document);\n\n return 0;\n}\n\n\n请注意,此示例假设你已经正确安装了poppler库,并且将其头文件和库文件配置为你的编译环境中。此外,你需要将输入PDF文件命名为input.pdf,然后编译和运行上述代码,将会生成名为top.pdf和bottom.pdf的两个分割后的PDF文件。\n\n
原文地址: http://www.cveoy.top/t/topic/qwU1 著作权归作者所有。请勿转载和采集!