PDF4QT is a free, open source office suites project written in C++ and released under MIT. It has 1,477 GitHub stars, 145 forks and 32 open issues, and was last pushed 3 hours ago. On this registry it ranks #10 of 11 tracked projects in Office Suites, with 5 head-to-head comparisons available.

What is PDF4QT?

PDF4QT is an MIT-licensed, cross-platform PDF toolkit for Windows and Linux that combines dedicated desktop applications — a viewer, editor, page manipulator, document diff tool and command-line utility — with a C++/Qt PDF rendering engine built against the PDF Reference 2.0, and it is aimed at end users, developers and integrators who need PDF handling they can inspect, modify and redistribute without licence friction.

What it is

PDF4QT consists of a PDF rendering library together with several applications: an advanced document viewer, a command-line tool, and a document page manipulator, among others. The software implements PDF functionality based on PDF Reference 2.0, is written in C++ with Qt, works on Microsoft Windows and Linux, and has been written and maintained by Jakub Melka since 2018. The suite ships as a set of distinct executables — Pdf4QtEditor, Pdf4QtDiff, Pdf4QtLaunchPad, Pdf4QtPageMaster, Pdf4QtViewer and PdfTool — so the same rendering engine serves both graphical and scripted workflows.

The concrete problem it solves is fragmentation. Rather than assembling a viewer, an editor, a signing utility and a separate batch processor, a user gets one engine and one consistent rendering behaviour across graphical and command-line surfaces. It replaces the practice of stitching together separate single-purpose PDF programs: viewing, editing, page manipulation, comparison, signing, encryption and compression are all covered by executables from the same project, so a document examined in Pdf4QtViewer behaves the same way when processed by PdfTool.

Key capabilities

  • Multithreaded PDF rendering library implementing PDF Reference 2.0 semantics, shared by all applications in the suite.
  • Pdf4QtEditor for page editing, annotations, form filling and file attachments.
  • Pdf4QtDiff for comparing two documents, plus an internal structure inspector for examining PDF internals.
  • PdfTool, the command-line tool, supporting optimization to compress documents and audiobook conversion.
  • Encryption, public key security encryption, electronic and digital signing, and signature validation.
  • Static XFA support, explicitly readonly and limited to simple XFA forms.
  • Text layout analysis, text to speech and color management, the latter through LittleCMS, with JPEG2000 decoding via OpenJPEG.

Who uses it and how

  • Linux desktop users install the Flatpak package from Flathub (io.github.JakubMelka.Pdf4qt) or run the AppImage, which is designed to work on nearly all Linux systems.
  • Arch Linux users install the pdf4qt-git package from the AUR.
  • Windows users download binaries from the Releases page, either with or without an installer.
  • Distribution packagers and build engineers compile from source using a C++20-capable compiler: Visual Studio 2022 or MinGW on Windows, GCC 8 or newer on Linux, with CI available in the repository.
  • Organizations that need commercially redistributable PDF tooling adopt it because contributions can be submitted under the MIT License without signing a Contributor License Agreement.

Getting started

Download the Windows binaries from the Releases page, or install the Linux build as a Flatpak from Flathub or as an AppImage from the Releases section. Compiling from source requires a C++20 compiler, such as Visual Studio 2022 or MinGW on Windows and GCC 8 or later on Linux.

How it compares

The provided facts name no competing or alternative products, so PDF4QT stands alone in this registry. It is worth noting that the project was relicensed from LGPLv3 to the MIT License on April 27, 2025 by the original author, a change made to give greater freedom and flexibility for open-source and commercial use, reduce legal complexity and encourage broader adoption.

When to use it — and when not to

There is no server component to operate here, but a self-hoster who rebuilds from source takes on dependency management: the software uses Qt under the LGPL, OpenSSL under Apache 2.0, FreeType under the FTL, OpenJPEG under a 2-clause MIT licence, plus libjpeg, LittleCMS, zlib and Blend2D, and users must comply with those licences. Anyone needing fully dynamic or complex XFA form handling should look elsewhere, since static XFA support is readonly and covers only simple XFA forms, and Debian users dependent on a native .deb package are out of luck because that package was discontinued over compatibility issues with some distributions.

