0% found this document useful (0 votes)
51 views

JakubMelka - PDF4QT - Open Source PDF Editor

Open source PDF editor consisting of a rendering library and applications including a document viewer, command line tool, and page manipulator. Written in C++ using Qt and implements PDF 2.0. Available for Windows and Linux via binaries, installers, Flatpak, and AppImage.

Uploaded by

rapid11235
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views

JakubMelka - PDF4QT - Open Source PDF Editor

Open source PDF editor consisting of a rendering library and applications including a document viewer, command line tool, and page manipulator. Written in C++ using Qt and implements PDF 2.0. Available for Windows and Linux via binaries, installers, Flatpak, and AppImage.

Uploaded by

rapid11235
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

06/06/2024, 10:24 JakubMelka/PDF4QT: Open source PDF editor.

JakubMelka /
PDF4QT

Code Issues 33 Pull requests 1 Discussions Actions Projects Security Insights

Open source PDF editor.

jakubmelka.github.io/

LGPL-3.0 license

526 stars 57 forks 13 watching 9 Branches 18 Tags Activity

Public repository

9 Branches 18 Tags Go to file t Go to file Add file Code

JakubMelka Update of readme - flatpak/appimage c9b262f · 3 months ago

.github Issue #123: Update workflow 4 months ago

3rdparty_licenses Use LF instead of CRLF 3 years ago

CLA Correct type 3 months ago

CodeGenerator Issue #118: Header files and installer fi… 6 months ago

Desktop Issue #159: Adjust desktop files 3 months ago

JBIG2_Viewer Issue #118: Header files and installer fi… 6 months ago

Pdf4QtDiff Issue #172: access keys are missing fr… 3 months ago

Pdf4QtEditor Issue #159: Renaming applications 3 months ago

Pdf4QtEditorPlugins Issue #172: access keys are missing fr… 3 months ago

Pdf4QtLaunchPad Issue #159: Linux fix 3 months ago

Pdf4QtLibCore Issue #173: errors loading file Echople… 3 months ago

Pdf4QtLibGui Issue #172: access keys are missing fr… 3 months ago

Pdf4QtLibWidgets Issue #172: access keys are missing fr… 3 months ago

Pdf4QtPageMaster Issue #172: access keys are missing fr… 3 months ago

Pdf4QtViewer Issue #159: Renaming applications 3 months ago

PdfExampleGenerator Issue #118: First part of splitting 6 months ago

PdfTool Issue #123: Final bugfixing 4 months ago

UnitTests Issue #118: First part of splitting 6 months ago

VisualStudio Use LF instead of CRLF 3 years ago

WixInstaller Issue #159: Renaming applications 3 months ago

resources Use LF instead of CRLF 3 years ago

Issue #96: PDF4QT crashes when I o… 5 months ago


vcpkg/overlays/libpng

https://github.com/JakubMelka/PDF4QT 1/6
06/06/2024, 10:24 JakubMelka/PDF4QT: Open source PDF editor.

xfa XFA: Bugfixing - proper edge and corn… 3 years ago

.gitignore Issue #25: Basic build settings 2 years ago

.licensee.yml Issue #104: Try to solve license problem 7 months ago

CMakeLists.txt Issue #159: Adjust desktop files 3 months ago

LICENSE.md Issue #104: Try to fix license 6 months ago

NOTES.txt Public key encryption: authorization, cr… 2 years ago

README.md Update of readme - flatpak/appimage 3 months ago

RELEASES.txt Issue #173: errors loading file Echople… 3 months ago

Release_Process.txt Issue #39: Sign binaries with certificate last year

generated_code_definition.xml Issue #40: Sanitize document last year

make-package.sh.in Issue #157: debian .deb release 4 months ago

qt.conf Signatures: line tool 2 years ago

vcpkg.json Issue #123: Alternative software rende… 4 months ago

vcpkg_with_qt.json Issue #68: Add alternative VCPKG file … last year

CI passing

PDF4QT
(c) Jakub Melka 2018-2024

[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 ❤️ 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.

https://github.com/JakubMelka/PDF4QT 2/6
06/06/2024, 10:24 JakubMelka/PDF4QT: Open source PDF editor.

2. LEGAL ISSUES

Both library and viewer uses more benevolent LGPL license, so it is more usable in commercial software, than GPL
code only. Please see attached file - LICENSE.txt to see details. This software also uses several third party software,
and user of this software must also respect licenses of third party libraries.

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

multithreading support
hardware accelerated rendering
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
3D PDF support (planned in year 2024)
create fillable forms (planned in year 2024)
watermarks / headers / footers (planned in year 2024)
presentation application (planned in year 2024)

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/

https://github.com/JakubMelka/PDF4QT 3/6
06/06/2024, 10:24 JakubMelka/PDF4QT: Open source PDF editor.

5. CONTRIBUTIONS

If you want to contribute to this project, it is required, that you (contributor) fill and digitally sign document Contributor
License Agreement, because I want to have a freedom to do whatever I want with my library, without obligation to
someone else. But I would strongly prefer, if you want to contribute, to contribute in a form of testing, consultation,
giving advices etc. I would like to write this library entirely by myself.

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.

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

For a debug build, append -DCMAKE_BUILD_TYPE=Debug .

https://github.com/JakubMelka/PDF4QT 4/6
06/06/2024, 10:24 JakubMelka/PDF4QT: Open source PDF editor.
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.6 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


README LGPL-3.0 license
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

https://github.com/JakubMelka/PDF4QT 5/6
06/06/2024, 10:24 JakubMelka/PDF4QT: Open source PDF editor.

Key Value

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++ Compiler 17.1)

Releases 10

PDF4QT Version 1.3.7: The Bugfix and Optimization Update Latest


on Jan 11

+ 9 releases

Sponsor this project

JakubMelka Jakub Melka

Sponsor

Learn more about GitHub Sponsors

Contributors 5

Languages

C++ 99.3% Other 0.7%

https://github.com/JakubMelka/PDF4QT 6/6

You might also like