Open source PDF editor.
Go to file
Jakub Melka 5a0c944e56 Update of readme 2022-06-30 15:37:17 +02:00
3rdparty_licenses Use LF instead of CRLF 2021-09-27 11:14:20 +02:00
CLA Update of readme na CLA 2021-08-28 18:01:15 +02:00
CodeGenerator Add support for building with mingw-w64 GCC. Fix warnings 2022-03-13 16:34:40 +01:00
JBIG2_Viewer Add support for building with mingw-w64 GCC. Fix warnings 2022-03-13 16:34:40 +01:00
Pdf4QtDocDiff #Issue 15: Finish installer 2022-06-05 18:13:50 +02:00
Pdf4QtDocPageOrganizer #Issue 15: Finish installer 2022-06-05 18:13:50 +02:00
Pdf4QtLib Security handler fix: if metadata are not encrypted, encryption produces invalid PDF document 2022-06-29 18:44:40 +02:00
Pdf4QtViewer Public key encryption: bugfixing 2022-06-29 17:44:43 +02:00
Pdf4QtViewerLite #Issue 15: Finish installer 2022-06-05 18:13:50 +02:00
Pdf4QtViewerPlugins Public key encryption: code refactoring 2022-06-29 17:44:42 +02:00
Pdf4QtViewerProfi #Issue 15: Finish installer 2022-06-05 18:13:50 +02:00
PdfExampleGenerator Add support for building with mingw-w64 GCC. Fix warnings 2022-03-13 16:34:40 +01:00
PdfTool Public key encryption: code refactoring 2022-06-29 17:44:42 +02:00
UnitTests Add support for building with mingw-w64 GCC. Fix warnings 2022-03-13 16:34:40 +01:00
VisualStudio Use LF instead of CRLF 2021-09-27 11:14:20 +02:00
WixInstaller #Issue 15: Finish installer 2022-06-05 18:13:50 +02:00
qbs Linux crash (#9) 2022-01-09 17:26:42 +01:00
resources Use LF instead of CRLF 2021-09-27 11:14:20 +02:00
xfa XFA: Bugfixing - proper edge and corner drawing 2021-12-08 19:37:18 +01:00
.gitignore Linux crash (#9) 2022-01-09 17:26:42 +01:00
LICENSE.rtf #Issue 15: Finish installer 2022-06-05 18:13:50 +02:00
LICENSE.txt Use LF instead of CRLF 2021-09-27 11:14:20 +02:00
NOTES.txt Public key encryption: authorization, create file encryption key 2022-06-29 17:44:42 +02:00
Pdf4Qt.pri #Issue 15: Finish installer 2022-06-05 18:13:50 +02:00
Pdf4Qt.pro DocDiff application: document view update 2021-10-13 17:51:16 +02:00
Pdf4Qt.qbs QBS build fix 2022-05-29 17:48:07 +02:00
README.md Update of readme 2022-06-30 15:37:17 +02:00
RELEASES.txt Change of release text 2022-06-29 17:48:07 +02:00
conanfile.txt Linux crash (#9) 2022-01-09 17:26:42 +01:00
generated_code_definition.xml Signature plugin: visible digital signatures 2022-05-29 17:27:58 +02:00
qt.conf Signatures: line tool 2022-02-13 19:46:09 +01:00

README.md

PDF4QT

(c) Jakub Melka 2018-2021

Mgr.Jakub.Melka@gmail.com

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.

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.

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 2022)
  • create fillable forms (planned in year 2023)
  • watermarks / headers / footers (planned in year 2023)
  • presentation application (planned in year 2023)

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/

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. COMPILING

Compilation on Windows and Linux is available. There are two options for Windows, and one for Linux. To compile this project, compiler supporting C++20 is needed. On Windows, you can use Visual Studio 2019, clang or mingw. On linux, only GCC 10 was tested.

Compilation instructions (.pro file, Windows, Visual Studio):

  1. Download Visual Studio 2019
  2. Download Qt, minimal supported version is 5.14.2
  3. Download precompiled libraries, or compile them yourself. Libraries must be in same root directory as this project, so root folder of this project will have a sibling folder with these libraries
  4. Open Qt Creator and root project Pdf4Qt.pro
  5. Create target for Microsoft Visual Studio 2019 and compile the project

Compilation instructions (.qbs file, Windows/Linux)

For QBS build, you will need to install Conan, a C++ package manager, Qt framework (minimal supported version is 5.14.2), and compiler supporting C++20 (Visual Studio 2019, Clang, Mingw, GCC).

  1. Prepare prerequisites (Conan, Qt, compiler)
  2. Open QBS project file
  3. Build

7. DISCLAIMER

I wrote this project in my free time. I hope you will find it useful!