project readme (upstream, from github) — read inline

CI

PDF4QT

(c) Jakub Melka 2018-2026

[email protected]

https://jakubmelka.github.io/

This software is consisting of PDF rendering library, and several applications, such as advanced document viewer, command line tool, and document page manipulator application. Software is implementing PDF functionality based on PDF Reference 2.0. It is written and maintained by Jakub Melka.

Software works on Microsoft Windows / Linux.

Software is provided without any warranty of any kind.

Should you find this software beneficial, your support would be greatly appreciated :heart: Sponsor!

1. ACKNOWLEDGEMENTS

This software is based in part on the work of the Independent JPEG Group.

Portions of this software are copyright © 2019 The FreeType Project (www.freetype.org). All rights reserved.

2. LEGAL ISSUES

This software was originally licensed under the GNU Lesser General Public License version 3 (LGPLv3). As of April 27, 2025, the project has been relicensed under the MIT License by the original author. The change to the MIT License was made to provide greater freedom and flexibility for both open-source and commercial use, reduce legal complexity, and encourage broader adoption and contribution.

Please see the attached LICENSE.txt file for details.

This software also uses several third-party libraries, and users must comply with the licenses of those third-party components.

3. FEATURES

Software have following features (the list is not complete):

  • multithreading support
  • encryption
  • color management
  • optional content handling
  • text layout analysis
  • signature validation
  • annotations
  • form filling
  • text to speech capability
  • editation
  • file attachments
  • optimalization (compressing documents)
  • command line tool
  • audio book conversion
  • internal structure inspector
  • compare documents
  • static XFA support (readonly, simple XFA only)
  • electronically/digitally sign documents
  • public key security encryption

4. THIRD PARTY LIBRARIES

Several third-party libraries are used.

  1. libjpeg, see https://www.ijg.org/
  2. FreeType, see https://www.freetype.org/index.html, FTL license used
  3. OpenJPEG, implementing Jpeg2000, see https://www.openjpeg.org/, 2-clause MIT license
  4. Qt, https://www.qt.io/, LGPL license used
  5. OpenSSL, https://www.openssl.org/, Apache 2.0 license
  6. LittleCMS, http://www.littlecms.com/
  7. zlib, https://zlib.net/
  8. Blend2D, https://blend2d.com/

5. CONTRIBUTIONS

Contributions are welcome!

Since the project is now licensed under the MIT License, contributions can be freely submitted without the need to sign a Contributor License Agreement (CLA). However, all contributions must be made under the terms of the MIT License to ensure license consistency across the project.

You are encouraged to contribute by testing, offering feedback, providing advice, or submitting code improvements.

6. INSTALLING

Windows

The Release page lists binaries for Windows, both with and without an installer.

Arch Linux

A pdf4qt-git package is available in the AUR.

Linux - Flatpak/AppImage

For other Linux distributions, there are two options available. A Flatpak package can be accessed at Flathub. Alternatively, an AppImage is available in the Releases section. The AppImage format is designed to work on nearly all Linux systems. Historically, a .deb package was also offered, but it has been discontinued due to compatibility issues with some Linux distributions. The executable names are: Pdf4QtEditor, Pdf4QtDiff, Pdf4QtLaunchPad, Pdf4QtPageMaster, Pdf4QtViewer, and PdfTool.

7. COMPILING

This software can be compiled on both Windows and Linux. A compiler supporting the C++20 standard is needed.

On Windows, you can use Visual Studio 2022 or MinGW.

On Linux, a GCC version >= 8 should work, altough we tested it with GCC 11.

