Xpdf

Last updated
Xpdf
Developer(s) Glyph & Cog
Initial releaseDecember 12, 1995;27 years ago (1995-12-12)
Stable release
4.04 [1]   OOjs UI icon edit-ltr-progressive.svg / 18 April 2022
Operating system Linux, Windows, macOS, FreeBSD, OpenVMS
Type PDF viewer
License GPL-2.0-only [2] or GPL-3.0-only [3] or proprietary [4] [5]
Website xpdfreader.com

Xpdf is a free and open-source PDF viewer and toolkit based on the Qt framework. [4] Versions prior to 4.00 were written for the X Window System and Motif. [6]

Contents

Functions

Xpdf runs on nearly any Unix-like operating system. Binaries are also available for Windows. Xpdf can decode LZW and read encrypted PDFs. The official version obeys the DRM restrictions of PDF files, [7] which can prevent copying, printing, or converting some PDF files. [4] There are patches that make Xpdf ignore these DRM restrictions, [8] ; the Debian distribution for example has these patches in place by default. [9]

Xpdf includes several programs that don't need an X Window System, including some that extract images from PDF files or convert PDF to PostScript or text. These programs run on DOS, Windows, Linux and Unix. [4]

Xpdf is also used as a back-end for other PDF readers frontends such as KPDF and GPDF, [6] and its engine, without the X11 display components, is used for PDF viewers including BePDF on BeOS, '!PDF' on RISC OS, on PalmPDF [10] on Palm OS [4] and on Windows Mobile. [11]

Two versions exist for AmigaOS. Xpdf needs a limited version of an X11 engine called Cygnix on the host system. AmigaOS 4 included AmiPDF, a PDF viewer based on 3.01 version of the Xpdf. However both Apdf and AmiPDF are native and need no X11.

xpdf-utils

The associated package "xpdf-utils" or "poppler-utils" contains tools such as pdftotext and pdfimages.

Exploit

A vulnerability in the Xpdf implementation of the JBIG2 file format, re-used in Apple's iOS phone operating software, was used by the Pegasus spyware to implement a zero-click attack on iPhones by constructing an emulated computer architecture inside a JBIG2 stream. Apple fixed this "FORCEDENTRY" vulnerability in iOS 14.8 in September 2021. [12]

See also

Notes and references

  1. "Xpdf 4.04 release". 18 April 2022. Retrieved 6 May 2022.
  2. about on foolabs.com "Xpdf is licensed under the GNU General Public License (GPL), version 2. In my opinion, the GPL is a convoluted, confusing, ambiguous mess. But it's also pervasive, and I'm sick of arguing. And even if it is confusing, the basic idea is good. "
  3. xpdf xpdf 3.03 "The license was changed from GPLv2 to dual v2/v3 licensing."
  4. 1 2 3 4 5 Xpdf website
  5. Glyph & Cog, LLC: Xpdf
  6. 1 2 Polzer, Leslie (2006-11-28). "A survey of Linux PDF viewers". SourceForge, Inc. Retrieved 2007-08-30.
  7. Xpdf - Cracking
  8. Generic Xpdf Patch Instructions
  9. Okular, Debian, and copy restrictions
  10. PalmPDF
  11. PocketXpdf
  12. Beer, Ian; Groß, Samuel (2021-12-15). "Project Zero: A deep dive into an NSO zero-click iMessage exploit: Remote Code Execution". Google Project Zero . Retrieved 2021-12-16.

Sources

Related Research Articles

<span class="mw-page-title-main">Free software</span> Software licensed to be freely used, modified and distributed

Free software or libre software or libreware is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price; all users are legally free to do what they want with their copies of a free software regardless of how much is paid to obtain the program. Computer programs are deemed "free" if they give end-users ultimate control over the software and, subsequently, over their devices.

<span class="mw-page-title-main">GNU</span> Free software collection

GNU is an extensive collection of free software, which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popularly known as Linux. Most of GNU is licensed under the GNU Project's own General Public License (GPL).

<span class="mw-page-title-main">Qt (software)</span> Object-oriented framework for software development

Qt is free and open-source cross-platform software for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems with little or no change in the underlying codebase while still being a native application with native capabilities and speed.

gnuplot Command-line and GUI plotting program

gnuplot is a command-line and GUI program that can generate two- and three-dimensional plots of functions, data, and data fits. The program runs on all major computers and operating systems . Originally released in 1986, its listed authors are Thomas Williams, Colin Kelley, Russell Lang, Dave Kotz, John Campbell, Gershon Elber, Alexander Woo "and many others." Despite its name, this software is not part of the GNU Project.

