GitHub - galkahana/PDF-Writer: High performance library for creating, modiyfing and parsing PDF files in C++ (original) (raw)

PDF-Writer (PDFHummus)

A fast and free C++ library for creating, parsing and manipulating PDF files and streams.

📖 Documentation | 🌐 Project Site | 🟢 NodeJS Wrapper

Prerequisites

Project Structure

Quick Start

Build

mkdir build && cd build cmake .. cmake --build . --config Release

Test

ctest --test-dir . -C Release

Install

cmake --install . --prefix ./install --config Release

CMake Options

Option Default Description
PDFHUMMUS_NO_DCT FALSE Exclude DCT decoding support/Detach LibJpeg dependency
PDFHUMMUS_NO_TIFF FALSE Exclude TIFF Images support/Detach LibTiff dependency
PDFHUMMUS_NO_PNG FALSE Exclude PNG Images support/Detatch LibgPng dependency
PDFHUMMUS_NO_OPENSSL FALSE Exclude PDF2.0 encryption/Detach OpenSSL dependency
USE_BUNDLED TRUE Use bundled dependencies
USE_UNBUNDLED_FALLBACK_BUNDLED FALSE Fallback to bundled if system libs not found
BUILD_FUZZING_HARNESS FALSE Enable fuzz testing

Example: cmake .. -DUSE_BUNDLED=FALSE

Using in Your Project

include(FetchContent) FetchContent_Declare( PDFHummus GIT_REPOSITORY https://github.com/galkahana/PDF-Writer.git GIT_TAG v4.6.2 FIND_PACKAGE_ARGS ) FetchContent_MakeAvailable(PDFHummus) target_link_libraries(YourTarget PDFHummus::PDFWriter)

Option 2: find_package

find_package(PDFHummus REQUIRED) target_link_libraries(YourTarget PDFHummus::PDFWriter)

Option 3: Copy Sources

Simply copy the source folders to your project and include them directly.

Development

Testing

Run tests

ctest --test-dir build -C Release -j8

Build and test

cmake --build build --target pdfWriterCheck --config Release

Test output files: ./build/Testing/Output

VS Code Setup

Install these extensions:

Packaging

Development Guidelines

For detailed development guidelines, coding standards, and contribution patterns, see CLAUDE.md. This document contains:

This documentation is also optimized for AI-assisted development with Claude Code.

Additional Build Instructions

iOS: See build guide

Manual builds: All PDFWriter sources are in the PDFWriter folder. Link against Zlib, LibTiff, LibJpeg, LibPng, FreeType, and OpenSSL.