PDF 工具

如何在 C++ 中创建 PDF 文件

发布 2023年七月5日
分享:

PDF (便携式文档格式) 文件被广泛用于在不同平台上以一致的格式共享和保存文档。本文将探讨如何使用 wkhtmltopdf 库在 C++ 中生成 PDF 文件。 这是一个开源的命令行工具,用于将 HTML 内容转换为 PDF 文件。利用该库的强大功能,我们可以在 C++ 应用程序中以编程方式从 HTML 内容创建 PDF 文档。

WkhtmltoPdf 库

wkhtmltopdf 是一款开源命令行工具和渲染引擎,可将 HTML 网页或 HTML 内容转换为 PDF 文档。它利用 WebKit 渲染引擎来解析和渲染 HTML、CSS 和 JavaScript,然后根据渲染的内容生成 PDF 文件。

"wkhtmltopdf C++ 库" (又称 "wkhtmltopdf C API").该库为 wkhtmltopdf 命令行工具提供了一个 C++ 接口,允许您在 C++ 应用程序中直接从 HTML 内容创建 PDF 文件。让我们使用 Wkhtmltopdf 库逐步深入了解在 C++ 中将 HTML 转换为 PDF 的过程。

先决条件

要在 C++ 中创建 PDF 文件,我们需要具备以下条件:

1.系统中已安装 GCC 或 Clang 等 C++ 编译器。您可以使用任何支持 C++ 编程的集成开发环境。

  1. 下载并安装 wkhtmltopdf 库**。您可以从官方 wkhtmltopdf 网站 并按照操作系统的说明进行安装。

3.具备 C++ 编程的基本知识。

C++ 在 Code:Blocks 中创建 PDF 项目

在 Code::Blocks 中创建一个项目,然后按照以下步骤链接库文件夹和文件。如果你使用的是其他集成开发环境,选项可能会有所不同,但你需要在项目中引用下载的库,以使其正常工作。

1.在搜索目录中添加 include 文件夹

为确保 Code::Blocks 能找到所需的头文件,我们需要设置搜索目录。

1.点击菜单栏中的 "项目 "菜单,选择 "构建选项"。确保选择 "调试"。

2.在 "构建选项 "对话框中,选择 "搜索目录 "选项卡。

3.在 "编译器 "选项卡下,点击 "添加 "按钮。

4.浏览到wkhtmltox头文件所在的目录 (例如,C:\Program Files\wkhtmltopdf\include)然后选择它。

5.最后点击 "确定 "关闭对话框。

![如何用 C++ 创建 PDF 文件:图 1](/static-assets/pdf/blog/cpp-create-pdf-tutorial/cpp-create-pdf-tutorial-1.webp)

2.在链接器设置中链接程序库

要链接 wkhtmltox 库,请按以下步骤操作:

1.再次点击菜单栏中的 "项目 "菜单,选择 "构建选项"。确保选择 "调试"。

2.在 "构建选项 "对话框中,选择 "链接器设置 "选项卡。

3.在 "链接库 "选项卡下,点击 "添加 "按钮。

4.浏览到wkhtmltox库文件所在的目录 (例如,C:\Program Files\wkhtmltopdf\lib)然后选择相应的库文件。

5.单击 "打开 "将库添加到项目中。

6.最后,点击 "确定 "关闭对话框。

![如何用 C++ 创建 PDF 文件:图 2](/static-assets/pdf/blog/cpp-create-pdf-tutorial/cpp-create-pdf-tutorial-2.webp)

使用 Wkhtmltopdf 在 C++ 中创建 PDF 的步骤

1.包含必要的库

首先,我们要在 C++ 程序中加入必要的头文件,以使用 wkhtmltopdf 库的功能。在 main.cpp 源代码文件的开头加入以下头文件:

#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>

2.禁用图形用户界面组件

如果不使用图形用户界面,则需要禁用它以避免出错。代码如下

wkhtmltopdf_init(false);

3.初始化设置和转换器