<span class="mw-page-title-main">Ghostscript</span> Interpreter for the PostScript language

Ghostscript is a suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format (PDF) page description languages. Its main purposes are the rasterization or rendering of such page description language files, for the display or printing of document pages, and the conversion between PostScript and PDF files.

<span class="mw-page-title-main">Ion (window manager)</span>

In Unix computing, Ion is a tiling and tabbing window manager for the X Window System. It is designed such that it is possible to manage windows using only a keyboard, without needing a mouse. It is the successor of PWM and is written by the same author, Tuomo Valkonen. Since the first release of Ion in the summer 2000, similar alternative window management ideas have begun to show in other new window managers: Larswm, ratpoison, StumpWM, wmii, xmonad and dwm.

X.Org Server is the free and open-source implementation of the X Window System display server stewarded by the X.Org Foundation.

These tables provide a comparison of operating systems, of computer devices, as listing general and technical information for a number of widely used and currently available PC or handheld operating systems. The article "Usage share of operating systems" provides a broader, and more general, comparison of operating systems that includes servers, mainframes and supercomputers.

<span class="mw-page-title-main">Evince</span> Free software document viewer

Evince, also known as GNOME Document Viewer, is a free and open source document viewer supporting many document file formats including PDF, PostScript, DjVu, TIFF, XPS and DVI. It is designed for the GNOME desktop environment.

pdfimages is an open-source command-line utility for lossless extraction of images from PDF files, including JPEG2000 and JBIG2 format when used with option -all. It is freely available as part of poppler-utils and xpdf-utils, and included in many Linux distributions.

pdftotext is an open-source command-line utility for converting PDF files to plain text files—i.e. extracting text data from PDF-encapsulated files. It is freely available and included by default with many Linux distributions, and is also available for Windows as part of the Xpdf Windows port. Such text extraction is complicated as PDF files are internally built on page drawing primitives, meaning the boundaries between words and paragraphs often must be inferred based on their position on the page.

JBIG2 is an image compression standard for bi-level images, developed by the Joint Bi-level Image Experts Group. It is suitable for both lossless and lossy compression. According to a press release from the Group, in its lossless mode JBIG2 typically generates files 3–5 times smaller than Fax Group 4 and 2–4 times smaller than JBIG, the previous bi-level compression standard released by the Group. JBIG2 was published in 2000 as the international standard ITU T.88, and in 2001 as ISO/IEC 14492.

<span class="mw-page-title-main">Poppler (software)</span> Free library for creating PDF documents

Poppler is a free software utility library for rendering Portable Document Format (PDF) documents. Its development is supported by freedesktop.org. It is commonly used on Linux systems, and is used by the PDF viewers of the open source GNOME and KDE desktop environments.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

Linux began in 1991 as a personal project by Finnish student Linus Torvalds to create a new free operating system kernel. The resulting Linux kernel has been marked by constant growth throughout its history. Since the initial release of its source code in 1991, it has grown from a small number of C files under a license prohibiting commercial distribution to the 4.15 version in 2018 with more than 23.3 million lines of source code, not counting comments, under the GNU General Public License v2.

<span class="mw-page-title-main">Okular</span> Document viewer by KDE

Okular is a multiplatform document viewer developed by the KDE community and based on Qt and KDE Frameworks libraries. It is distributed as part of the KDE Applications bundle. Its origins are from KPDF and it replaces KPDF, KGhostView, KFax, KFaxview and KDVI in KDE 4. Its functionality can be embedded in other applications.

<span class="mw-page-title-main">GrafX2</span> Raster graphics editor

GrafX2 is a bitmap graphics editor inspired by the Amiga programs Deluxe Paint and Brilliance. It is free software and distributed under the GPL-2.0-only license.

XZ Utils is a set of free software command-line lossless data compressors, including the programs lzma and xz, for Unix-like operating systems and, from version 5.0 onwards, Microsoft Windows. For compression/decompression the Lempel–Ziv–Markov chain algorithm (LZMA) is used. XZ Utils started as a Unix port of Igor Pavlov's LZMA-SDK that has been adapted to fit seamlessly into Unix environments and their usual structure and behavior.

<span class="mw-page-title-main">MuPDF</span>

MuPDF is a free and open-source software framework written in C that implements a PDF, XPS, and EPUB parsing and rendering engine. It is used primarily to render pages into bitmaps, but also provides support for other operations such as searching and listing the table of contents and hyperlinks.