1. Товары
  2.   PDF
  3.   C++
  4.   PDFGen
 
  

Бесплатный C API для PDF, позволяющий создавать новые PDF и добавлять изображения/штрихкоды.

Мощная открытая легковесная библиотека C для обработки PDF, позволяющая генерировать и управлять PDF‑документами. Поддерживает добавление текста, изображений, штрихкодов и фигур в PDF‑документы бесплатно.

Что такое библиотека PDFGen?

Создание и управление PDF‑документами программным способом является распространённой задачей в сфере разработки программного обеспечения. От генерации счетов‑фактур и отчётов до создания сложных документов, надёжная библиотека генерации PDF — важный инструмент в арсенале разработчика. Хотя существует множество функционально насыщенных библиотек, они часто сопровождаются сложными зависимостями и крутой кривой обучения. Здесь на помощь приходит библиотека PDFGen на C. Маленькая, автономная, открытая библиотека на C, предназначенная для генерации и управления PDF. Благодаря минимальному размеру и отсутствию внешних зависимостей, она идеальна для простых приложений, встроенных систем или случаев, когда необходимо избежать подключения тяжёлой PDF‑библиотеки. Несмотря на компактный код, PDFGen предлагает полноценный набор функций, таких как добавление текста в PDF, работа с базовой векторной графикой в PDF, внедрение штрих‑кодов, внедрение изображений, добавление закладок, добавление новых страниц и т.д.

В экосистеме, где библиотеки могут быть чрезмерно сложными, PDFGen предлагает освежающий подход. Вся библиотека содержится в одном файле C и соответствующем заголовочном файле. Это делает интеграцию в любой проект невероятно простой. DFGen является автономной и не зависит от внешних библиотек. Это устраняет головную боль управления зависимостями и обеспечивает плавный процесс компиляции. Благодаря небольшому размеру и однопоточному характеру, она идеально подходит для встраивания в более крупные приложения, где нужен базовый вывод PDF без большого накладного кода. Библиотека выпущена под лицензией Unlicense, которая эквивалентна общественному достоянию. Это означает, что вы свободны использовать, модифицировать и распространять код для любых целей, коммерческих или некоммерческих, без каких-либо ограничений.

Previous Next

Начало работы с PDFGen

Рекомендуемый способ установки PDFGen — использовать GitHub. Пожалуйста, используйте следующую команду для беспроблемной установки.

Установить PDFGen через GitHub

 Git clone https://github.com/AndreRenaud/PDFGen.git

Вы также можете установить его вручную; загрузите последние файлы релиза напрямую из репозитория GitHub.

Создание базового PDF-файла через C API

PDFGen — это открытая, легковесная библиотека на C, разработанная специально для простого создания и управления PDF‑документами. Она поддерживает различные функции работы с PDF‑документами, такие как вставка текста и изображений, добавление новых страниц, управление шрифтами и многое другое. Следующий пример показывает, как разработчики программного обеспечения могут создать одностраничный PDF с заголовком и основным текстом в приложениях на C.

Как создать простой PDF с помощью библиотеки на C?

#include 
#include "pdfgen.h"

int main(void) {
    // 1. Create a new PDF document with A4 page size
    struct pdf_info info = {
        .creator = "My App",
        .producer = "My App",
        .title = "My First PDF",
        .author = "John Doe",
    };
    struct pdf_doc *pdf = pdf_create(PDF_A4_WIDTH, PDF_A4_HEIGHT, &info);
    
    // 2. Set up a font
    const int font_size = 20;
    
    // 3. Add a new page
    pdf_append_page(pdf);
      
    // 6. Save the PDF to a file
    pdf_save(pdf, "hello_world.pdf");
 

Как добавить текст в PDF‑файл с помощью библиотеки C?

#include "pdfgen.h"

int main(void) {
    struct pdf_info info = {
        .creator = "My Application",
        .title = "My First PDF",
        .author = "Me"
    };
    struct pdf_doc *pdf = pdf_create(PDF_A4_WIDTH, PDF_A4_HEIGHT, &info);
    pdf_set_font(pdf, "Times-Roman");
    pdf_append_page(pdf);
    pdf_add_text(pdf, NULL, "Hello, PDFGen!", 12, 50, 20, PDF_BLACK);
    pdf_save(pdf, "hello.pdf");
    pdf_destroy(pdf);
    return 0;
}

 

Рисование фигур и встраивание изображений в PDF

Библиотека с открытым исходным кодом PDFGen предоставляет мощную поддержку для рисования фигур и добавления изображений в PDF‑документы с лёгкостью. Для документов, требующих более чем просто текст, PDFGen предлагает набор функций для рисования базовых фигур и линий. Всего лишь несколькими строками кода разработчики могут рисовать линии, прямоугольники и круги, создавая формы, диаграммы или границы в своих приложениях. Ниже приведён пример, демонстрирующий, как разработчики могут рисовать графику и добавлять JPEG‑изображение в C‑приложениях.

Как рисовать фигуры в PDF‑документах с помощью библиотеки C?

#include "pdfgen.h"

int main(void) {
    // ... (PDF creation boilerplate as above) ...
    pdf_append_page(pdf);
    // Draw a red line
    pdf_add_line(pdf, NULL, 50, 50, 200, 50, 3, PDF_RED);
    // Draw a blue-filled rectangle
    pdf_add_filled_rect(pdf, NULL, 50, 100, 150, 50, PDF_BLUE);
    // ... (Save and destroy PDF) ...
    return 0;
}

Генерация штрихкодов внутри PDF через C-библиотеку

Выдающейся особенностью PDFGen является встроенная поддержка генерации штрихкодов в PDF‑документах. Это особенно полезно для приложений, которым необходимо создавать счета‑фактуры, транспортные этикетки или инвентарные метки. Библиотека поддерживает два распространённых стандарта штрихкодов: Code‑128, представляющий собой линейный штрихкод высокой плотности, и Code‑39, являющийся дискретным штрихкодом переменной длины. Ниже приведён полезный пример, показывающий, как добавить штрихкод в PDF‑файл в C‑приложениях.

Как добавить штрих‑код в PDF‑файл в C‑приложениях?

#include "pdfgen.h"

int main(void) {
    // ... (PDF creation boilerplate) ...
    pdf_append_page(pdf);
    pdf_add_barcode(pdf, NULL, PDF_BARCODE_128, 50, 200, 200, 50, "PDFGen-12345", PDF_BLACK);
    // ... (Save and destroy PDF) ...
    return 0;
}
 Русский