将多个 pdf 文档合并为一个 pdf 文件可以帮助您整合文档内容,让您更轻松地阅读、打印和共享文件。合并后,您只需要处理一个而不是多个文件。在本文中,您将学习如何使用 spire.pdf for c 在 c 中将多个 pdf 文件合并为一个 pdf。
安装 spire.pdf for c
有两种方法可以将 spire.pdf for c 集成到您的应用程序中。一种方法是通过安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 nuget 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。
如何将 spire. pdf for c 集成到 c 程序中
在 c 中将多个 pdf 文档合并为一个 pdf 文件
spire.pdf for c 提供了一个静态方法 - pdfdocument::mergefiles(std::vector
- 将输入 pdf 文件的路径放入向量中。
- 使用 pdfdocument::mergefiles(std::vector
inputfiles) 方法合并向量中路径指定的 pdf 文件。 - 指定输出文件路径。
- 使用 pdfdocumentbase->save() 方法保存结果 pdf 文件。
- c
#include "spire.pdf.o.h"
using namespace spire::pdf;
using namespace std;
using namespace spire::common;
int main() {
//将输入pdf文件的路径放入矢量
std::vector files = { l"input\\文件_1.pdf", l"input\\文件_2.pdf", l"input\\文件_3.pdf" };
//合并向量中路径指定的 pdf 文件
pdfdocumentbase* doc = pdfdocument::mergefiles(files);
//指定输出文件路径
wstring outputfile = l"output\\合并pdf.pdf";
//保存结果 pdf 文件
doc->save(outputfile.c_str(), fileformat::pdf);
doc->close();
}
在 c 中合并来自流的多个 pdf 文件
您可以使用 pdfdocument::mergefiles(std::vector< stream*> streams) 方法将多个 pdf 流合并为一个 pdf。以下是详细步骤:
- 将输入的 pdf 文件读入流。
- 将流放入向量中。
- 使用 pdfdocument::mergefiles(std::vector< stream*> streams) 方法合并 pdf 流。
- 使用 pdfdocumentbase->save() 方法保存结果 pdf 文件。
- c
#include "spire.pdf.o.h"
using namespace spire::pdf;
using namespace std;
using namespace spire::common;
int main() {
//将输入的 pdf 文件读入流
stream* stream1 = new stream(l"input\\文件_1.pdf");
stream* stream2 = new stream(l"input\\文件_2.pdf");
stream* stream3 = new stream(l"input\\文件_3.pdf");
//将流放入向量中
std::vector streams = { stream1, stream2, stream3 };
//合并 pdf 流
pdfdocumentbase* doc = pdfdocument::mergefiles(streams);
//指定输出文件路径
wstring outputfile = l"output\\合并pdf.pdf";
//保存结果 pdf 文件
doc->save(outputfile.c_str(), fileformat::pdf);
doc->close();
}
在 c 中将选定的 pdf 文件页面合并为单个 pdf 文件
您可以使用 pdfdocument->insertpage(pdfdocument lddoc, int pageindex) 或 pdfdocument->insertpagerange(pdfdocument lddoc, int startindex, int endindex) 方法将多个 pdf 文件的特定页面或一系列页面合并为单个 pdf 文件。 以下是详细步骤:
- 将输入 pdf 文件的路径放入向量中。
- 创建一个 pdfdocument 对象向量。
- 遍历向量中的路径。
- 使用 pdfdocument->loadfromfile() 方法加载由路径指定的 pdf 文件。
- 初始化 pdfdocument 类的实例以创建新的 pdf 文档。
- 使用 pdfdocument->insertpage(pdfdocument lddoc, int pageindex)或 pdfdocument->insertpagerange(pdfdocument lddoc, int startindex, int endindex) 方法将加载的 pdf 文件中的特定页面或一系列页面插入新 pdf。
- 使用 pdfdocument->savetofile() 方法保存结果 pdf。
- c
#include "spire.pdf.o.h"
using namespace spire::pdf;
using namespace std;
using namespace spire::common;
int main() {
//将输入的 pdf 文件的路径放入向量中
std::vector files = { l"input\\文件_2.pdf", l"input\\文件_4.pdf" };
//创建一个 pdfdocument 对象向量
std::vector docs(files.size());
//遍历向量中的路径
for (int i = 0; i < files.size(); i )
{
//加载路径指定的pdf文件
docs[i] = new pdfdocument();
docs[i]->loadfromfile(files[i].c_str());
}
//新建一个 pdf 文档
pdfdocument* newdoc = new pdfdocument();
//将第一个 pdf 的指定页面插入新 pdf
newdoc->insertpagerange(docs[0],0, 1);
//将第二个 pdf 的指定页面插入新 pdf
newdoc->insertpage(docs[1], 0);
//指定输出文件路径
wstring outputfile = l"output\\合并pdf文档.pdf";
//保存结果 pdf 文件
newdoc->savetofile(outputfile.c_str());
//关闭 pdfdocument 对象
newdoc->close();
for (auto doc : docs)
{
doc->close();
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。