Xpdf

Last updated
Xpdf
Developer(s) Glyph & Cog
Initial releaseDecember 12, 1995;28 years ago (1995-12-12)
Stable release
4.05 [1]   OOjs UI icon edit-ltr-progressive.svg / 8 February 2024
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, and 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.05 release". 8 February 2024. Retrieved 2 May 2024.
  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">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 a cross-platform application development framework 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.

wxWidgets Widget toolkit

wxWidgets is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with no significant code changes. A wide choice of compilers and other tools to use with wxWidgets facilitates development of sophisticated applications. wxWidgets supports a comprehensive range of popular operating systems and graphical libraries, both proprietary and free.

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

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 (X11) 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 and open-source 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.

<span class="mw-page-title-main">Poppler (software)</span> PDF rendering engine

Poppler is a free and open-source software library for rendering Portable Document Format (PDF) documents. Its development is supported by freedesktop.org. Commonly used on Linux systems, it powers the PDF viewers of the 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.

<span class="mw-page-title-main">Sumatra PDF</span> Free and open-source document viewer for Windows

Sumatra PDF is a free and open-source document viewer that supports many document formats including: Portable Document Format (PDF), Microsoft Compiled HTML Help (CHM), DjVu, EPUB, FictionBook (FB2), MOBI, PRC, Open XML Paper Specification, and Comic Book Archive file. If Ghostscript is installed, it supports PostScript files. It is developed exclusively for Microsoft Windows.

<span class="mw-page-title-main">GNU General Public License</span> Series of free software licenses

The GNU General Public Licenses are a series of widely used free software licenses, or copyleft licenses, that guarantee end users the freedoms to run, study, share, and modify the software. The GPL was the first copyleft license for general use. It was originally written by Richard Stallman, the founder of the Free Software Foundation (FSF), for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. The licenses in the GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License and even further distinct from the more widely-used permissive software licenses such as BSD, MIT, and Apache.

<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> Rendering engine for PDF, XPS, and EPUB

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.

<span class="mw-page-title-main">Lumina (desktop environment)</span> Desktop environment for X Window System

Lumina Desktop Environment, or simply Lumina, is a plugin-based desktop environment for Unix and Unix-like operating systems. It was designed specifically as a system interface for TrueOS and systems derived from Berkeley Software Distribution (BSD) in general, but it has been ported to various Linux distributions.