SkillAgentSearch skills...

Pdfedit5

Fork of PDFedit which has the intention to move the code from Qt3 to Qt5, xlib to xcb, xpdf to poppler and QSA to QtScript

Install / Use

/learn @JustDevZero-vault/Pdfedit5
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

PROJECT NOT MANTAINED BY THE MOMENT

=================================

PDFedit5 readme

TOC

License Contact Prerequisites Base (kernel), pdfedit5-core-dev package Tests Gui Documentation Configuration Configure features Libraries and binaries specification Installation directories Compilation Installation Cygwin build FreeBSD build NetBSD installation Debian package RPM based distros Gentoo package Altlinux 64b PDFedit devel package

License

PDFedit5 is distributed under terms of GNU GPL in version 2. See doc/LICENSE.GPL for full license text. See doc/AUTHORS for full list of authors and contributors. For other more detailed documentation, look into "doc" subdirectory. File doc/user/user_doc.html contain more detailed installation instructions (in the Installation section) and list of required libraries.

Contact

Feel free to contact me with any question via mail at info@danielripoll.me

Prerequisites

Base (kernel), pdfedit5-code-dev package, xcb

Boost libraries must be installed. See detailed description about configure parameters if you have some unusual installation. Freetype library is almost necessary, because nearly all PDFs use these fonts. T1 font library is also recommended.

Tests

Unlike PDFedit, PDFEdit5 is still on development and and haven't been tested yet against CPPUNIT library, so don't blame if something didn't work. Indeed, nothing work at this right moment. See detailed description about configure parameters if you have some unusual installation.

Tools

All tools use boost-program-options library so it has to be installed on your system if you want to compile them (see later how to enable them). Some distributions use a separate package (e.g. Debian) but most others include it directly into boost package. add_image tool uses libpng and its headers so libpng-dev package has to be installed.

Gui

Make sure you have all needed libraries (qt5, boost and xcb) along with their headers. You also need the environment variable QTDIR to be set to directory in which the Qt toolkit (version 5) is installed. Many distributions already set this when installing Qt, but some of them don't. In that case, you have to set the QTDIR manually. Usually it is set to something like /usr/lib/qt5 or /usr/share/qt5 (use e. g. export QTDIR=/usr/share/qt35to set the variable if this is your case).
Also, while usually not needed, QMAKESPEC may be set to match your system type. For most systems it is unnecessary to set it, although it may be needed if you cross-compile (like producing i386 binaries on amd64 platform) or in some rare configurations. Once you set QTDIR, you may try typing "ls $QTDIR/mkspecs". QMAKESPEC should be set to name of one of the directories that are in mkspecs subdirectory in the Qt directory. See https://qt-project.org/wiki/Category:Tools or http://qt-project.org/doc/qt-5/qmake-manual.html for more information. QTDIR is used also for qmake (tool for generating makefiles from QT project files) detection. By default, this is stored somewhere under QTDIR directory (typically QTDIR/bin/), but there are also platforms, where this is not exactly true. If you have such a platform, try to use --with-qmake-dir parameter to configure (see bellow)

Documentation

There are 3 levels of documentation in this project.

  • Basic - in the form of the man page which is always installed
  • doxygen - programming documentation extracted from sources and processed by doxygen tool. Obviously, doxygen has to be installed. This documentation is not created and installed by default and you have to explicitly enable it by --enable-doxygen-doc parameter to ./configure Result documentation is placed in the DOC_PATH/doxygen directory (DOC_PATH is PREFIX/share/doc/pdfedit) It is strongly recommended for pdfedit-core-dev package done by distributors.
  • user manual - html pages with user manual about PDFedit usage. This documentation is not created by default and you have to enable it by configure parameter --enable-user-manual. We are using xml based docbook format, so you have to have docbook xsl and xsltproc installed. Result documentation is placed in the DOC_PATH/manual directory.
  • advanced - design documentation which describes inner data structures, algorithms and relations from the programmer perspective. This one is useful if you want to develop PDFedit5 or 3rd party application based on PDFedit5. This documentation is not created by default too and you have to enable it by configure parameter --enable-advanced-doc. We are using xml based docbook format, so you have to have docbook xsl and xsltproc installed. Result documentation is placed in the DOC_PATH/design/ directory.

Configuration

