Бесплатный C++ PDF API для чтения, записи, объединения & шифрования PDF‑файлов.
Ведущая открытая библиотека C++ для генерации PDF для C и C++. Она предоставляет полный набор функций для чтения, создания, редактирования, манипулирования и защиты PDF‑документов в кроссплатформенных средах.
Что такое библиотека VersyPDF?
В мире разработки программного обеспечения возможность генерировать и манипулировать PDF‑документами является обычным требованием. VersyPDF — мощная, открытая библиотека на C++/C, предоставляющая полный набор инструментов для работы с PDF‑файлами. Независимо от того, создаёте ли вы сложную систему управления документами или просто хотите добавить возможность экспорта PDF в своё приложение, VersyPDF покрывает все ваши потребности. Библиотека обеспечивает очень детальный контроль над текстом, графикой, макетом, шрифтами, цветом; подходит для приложений, которым нужен точный вывод (например, публикация, автоматическое создание документов). Библиотека предоставляет полное решение для работы с PDF‑формами. Вы можете заполнять существующие формы, считывать значения полей формы и даже создавать новые поля формы с нуля.
VersyPDF — это открытая, промышленного уровня библиотека PDF для C и C++, разработанная Sybrex Systems. Ее цель — предоставить разработчикам полный набор инструментов для чтения, создания, редактирования, манипулирования и защиты PDF‑документов в кроссплатформенных средах. Она обладает богатым набором функций, что делает её универсальным решением для широкого спектра задач, связанных с PDF. Библиотека поддерживает чтение и запись PDF‑документов, создание и манипуляцию контентом, встраивание изображений в PDF‑документы, работу со шрифтами и текстом, улучшенную поддержку цветов и графики, создание и редактирование закладок, поддержку шифрования PDF, оптимизацию PDF‑файлов и т.д. Благодаря обширному набору функций и простому в использовании API, VersyPDF является отличным выбором для любого разработчика, которому необходимо интегрировать возможности работы с PDF в свои приложения.
Начало работы с VersyPDF
Рекомендуемый способ установки VersyPDF — использование CMake. Пожалуйста, используйте следующую команду для беспроблемной установки.
Установить VersyPDF через GitHub
git clone https://github.com/sybrexsys/VersyPDF.git
Вы также можете установить его вручную; загрузите последние файлы релиза напрямую из репозитория GitHub.
Чтение и запись PDF‑документов с помощью C++
Открытый исходный код VersyPDF включает поддержку создания новых PDF‑документов и чтения существующих PDF в приложениях на C++. Разработчики могут загружать PDF‑документы из файлов или буферов памяти и с лёгкостью записывать изменённые или новые PDF обратно в файл или память. Это означает гибкость как ввода, так и вывода. Следующий пример демонстрирует, как создать простой PDF‑документ с одной страницей текста, используя команды C++.
Как создать PDF‑документы и добавить к ним страницу с помощью C++ API?
#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;
}
Добавление изображений и шрифтов в PDF через C++ API
Открытый исходный код VersyPDF упрощает разработчикам работу с изображениями и шрифтами в PDF‑документах с помощью C++ API. Библиотека поддерживает встраивание распространённых форматов изображений, таких как TIFF, JPEG, PNG, BMP и другие. Это очень полезно для включения растрового контента (например, фото, сканов). Следующий пример демонстрирует, как разработчики могут встроить JPEG‑изображение в PDF‑документ в приложениях на C++.
Как встроить JPEG‑изображение в PDF‑документ в приложениях C++?
#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;
}
Объединение PDF и управление страницами в PDF с помощью C++
Библиотека VersyPDF включает несколько функций для объединения различных PDF‑документов и управления страницами внутри PDF‑документов через C++ библиотеку. Библиотека поддерживает вращение страниц, разбиение, объединение, добавление и удаление нежелательных страниц всего несколькими строками кода. Кроме того, она также поддерживает вставку или добавление нового содержимого в существующие страницы с лёгкостью. Ниже приведён очень полезный пример, показывающий, как объединить два PDF‑файла, добавить закладку и применить шифрование в приложениях на C++.
Как объединить два PDF, добавить закладку и применить шифрование с помощью C++?
#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;
Работа с PDF‑формами через C++
Открытая библиотека VersyPDF предоставляет полное решение для работы с PDF‑формами. Библиотека включает различные функции для работы с формами, такие как создание новых полей формы с нуля, заполнение существующих форм, чтение значений полей формы и многое другое. Ниже приведён очень полезный пример, демонстрирующий, как разработчики могут заполнить простую PDF‑форму с единственным текстовым полем с помощью C++.
Как заполнить простую PDF-форму с одним текстовым полем с помощью приложений на C++?
#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;
}