mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-01-30 17:14:50 +01:00
123 lines
4.8 KiB
Markdown
123 lines
4.8 KiB
Markdown
|
|
# PDF4QT
|
|
**(c) Jakub Melka 2018-2022**
|
|
|
|
**Mgr.Jakub.Melka@gmail.com**
|
|
|
|
**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.
|
|
|
|
## 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
|
|
|
|
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):
|
|
|
|
- [x] multithreading support
|
|
- [x] hardware accelerated rendering
|
|
- [x] encryption
|
|
- [x] color management
|
|
- [x] optional content handling
|
|
- [x] text layout analysis
|
|
- [x] signature validation
|
|
- [x] annotations
|
|
- [x] form filling
|
|
- [x] text to speech capability
|
|
- [x] editation
|
|
- [x] file attachments
|
|
- [x] optimalization (compressing documents)
|
|
- [x] command line tool
|
|
- [x] audio book conversion
|
|
- [x] internal structure inspector
|
|
- [x] compare documents
|
|
- [x] static XFA support (readonly, simple XFA only)
|
|
- [x] electronically/digitally sign documents
|
|
- [x] 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](CLA/Contributor_License_Agreement.pdf),
|
|
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. To compile this project, compiler supporting C++20 is needed.
|
|
On Windows, you can use Visual Studio 2022 or mingw. On linux, only GCC 11.2.0 was tested.
|
|
|
|
### Compilation instructions (both Windows/Linux)
|
|
1. Download Qt 6.4 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 is available and should be set before building. On Windows,
|
|
CMake can prepare Wix project to create *.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|
|
|
|
|
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 |
|
|
|
|
### Tested Compilers - Windows
|
|
- Visual Studio 2022 (Microsoft Visual C++ Compiler 17.1)
|
|
- MinGW 11.2.0
|
|
|
|
### Tested Compilers - Linux
|
|
- GCC 11.2.0
|
|
|
|
## 7. DISCLAIMER
|
|
|
|
I wrote this project in my free time. I hope you will find it useful!
|