在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
PDF (便携式文档格式) 文件被广泛用于在不同平台上以一致的格式共享和保存文档。本文将探讨如何使用 wkhtmltopdf 库在 C++ 中生成 PDF 文件。 这是一个开源的命令行工具,用于将 HTML 内容转换为 PDF 文件。利用该库的强大功能,我们可以在 C++ 应用程序中以编程方式从 HTML 内容创建 PDF 文档。
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++ 编程的集成开发环境。
3.具备 C++ 编程的基本知识。
在 Code::Blocks 中创建一个项目,然后按照以下步骤链接库文件夹和文件。如果你使用的是其他集成开发环境,选项可能会有所不同,但你需要在项目中引用下载的库,以使其正常工作。
为确保 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)
要链接 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)
首先,我们要在 C++ 程序中加入必要的头文件,以使用 wkhtmltopdf 库的功能。在 main.cpp 源代码文件的开头加入以下头文件:
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
如果不使用图形用户界面,则需要禁用它以避免出错。代码如下
wkhtmltopdf_init(false);
接下来,我们需要初始化全局和对象设置指针,然后初始化 wkhtmltopdf
转换器。
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
现在,让我们创建一个 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());
Wkhtmltopdf 提供了一种将 HTML 内容转换为 PDF 的转换器方法。下面是代码片段:
wkhtmltopdf_convert(converter);
使用 wkhtmltopdf_get_output
函数,我们可以获取作为内存缓冲流的 PDF 数据。它还会返回 PDF 的长度。以下示例将执行此任务:
const unsigned char* pdfData;
const int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
现在,"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();
成功创建 PDF 文件后,必须清理 Wkhtmltopdf 分配的资源,否则会导致内存泄漏。
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
wkhtmltopdf_deinit();
cout << "PDF created successfully." << endl;
现在,构建项目并使用 F9 执行代码。输出结果将生成并保存在项目文件夹中。生成的 PDF 文件如下:
IronPDF 是一个 .NET C# PDF 库,它允许开发人员毫不费力地从 HTML 创建 PDF 文档。它提供了一个直观的 API,简化了从 HTML 创建 PDF 文件的过程。
在处理 PDF 时,IronPDF 功能强大,用途广泛。它不仅能从简单的 HTML 文档创建 PDF,还能创建带有 CSS 样式、JavaScript 交互甚至动态内容的复杂网页。此外,您还可以通过快速访问其转换方法来开发不同的 PDF 转换器。
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 文档。
有关如何 创建 PDF 从不同的资源(如 HTML 文件、网页 URL 和图像)中获取数据,请访问以下网站 代码示例页面.
在本文中,我们探索了如何使用 wkhtmltopdf C++ 库在 C++ 中生成 PDF,还学习了如何使用 IronPDF 在 C# 中生成 PDF 文档。
有了 IronPDF,用 .NET Framework 语言从 HTML 内容生成 PDF 文件就变得简单易行了。其广泛的功能集使其成为开发人员转换 PDF 文件的重要工具。 HTML 转 PDF 在他们的 C# 项目中。无论是生成报告、发票,还是任何其他需要将 HTML 精确转换为 PDF 的文档,IronPDF 都是可靠高效的解决方案。
IronPDF 用于开发目的是免费的,但用于商业用途则需要获得许可。它还提供 免费试用 用于商业用途,以测试其完整功能。 下载IronPDF 并亲自体验一下。