接下来,我们需要初始化全局和对象设置指针,然后初始化 wkhtmltopdf 转换器。

wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);

4.添加 PDF 内容

现在,让我们创建一个 HTML 字符串,在新创建的 PDF 文档中填写一些内容。代码如下

string htmlString = "<html><body><h1>Create a PDF in C++ using WKHTMLTOPDF Library</h1></body></html>";
wkhtmltopdf_add_object(converter, os, htmlString.c_str());

5.将 HTML 字符串转换为 PDF 文件

Wkhtmltopdf 提供了一种将 HTML 内容转换为 PDF 的转换器方法。下面是代码片段:

wkhtmltopdf_convert(converter);

6.以内存缓冲区形式获取输出

使用 wkhtmltopdf_get_output 函数,我们可以获取作为内存缓冲流的 PDF 数据。它还会返回 PDF 的长度。以下示例将执行此任务:

const unsigned char* pdfData;
const int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);

7.保存 PDF 文件

现在,"pdfData "指针将拥有来自 "wkhtmltopdf_converter "的字符流。要保存到 PDF 文件,我们首先要指定保存 PDF 的文件路径。然后,我们使用输出文件流,以二进制模式打开文件,并通过使用 reinterpret_cast 函数进行类型转换,将 pdfData 写入其中。最后,关闭文件。

const char* outputPath = "file.pdf";
ofstream outputFile(outputPath, ios::binary);
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();

8.释放内存

成功创建 PDF 文件后,必须清理 Wkhtmltopdf 分配的资源,否则会导致内存泄漏。

wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
wkhtmltopdf_deinit();

cout << "PDF created successfully." << endl;

9.执行代码并生成 PDF 文件

现在,构建项目并使用 F9 执行代码。输出结果将生成并保存在项目文件夹中。生成的 PDF 文件如下:

如何用 C++ 创建 PDF 文件:图 3

在 C&num 中创建 PDF 文件;

IronPDF

IronPDF 是一个 .NET C# PDF 库,它允许开发人员毫不费力地从 HTML 创建 PDF 文档。它提供了一个直观的 API,简化了从 HTML 创建 PDF 文件的过程。

在处理 PDF 时,IronPDF 功能强大,用途广泛。它不仅能从简单的 HTML 文档创建 PDF,还能创建带有 CSS 样式、JavaScript 交互甚至动态内容的复杂网页。此外,您还可以通过快速访问其转换方法来开发不同的 PDF 转换器。

下面是一个示例代码 创建 PDF 使用 HTML 字符串:

using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

我们创建一个 ChromePdfRenderer 实例,将 HTML 内容渲染为 PDF。我们调用 renderer 对象上的 RenderHtmlAsPdf 方法,并输入 HTML 字符串。这将生成 PDF 文档,然后我们使用 SaveAs 方法保存 PDF 文档。

如何用 C++ 创建 PDF 文件:图 4

有关如何 创建 PDF 从不同的资源(如 HTML 文件、网页 URL 和图像)中获取数据,请访问以下网站 代码示例页面.

结论

在本文中,我们探索了如何使用 wkhtmltopdf C++ 库在 C++ 中生成 PDF,还学习了如何使用 IronPDF 在 C# 中生成 PDF 文档。

有了 IronPDF,用 .NET Framework 语言从 HTML 内容生成 PDF 文件就变得简单易行了。其广泛的功能集使其成为开发人员转换 PDF 文件的重要工具。 HTML 转 PDF 在他们的 C# 项目中。无论是生成报告、发票,还是任何其他需要将 HTML 精确转换为 PDF 的文档,IronPDF 都是可靠高效的解决方案。

IronPDF 用于开发目的是免费的,但用于商业用途则需要获得许可。它还提供 免费试用 用于商业用途,以测试其完整功能。 下载IronPDF 并亲自体验一下。

< 前一页
如何在 C++ 中查看 PDF 文件
下一步 >
如何在 C++ 中读取 PDF 文件

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >