C++ 创建 PDF 文件

您所在的位置:网站首页 c生成pdf C++ 创建 PDF 文件

C++ 创建 PDF 文件

2024-07-15 06:49| 来源: 网络整理| 查看: 265

随着互联网的力量,一切都变成了数字化,无纸化系统变得流行起来。数字文档(即 PDF)是无纸化系统的组成部分之一,通过提供自动生成和处理功能使生活变得更轻松。大多数企业使用 PDF 文档自动化来动态生成报告、收据、发票和其他业务文档。因此,在本文中,我将演示如何将 PDF 自动化功能集成到基于 C++ 的应用程序中,并使用 C++ 生成 PDF 文件。

C++ PDF 库#

为了创建 PDF 文件,我们将使用 Aspose.PDF for C++ API,它是一个原生 C++ 库,可以以编程方式处理 PDF 文档。它允许您创建支持各种 PDF 元素的交互式 PDF 文档。 Aspose.PDF for C++ 可在 NuGet 以及 Aspose 的 下载 部分中获得。

在 C++ 中创建 PDF 文件#

首先,我们将创建一个简单的 PDF 文件,并以段落的形式在第一页添加一些文本。以下是要遵循的步骤:

创建一个 Document 对象。将页面添加到文档的 PageCollection。获取页面的段落。创建一个 TextFragment 对象并将其添加到段落中。保存 PDF 文档。

以下代码示例展示了如何在 C++ 中创建 PDF 文档。

// 创建文档 auto doc = MakeObject(); auto pages = doc->get_Pages(); pages->Add(); // 页数从 1 开始 auto page = pages->idx_get(1); auto paragraps = page->get_Paragraphs(); // 创建文本片段 auto text = MakeObject(u"PDF API for C++"); auto ts = text->get_TextState(); // 设置文本状态 ts->set_FontSize(16); ts->set_FontStyle(FontStyles::Italic); // 添加到段落 paragraps->Add(text); // 将文本添加到段落 paragraps->Add(MakeObject(u"This example shows how to create a PDF with text using Aspose.PDF for C++.")); // 保存 PDF 文件 doc->Save(u"Example1.pdf"); 输出#在 C++ 中使用 TextBuilder 创建 PDF 文件#

在本节中,我将向您展示如何使用 TextBuilder 类在页面上附加各种文本片段和段落。此外,在此示例中,您将学习如何设置文本片段在页面上的位置。以下是执行此操作的步骤:

创建一个文档对象。向文档添加页面。创建一个 TextBuilder 对象。创建一个 TextFragment 并添加其文本。设置 TextFragment 的位置。使用 TextBuilder 附加 TextFragment。保存 PDF 文档。

以下代码示例展示了如何在 C++ 中使用 TextBuilder 创建 PDF。

// 创建文档对象 auto doc = MakeObject(); auto pages = doc->get_Pages(); pages->Add(); // 创建文本构建器 auto tb = MakeObject(pages->idx_get(1)); // 创建文本片段 auto text = MakeObject(u"Hello world!"); text->set_Position(MakeObject(100, 800)); // 附加文本片段 tb->AppendText(text); // 创建另一个 TextFragment text = MakeObject(u"This example is created by Aspose.Pdf for C++."); text->set_Position(MakeObject(150, 750)); tb->AppendText(text); // 创建另一个 TextFragment text = MakeObject(u"It demonstrates how to use TextBuilder to append text into PDF file."); text->set_Position(MakeObject(200, 700)); tb->AppendText(text); // 创建文本段落 auto par = MakeObject(); par->set_Position(MakeObject(250,650)); par->AppendLine(u"New paragraph"); par->AppendLine(u"Line 2"); par->AppendLine(u"Line 3"); tb->AppendParagraph(par); // 保存 PDF 文档 doc->Save(u"Created PDF.pdf"); 输出#在 C++ 中创建带有图像的 PDF 文件#

您还可以使用 Aspose.PDF for C++ 创建和添加图像到 PDF 文档。以下是执行此操作的步骤:

创建一个文档对象。向文档添加页面。创建要添加的图像。将图像添加到 PDF 文件。保存 PDF 文件。

以下代码示例展示了如何在 C++ 中创建图像并将其添加到 PDF 文档。

// 创建文档对象 auto doc = MakeObject(); auto pages = doc->get_Pages(); pages->Add(); auto page = pages->idx_get(1); // 创建图像 auto stream = MakeObject(); SharedPtr bitmap = MakeObject(200, 200); SharedPtr graphics = Graphics::FromImage(bitmap); graphics->Clear(System::Drawing::Color::get_Yellow()); graphics->FillRectangle(Brushes::get_Blue(), System::Drawing::Rectangle(0, 0, 200, 100)); bitmap->Save(stream, Imaging::ImageFormat::get_Bmp()); // 创建矩形 double x = 100.0, y = 600.0, width = 200.0, height = 200.0; auto rect = MakeObject(x, y, x + width, y + height); // 将图像添加到 PDF stream->Seek(0, System::IO::SeekOrigin::Begin); page->AddImage(stream, rect); // 保存 PDF 文档 doc->Save(u"Created PDF.pdf"); 输出#在 C++ 中创建带有附件的 PDF 文件#

PDF 格式还允许向文档添加附件。有多种文件格式可以作为 PDF 文件的附件添加。以下是使用 Aspose.PDF for C++ 在 PDF 中嵌入文件的步骤:

加载要附加到 SharedPtr 中的文件.创建 Document 类的对象。将文件嵌入到文档中。保存 PDF 文件。

以下代码示例显示了如何在 C++ 中向 PDF 文档添加附件。

// 创建一个文本文件 System::IO::File::WriteAllText(u"Attachment.txt", u"Some info"); SharedPtr fileSpecification = MakeObject(u"Attachment.txt", u"Sample text file"); // 将附件添加到文档的附件集合 auto doc = MakeObject(); doc->get_EmbeddedFiles()->Add(fileSpecification); // 将页面添加到 PDF doc->get_Pages()->Add(); // 保存 PDF 文档 doc->Save(u"Created PDF.pdf"); 输出#了解更多关于 Aspose.PDF for C++#

您可以从 文档 和源代码 示例 中了解更多关于 Aspose.PDF for C++ 的信息。

也可以看看#在 C++ 中将 Word DOC 或 DOCX 转换为 PDF


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3