2021-09-27 11:14:20 +02:00
|
|
|
|
|
|
|
# PDF4QT
|
2022-07-17 16:10:42 +02:00
|
|
|
**(c) Jakub Melka 2018-2022**
|
2021-09-27 11:14:20 +02:00
|
|
|
|
|
|
|
**Mgr.Jakub.Melka@gmail.com**
|
2022-07-17 16:15:03 +02:00
|
|
|
|
2022-07-17 16:10:42 +02:00
|
|
|
**https://jakubmelka.github.io/**
|
2021-09-27 11:14:20 +02:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2022-01-01 14:33:31 +01:00
|
|
|
*Software works on Microsoft Windows / Linux.*
|
2021-09-27 11:14:20 +02:00
|
|
|
|
2022-01-01 14:33:31 +01:00
|
|
|
Software is provided without any warranty of any kind.
|
2021-09-27 11:14:20 +02:00
|
|
|
|
|
|
|
## 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
|
2021-10-23 17:01:17 +02:00
|
|
|
- [x] compare documents
|
2022-02-06 18:13:43 +01:00
|
|
|
- [x] static XFA support (readonly, simple XFA only)
|
2022-06-01 19:57:41 +02:00
|
|
|
- [x] electronically/digitally sign documents
|
2022-06-30 15:37:17 +02:00
|
|
|
- [x] public key security encryption
|
2022-06-01 19:57:41 +02:00
|
|
|
- [ ] 3D PDF support *(planned in year 2022)*
|
|
|
|
- [ ] create fillable forms *(planned in year 2023)*
|
2021-09-27 11:14:20 +02:00
|
|
|
- [ ] 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
|
|
|
|
|
2022-01-01 14:33:31 +01:00
|
|
|
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.
|
2021-09-27 11:14:20 +02:00
|
|
|
|
2022-01-01 14:33:31 +01:00
|
|
|
### Compilation instructions (.pro file, Windows, Visual Studio):
|
2022-07-17 16:10:42 +02:00
|
|
|
1. Download Visual Studio 2022
|
|
|
|
2. Download Qt, minimal supported version is 5.15.2
|
2022-01-01 14:33:31 +01:00
|
|
|
3. Download [precompiled libraries](https://github.com/JakubMelka/PdfForQt-Dependencies),
|
2021-09-27 11:14:20 +02:00
|
|
|
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
|
2022-01-01 14:33:31 +01:00
|
|
|
4. Open Qt Creator and root project Pdf4Qt.pro
|
2022-07-17 16:10:42 +02:00
|
|
|
5. Create target for Microsoft Visual Studio 2022 and compile the project
|
2022-01-01 14:33:31 +01:00
|
|
|
|
|
|
|
### Compilation instructions (.qbs file, Windows/Linux)
|
|
|
|
For QBS build, you will need to install [Conan](https://conan.io/), a C++ package manager, Qt framework
|
2022-07-17 16:10:42 +02:00
|
|
|
(minimal supported version is 5.15.2), and compiler supporting C++20 (Visual Studio 2022, Clang, Mingw,
|
2022-01-01 14:33:31 +01:00
|
|
|
GCC).
|
|
|
|
1. Prepare prerequisites (Conan, Qt, compiler)
|
|
|
|
2. Open QBS project file
|
|
|
|
3. Build
|
2021-09-27 11:14:20 +02:00
|
|
|
|
|
|
|
## 7. DISCLAIMER
|
|
|
|
|
|
|
|
I wrote this project in my free time. I hope you will find it useful!
|