Compiling from sources

  1. Install vcpkg

     git clone https://github.com/Microsoft/vcpkg.git
     ./vcpkg/bootstrap-vcpkg.sh -disableMetrics
     VCPKG_ROOT=$(pwd)/vcpkg
    

    Check that vcpkg path is correct: $VCPKG_ROOT/vcpkg --version.

  2. Build PDF4QT

    2.1 Clone repo

     git clone https://github.com/JakubMelka/PDF4QT
     cd PDF4QT
    

    2.2 Configure

     cmake -B build -S . -DPDF4QT_INSTALL_QT_DEPENDENCIES=0 -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX='/' -DCMAKE_BUILD_TYPE=Release
    

    (One user reported success with -DCMAKE_INSTALL_PREFIX='' instead, as otherwise all there paths were prepended with /usr (causing /usr/usr...

    For a debug build, append -DCMAKE_BUILD_TYPE=Debug.

    It is recommended to set the VCPKG_OVERLAY_PORTS variable to 'PDF4QT/vcpkg/overlays' to prevent crashes due to the incompatible LIBPNG library on some Linux systems.

    2.3 Build

     cmake --build build
    

    Use the -j switch to build multiple files in parallel.

    2.4 Install

     sudo cmake --install build
    

    To uninstall, run sudo xargs rm < ./build/install_manifest.txt.

Using Qt Creator (both Windows/Linux)

  1. Download Qt 6.9 or higher, and VCPKG package manager (https://vcpkg.io/en/index.html)
  2. Open Qt Creator and configure the project
  3. Build

CMAKE Compilation Options

Several important compilation options are available and should be set before building. On Windows, CMake can prepare a Wix project to create a *.msi installer package.

Option Platform Description
PDF4QT_INSTALL_MSVC_REDISTRIBUTABLE Windows Includes MSVC redistributable in installation
PDF4QT_INSTALL_PREPARE_WIX_INSTALLER Windows Prepare .msi installator using Wix installer
PDF4QT_INSTALL_DEPENDENCIES Any Install dependent libraries into installation directory
PDF4QT_INSTALL_QT_DEPENDENCIES Any Install Qt dependent libraries into installation directory
VCPKG_OVERLAY_PORTS Linux Set it to prevent crashes with incompatible libpng library

Following important variables should be set or checked before any attempt to compile this project:

Variable Platform Description
PDF4QT_QT_ROOT Any Qt installation directory
QT_CREATOR_SKIP_VCPKG_SETUP Any Enable or disable automatic vcpkg setup
CMAKE_PROJECT_INCLUDE_BEFORE Any Should be set to package manager auto setup
CMAKE_TOOLCHAIN_FILE Any Should be set to toolchain
CMAKE_BUILD_TYPE Any Can be Release (default) or Debug
Sample setup on Windows

Following set of variables gives sample setup for MS Windows. It is minimal initial configuration to be able to built Debug build on MS Windows.

Key Value
CMAKE_BUILD_TYPE Debug
CMAKE_CXX_COMPILER %{Compiler:Executable:Cxx}
CMAKE_C_COMPILER %{Compiler:Executable:C}
CMAKE_GENERATOR Ninja
CMAKE_PREFIX_PATH %{Qt:QT_INSTALL_PREFIX}
CMAKE_PROJECT_INCLUDE_BEFORE %{IDE:ResourcePath}/package-manager/auto-setup.cmake
CMAKE_TOOLCHAIN_FILE %{Qt:QT_INSTALL_PREFIX}/lib/cmake/Qt6/qt.toolchain.cmake
PDF4QT_QT_ROOT C:/Programming/Qt/6.4.0/msvc2019_64
QT_QMAKE_EXECUTABLE %{Qt:qmakeExecutable}

Tested Compilers - Windows

  • Visual Studio 2022 (Microsoft Visual C++ Com

readme truncated — read the full docs on github

Frequently asked questions

Is PDF4QT free to use?

PDF4QT is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does PDF4QT do?

PDF4QT is an open-source PDF toolkit for Windows and Linux, combining powerful desktop applications, command-line tools and a modern MIT-licensed C++/Qt PDF eng

What is PDF4QT written in?

PDF4QT is primarily written in C++. Its source is publicly available at https://github.com/JakubMelka/PDF4QT, and it has 1,477 GitHub stars.