1. 产品
  2.   PDF格式
  3.   C++
  4.   VersyPDF
 
  

免费 C++ PDF API,用于读取、写入、合并和加密 PDF 文件。

领先的开源 C++ PDF 生成库,适用于 C 和 C++。它提供完整的功能集,可在跨平台环境中读取、创建、编辑、操作和保护 PDF 文档。

VersyPDF 库是什么?

在软件开发领域,生成和操作 PDF 文档的能力是常见需求。VersyPDF 是一个强大且开源的 C++/C 库,提供了一套完整的 PDF 文件处理工具。无论您是构建复杂的文档管理系统,还是仅需为应用程序添加 PDF 导出功能,VersyPDF 都能满足需求。该库对文本、图形、布局、字体、颜色等提供了非常细粒度的控制;适用于需要精确输出的应用场景(例如出版、自动化文档生成)。该库还提供了完整的 PDF 表单解决方案。您可以填写已有表单、读取表单字段的值,甚至从头创建新的表单字段。

VersyPDF 是一个开源、面向行业的 C 和 C++ PDF 库,由 Sybrex Systems 开发。其目标是为开发者提供完整的工具集,以在跨平台环境中读取、创建、编辑、操作和保护 PDF 文档。它拥有丰富的功能,使其成为各种 PDF 相关任务的多功能解决方案。该库支持读取和写入 PDF 文档、内容创建与操作、将图像嵌入 PDF 文档、字体和文本处理、更好的颜色和图形支持、创建和编辑书签、PDF 加密支持、PDF 文件优化等。凭借其全面的功能集和易于使用的 API,VersyPDF 是任何需要在应用程序中集成 PDF 功能的开发者的优秀选择。

Previous Next

开始使用 VersyPDF

推荐的 VersyPDF 安装方式是使用 CMake。请使用以下命令进行顺利安装。

通过 GitHub 安装 VersyPDF

 git clone  https://github.com/sybrexsys/VersyPDF.git

您也可以手动安装;直接从 GitHub 仓库下载最新的发布文件。

通过 C++ 读取和写入 PDF 文档

开源 VersyPDF 已经加入了在 C++ 应用程序中创建新 PDF 文档和读取现有 PDF 的支持。软件开发者可以从文件或内存缓冲区加载 PDF 文档,并轻松地将修改后的或新的 PDF 写回文件或内存。这意味着输入和输出都很灵活。下面的示例演示了如何使用 C++ 命令创建一个包含单页文本的简单 PDF 文档。

如何使用 C++ API 创建 PDF 文档并向其添加页面?

#include "versypdf.h"

int main()
{
    // Create a new PDF document
    CPDFDocument doc;
    doc.CreateNew();

    // Add a new page
    CPDFPage page = doc.AppendPage();

    // Set the font and draw some text
    page.BeginText();
    page.SetFont("Helvetica", 12);
    page.SetXY(100, 700);
    page.ShowText("Hello, VersyPDF!");
    page.EndText();

    // Save the document to a file
    doc.SaveToFile("hello.pdf");

    return 0;
}

通过 C++ API 向 PDF 添加图像和字体

开源 VersyPDF 让软件开发者能够轻松使用 C++ API 在 PDF 文档中处理图像和字体。该库支持嵌入常见的图像格式,如 TIFF、JPEG、PNG、BMP 等。它对于包含栅格内容(例如照片、扫描件)非常有用。下面的示例演示了软件开发者如何在 C++ 应用程序中将 JPEG 图像嵌入 PDF 文档。

如何在 C++ 应用程序中将 JPEG 图像嵌入 PDF 文档?

#include "versypdf.h"

int main()
{
    // Create a new PDF document
    CPDFDocument doc;
    doc.CreateNew();

    // Add a new page
    CPDFPage page = doc.AppendPage();

    // Load an image from a file
    CPDFImage image = doc.CreateImageFromFile("my_image.jpg");

    // Draw the image on the page
    page.DrawImage(image, 100, 500, 200, 150);

    // Save the document to a file
    doc.SaveToFile("image_example.pdf");

    return 0;
}
 

通过 C++ 合并 PDF 并操作 PDF 页面

VersyPDF 库已包含多项功能,可通过 C++ 库合并各种 PDF 文档并操作 PDF 文档中的页面。该库支持旋转页面、拆分、合并、追加以及仅用几行代码即可删除不需要的页面。此外,它还支持轻松地在现有页面中插入或追加新内容。以下是一个非常实用的示例,展示了如何合并两个 PDF 文件、添加书签以及在 C++ 应用中进行加密。

如何使用 C++ 合并两个 PDF、添加书签并应用加密?

#include "versypdf.h"

int main() {
    // Load existing PDFs
    VersyPDF::Document doc1, doc2;
    doc1.LoadFromFile("document1.pdf");
    doc2.LoadFromFile("document2.pdf");

    // Merge
    VersyPDF::Document merged = VersyPDF::Merge({ &doc1, &doc2 });

    // Add a bookmark to first page
    merged.AddBookmark("Start Here", /*pageIndex=*/0, /*destination=*/VersyPDF::Destination::FitPage);

    // Apply encryption: 256-bit AES, require password to open
    merged.SetSecurityHandler(VersyPDF::Security::AES256, /*ownerPwd=*/"ownerpass", /*userPwd=*/"userpass", /*permissions=*/VersyPDF::Permission::Print);

    // Save
    merged.Save("merged_encrypted.pdf");

    return 0;

通过 C++ 使用 PDF 表单

开源的 VersyPDF 库提供了完整的 PDF 表单处理解决方案。该库包含多种表单处理功能,例如从头创建新表单字段、填写已有表单、读取表单字段的值等。以下是一个非常实用的示例,演示了软件开发者如何通过 C++ 为仅包含单个文本字段的简易 PDF 表单填充内容。

如何通过 C++ 应用程序填写仅包含单个文本字段的简易 PDF 表单?

#include "versypdf.h"

int main()
{
    // Load an existing PDF document with a form
    CPDFDocument doc;
    doc.LoadFromFile("form.pdf");

    // Get the form field by name
    CPDFFormField field = doc.GetFormField("my_text_field");

    // Set the value of the form field
    field.SetValue("This is the new value");

    // Save the modified document
    doc.SaveToFile("form_filled.pdf");

    return 0;
}
 中国人