Run: ./configure [parameters]

NOTE for those who use sources from GIT. configure is NO MORE part of the GIT tree!!! You have to generate it. This can be done simply by $ autoconf in the root of the checkout project. Note that you have to have autoconf package installed on your machine.

Simple run without any parameter results in default configuration where application is compiled in release mode (optimizations turned on, debug symbols are not present, compilation warnings are eliminated), GUI is enabled, doxygen documentation is generated, no kernel tests (stored in src/kernel/tests/) are compiled and application will be installed into the /usr/local/pdfedit directory.

Configuration enables also compilation and installation in so called pdfedit-core-dev package which prepares all libraries and header files for 3rd party application which want to reuse our core (kernel) functionality (see more in the Pdfedit devel package bellow). This is not done by default and you have to enable it explicitly by --enable-pdfedit-dev-core configure parameter. Note that development package and gui can be mixed together but also single dev. package can be created by disabling gui (see bellow). pdfedit-dev-core installation comes with pdfedit-core-dev-config script which can be used by 3rd party code for its configuration to correctly set compiler flags include paths, libraries and so on.

Configure features

You can change this behavior with following parameters (feature is used if --enable- prefix is used, contrary --disable- prefix turns off this feature - e.g. if feature name stack-protector => --enable-stack-protector uses this feature): -stack-protector - adds stack protector parameter to the compilation flags. Disabled by default, because not all compilers support this feature (gcc > 4.1 supports it)

-release - controls compilation flags for release mode (no debugging
 needed). This is used by default. It means that optimizations are
 turned on, debug information is not included in the result binary.
 If you want to debug or do some development, --disable-release is
 strongly recommended.

-debug-info - if --enable-release is used and you still need debug
 information (e.g. when application crashes to have some reasonable
 stack traces) use --enable-debug-info. This parameter feature would
 be ignored if --disable-release is used.

-observer-debug - just for developers only. Disabled by default. If
 turned on, some more debug information is added to the kernel code
 to enable debugging observers based code.

-gui - Creates GUI for PDFedit5 (pdfedit5 binary). Enabled by default. 
 If --disable-gui is used, no GUI (no pdfedit binary is created).

-kernel-tests - Compiles all kernel tests (in src/kernel/tests). 
 Disabled by default and intended for developers/testers only. Note
 that this requires to have CPPUNIT installed on your system.

-tools - Compiles all tools which are available in src/tools.  Disabled
 by default and intended for those interested in simple examples of
 pdfedit-core-dev library usage and those who need some simple tools for
 pdf manipulation/analyzes and don't want to use GUI or scripting
 (pdf_to_text, flattener, delinerizator, pdf_object_comparer, etc.).
 Note that you need also --enable-pdfedit-core-dev for tools.

-doxygen-doc - generates also doxygen documentation useful for 
 programmers. Disabled by default. Note that doxygen has to be
 installed for this feature.

-user-manual - generates also docbook user manual documentation.
 Disabled by default. Note that docbook and its prerequisites
 have to be installed for this feature.

-advanced-doc - generates also docbook design documentation.
 Disabled by default. Note that docbook and its prerequisites
 have to be installed for this feature.

-pdfedit-core-dev - generates libraries needed for 3rd party
 applications which want to use pdfedit kernel core. Moreover 
 make install will install also header files, libraries and
 pdfedit-core-dev-config helper script (see Installation directories
 bellow). This option is disabled by default.
-poratability-flags - adds compiler flags which force c99/c++98 
 standard and posix/ansi portability. This option is enabled by default.

Default configuration process will check for the number of CPUs/cores and use this value for make jobs parallelization (each make will use different CPU/core). You can change this behavior with --with-parallel-make=VALUE where VALUE is one of the: - auto (default) - (on Linux - checks /proc/cpuinfo and use the CPU counts for the number of parallel make jobs). - off - no parallelization - number - the number of parallel make jobs (positive number expected) Default behavior (no need for --with-parallel-make parameter) should be OK in almost all situations (with benefit of shorter built time), however if you have specific requirements when you don't want/can't use all your CPUs/cores for compilation you can use eit

Related Skills

View on GitHub
GitHub Stars19
CategoryDevelopment
Updated1mo ago
Forks16

Languages

C++

Security Score

75/100

Audited on Feb 18, 2026

No findings