Poppler 0.67.0

Poppler is librarified PDF rendering toolkit derived from the Xpdf 3.0 code base. It can utilize X11-independent rendering backends like Cairo, Splash, or Qt4 Arthur. It's not designed for platform-agnosticy, but proper BSD/Linux integration; is used by various PDF applications (Evince, Okular, TeXStudio, pdftotext, Zathura, Xournal, Inkscape), and comes with a set of command-line tools of its own.

Tags c++ pdf rendering library developers
License GNU GPL
State initial

Recent Releases

0.67.020 Jul 2018 04:05 major bugfix: Core: Lots of security/leak found by oss-fuzz. Splash: Optimize some files, making them 20 faster (now for AABGR8). Utils: Pdfsig: Compile with libc != glibc..
0.66.020 Jun 2018 10:45 major bugfix: Core: Lots of security/leak found by oss-fuzz. Splash: Optimize some files, making them 20 faster. Splash: Correctly manipulate spot colors if SPOT_NCOMPS != 4. Compilation with some strict compilers.
0.65.020 May 2018 03:25 major bugfix: core: SplashOutputDev: Add the invisible character check beginType3Char. XRef: runtime undefined behaviour. with malformed documents., #103238. Remove GooHash after replacing it by std::unordered_map. Add conversion methods between GooString and std::string. cpp: Add newline after error message. Expose more image modes, add option to select mode in renderer. build system: compilation with libc++. Small improvement to FindLIBOPENJPEG2.cmake. qt5: Add widget annot actions to FormFields. utils: pdffonts: Minor formatting changes in the man page..
0.64.018 Apr 2018 14:45 major bugfix: core: Workaround form field text not being drawn on broken files. Add read only setter for form fields. Add support for Link Hide action. Add support for Next actions in Links. parsing of Annot focus out actions. PDFDoc::checkHeader() for PDFs smaller than 1 KiB. Add const to several classes and members. gfile: build on some platforms. with on malformed documents., #105969, #106059, #106061. Several small code improvements. qt5: Allow setting of Form visibility status. Allow setting of Form read only status. Add support for Link Hide action. Add support for Next actions in Links. ArthurOutputDev: Implement axialShadedFill. ArthurOutputDev: Implement drawImageMask. ArthurOutputDev: Implement Type3 font support. utils: pdfsig: Add -dump which writes signatures to disk. glib: less deprecated calls. build system: bring back the option to disable GObject introspection. Add iconv include dir when compiling. Make it possible to build poppler without fontconfig. Default for Android.
0.63.021 Mar 2018 05:25 major bugfix: core: CairoOutputDev: support embedding CCITT image data. CairoOutputDev: limit image size when printing. CairoOutputDev: use GOOD instead of BEST as the default cairo filter for scaling. Error out on save if file has changed since we opened it. PDFDoc: use c instead of x to output binary. index out of bounds undefined behaviour in PSTokenizer. opening files with OutlineItem loops. some in StructTreeRoot parsing of parent tree. Remove error for wrong child type for tagged pdf. FoFiTrueType::readPostTable() from xpdf 4.00. GfxFontDict: merge reference generation from xpdf 4.00. Reset lastAbortCheck on updateLevel reset. PDFDoc::setup: Fail early if base stream length is 0. Check curStr is actually a Stream before doing Stream operations. new Object API porting. Check return code of getChar(), abort reading on error. TextPage: Add horizontal scaling to font matrix. EmbedStream replay. memory leak on error condition. assert on malformed documents. abort in Gfx::opBeginMarkedContent if args 1 is not a name. GfxGouraudTriangleShading::parse: Don't abort on malformed documents. GfxFunctionShading::parse: abort in malformed document. Remove the extern C from glib.h. Don't let ArthurOutputDev be friend of SplashPath anymore. undefined sanitizer warning about qsort. Form.h: include time.h for time_t. Various code improvements. qt5: Add cancellation support to renderToImage and textList. Do not assume all Screen annotation actions are Renditions. KDE qt5: Implement operator= for PageTransition. ArthurOutputDev: 'clip' should intersect new and old clipping path. ArthurOutputDev: Implement updateBlendMode. ArthurOutputDev: Replace the QPainter by a stack of QPainters. ArthurOutputDev: Rudimentary support for transparency groups. Remove stale libcms1 code. demo: don't crash if page is malformed. warnings due to the use of deprecated overloads of Poppler::Page::Search in tests. utils: pdfimages: for files with flate encoded inline images. pdftocairo:
0.62.005 Dec 2017 06:05 major bugfix: core: Stop supporting lcms1, you really want to use lcms2 :). Stop supporting openjpeg1, you really want to use openjpeg2 :). Open files that state 8 bits as third field of W. GfxLabColorSpace::parse: crash in broken documents. leak if parseDA fails. Include glibc.h where needed. Document the meaning of the 'type' integer of a shading. UTF test fail. INSTALL: add deoptions. qt5: Add API to let the rendering process callback to get a partial rendering. qt4: Remove the Qt4 frontend. utils: Support unicode on windows console. pdfsig: install man page. sort encoding list. glib: demo: warning.
0.61.113 Nov 2017 07:25 minor bugfix: Core: CairoOutputDev: don't overflow y stride when accessing image data. Cpp: For corrupted image files on Windows. build system: Incorrect paths in.pc files. add the custom buildtests target only once..
0.61.005 Nov 2017 21:05 major bugfix: core: crashes in broken files. Cleanup unused functions from GlobalParams. Tweak LZWStream::processNextCode error handling. Warning Remove t1lib code. qt5: Clean up the remaining Splash code in Arthur backend. ArthurOutputDev: Properly implement saveState/restoreState. leak in ArthurOutputDev::updateFont. build system: Use GNUInstallDirs. mingw: Install pkg-config files. mingw: change library names to include the soversion. installing a.cc file as header. Use -pthread flag instead of -lpthread.
0.60.107 Oct 2017 22:05 minor feature: Qt5: ArthurOutputDev: Add missing 'return' in error paths. Build system: FindLIBOPENJPEG.cmake: Add CheckCXXSourceCompiles.
0.60.003 Oct 2017 14:05 major bugfix: Core: Enable libcurl support by default. PSOutputDev: wrong text generation. Added methods to get and set the font size of text fields. CairoOutputDev: Do not extend the pattern in drawImageMaskRegular. CairoOutputDev: do not use the custom downscaling for rendering images when using cairo = 1.14. Build with old clang. Various crashes in broken files. Some warnings. Add some constness to the basic classes. Remove unused functions from GlobalParams. Qt5: Added methods to get and set the font size of text fields. Add whether renderToImage shows annotations. ArthurOutputDev: Replace Splash font rendering by Qt font rendering. ArthurOutputDev: Implement the drawSoftMaskedImage method. ArthurOutputDev: several small related to dash pattern handling. Two minor typos. Build system: Cmake is now the default build system. Autotools based build system has been removed. Utils: Pdfinfo: don't truncate dest name.
0.59.007 Sep 2017 07:45 major bugfix: Core: Infinite recursion in NameTree parsing in broken files. Utils: Pdfunite: API porting error that caused abort in some cases. Pdfinfo: crashes and memory leaks when using -dests. Pdfinfo: use GooString.append instead of sprintf/strcat. Pdfimages: warning when compiling with cygwin. Build system: Cygwin 32-bit compile. Cmake tweaks.
0.58.003 Sep 2017 09:45 major bugfix: Core: CairoOutputDev: cairo 1.14 now has high quality downscaling. Signature related improvements. Tweak which cmap we use. Memory leak Substantial rework of the internals. Win32: call ANSI functions directly. Add some documentation. Qt5: Expose signature information. ArthurOutputDev: initialize the image with the paper color. copy'n'paste : Qt4 - Qt5. ArthurOutputDev: Properly set the QPainter transformation. ArthurOutputDev: Use Qt::SvgMiterJoin instead of Qt::MiterJoin. utils: Pdfinfo: add -dests option to print named destinations. pdftocairo: add -jpegopt for setting jpeg compression parameters. pdftoppm: add -jpegopt for setting jpeg compression parameters. pdfimages: support listing/extracting inline images. build system: Cmake: Various Windows cmake: Use -std=c++11 instead of -std=gnu++11. Cpp: Page.text() not taking page orientation into account..
0.57.001 Aug 2017 11:45 major bugfix: Core: Parsing of Type 1 fonts with newlines in encoding sequences. crash in broken documents. Utils: Pdfunite: crash with broken documents. pdftohtml: skip control characters pdfseparate: minor improvement to the documentation. build system: Cmake: Set RUNPATH for poppler shared libs. configure: --disable-FEATURE actually enabling the feature.
0.56.022 Jun 2017 16:05 major bugfix: Core: FormFieldButton::setState() shouldn't check the field is readOnly. Crashes on multiple broken files. Utils: Pdfunite: crash with broken documents..
0.55.022 May 2017 04:25 major bugfix: Core: Abort in files with broken Decode arrays. KDE memory leak (and probably logic ) parsing broken XRef entries. memory leak when reconstructing broken files. Minor optimization. Regression in GfxIndexedColorSpace::mapColorToBase. memory leak in error condition. Cpp: Return nullptr if the page at index can't be fetched. build system: Fail by default if libjpeg is not available. Fail by default if libopenjpeg2/1 is not available.
0.54.022 Apr 2017 19:25 major bugfix: Core: Make XRef reconstruction a bit better. glib: Expose movie play mode. demo: Show play mode in movie properties view. Qt5: Compile with -DQT_NO_CAST_FROM_BYTEARRAY. utils: Pdfimages: don't fail listing if inline image data contains 'EI'..
0.53.023 Mar 2017 22:05 major bugfix: Core: Form support improvements. SplashOutputDev: memory leak when rendering images with colormap and matte color. Minor in GlobalParams documentation. Qt5: Expose form calculate order. Expose Form additional actions. Utils: Pdfimages: support 16bpc png and tiff images. pdftohtml: small memory leak when constructing some filenames. Pdfinfo: leak when printing JS. Build sytem: Compile in C++11 mode.
0.52.016 Feb 2017 10:05 major bugfix: Core: Assert on reading some OCGs. Properly initialize some RichMedia variables in corner cases. qt4: Optcontent structure was leaking the headers items. Cleanup objects in tests to memory leaks. qt5: Optcontent structure was leaking the headers items. Cleanup objects in tests to memory leaks. utils: Pdftocairo.1: typo.
0.51.016 Jan 2017 21:05 major bugfix: Core: Check for error from NSS in SignatureHandler construct. Add Form Field Widget ::setPartialName. Memory leak in PDFDoc::markAnnotations. Qt5: Implement digital signature support. Add Poppler::FormField::setName. Segfault/assert if LinkDestination is constructed with invalid input string. utils: Pdfunite: add fields to AcroForm dict..
0.50.016 Dec 2016 21:05 major bugfix: Core: PSOutputDev: PS conversion for some files. Outline parsing on broken documents. PDFDoc::saveIncrementalUpdate()'s detection of document being modified. SplashOutputDev: Read softmask into memstrean in case of matte. Bail out if Hints nBitsNumObjects or nBitsDiffGroupLength are greater than 32. CairoOutputDev: initialize CairoOutputDev::antialias. crash when loading some thumbnails. utils: Pdftoppm: -tiff -gray/-mono incorrect output. Pdftops: add -passlevel1customcolor. build system: Default to libopenjpeg2 instead of libopenjpeg1. qt: Support OCG state change links. Glib: Use g_slice_new0 for PopplerActionLayer..
0.49.015 Nov 2016 13:05 major bugfix: Core: Merge type3 glyph handling from xpdf 3.04. Continue rendering in case of 'Singular matrix in shading pattern fill. memory leak in parametrized gouraudTriangleShadedFill. Crash on broken files. PDFDoc::setDocInfoStringEntry(): treat value consisting of just the unicode marker as an empty string. UBSAN warning. Misc compile. Utils: Pdfseparate: remove extra ' ' in error message. Build system: Configure: typo in disable nss help string.
0.48.010 Oct 2016 05:45 major bugfix: Core: Crashes and memory leaks in invalid files. Small memory usage improvements. TextOutputDev: Remove null characters from PDF text. TextOutputDev: Break words on all whitespace characters. UTF16 decoding of document outline title. Add functions for named destination name in name-tree/dict. Glib: Increase glib requirement to 2.41.
0.47.020 Aug 2016 06:45 major bugfix: Core: Abort on documents where the docinfo obj is not a dict. Check for XRefEntry existing before using it. memory leak on PDFDoc::setDocInfoStringEntry() with empty string. Don't presume that DocInfo is a dictionary in XRef::createDocInfoIfNoneExists(). Build system: Configure: Work with non gnu greps.
0.46.026 Jul 2016 01:45 major bugfix: Core: Cairo: in setAntialias(). Cairo: tiling patterns with BBox with non-zero x,y. Cairo: try finding glyphs in substitute fonts by unicode value. Added XRef modification flag. Added DocInfo setters getters. Be less strict when parsing FitH Link destinations. utils: Pdftocairo: revert the use of groups for blending into white page. Pdftocairo: Use fprintf for printing errors. Pdfinfo: Don't print pdf info when printing metadata, javascript, or structure. glib: Added document property setters simplified getters. Make document metatag gobject properties writeable. Cpp: Pass len to GooString constructor in detail::ustring_to_unicode_GooString(). Added functions to save a document. Added document property setters getters. Qt4: Added document property setters simplified getters. Qt5: Added document property setters simplified getters. Build system: Configure: Don't use -fPIC on cygwin. Configure: Work with non gnu greps.
0.45.018 Jun 2016 02:45 major bugfix: Core: SplashOutputDev: iccTransform + splashModeXBGR8. Memory leaks. Crash in broken files.. Emulate some non portable glibc functions when not available. Utils: Pdftohtml: crash in broken files. pdfinfo: convert dates to local time zone. Pdfinfo: add -isodates for printing dates in ISO-8601 format. Pdfinfo: memory leaks. Glib: Return date in UTC instead of local time. cpp: Switched from detail::convert_date() to core's dateStringToTime().
0.44.023 May 2016 00:45 major bugfix: Core: Compile in 32bit linux. Splash: type 3 chars. restore the current position also in output device. Splash: Improve rendering of some dotted lines. Refactor GooString::Set(). typo in GfxPatchMeshShading::parse. Memory leak in PSOutputDev::filterPSLabel. Memory leak in SignatureHandler::getDefaultFirefoxCertDB_Linux. Potential crash in SplashOutputDev::doUpdateFont. Potential crash in TextPage::coalesce. Remove call that does nothing. Utils: Pdftocairo: add -antialias option..
0.43.002 May 2016 08:45 major bugfix: Core: Implement sanity check for linearization usage. Add SymbolMT as an alias for the Symbol font. some blank files. cairo: fillToStrokePathClip crash and rendering. cairo: Check if PDF knows the width of 'm' in case of substituted font. cairo: save mask state and don't extend image mask. SplashOuputDev: Compile with C++11 compilers that don't define isinfinite. typo. Utils: Pdftocairo: Calculate rotation before scaling. qt4: Crash on certain PDF form item activation actions. qt5: Crash on certain PDF form item activation actions..
0.42.018 Mar 2016 01:05 major bugfix: Core: Add the support for version 5 + revision 6 documents. Add initial support for Signature handling. Initialize gamut mapping multipliers in ::copy() functions. Implement jpx streams support with depth 8. Handle SMaskInData = 0 for JPX encoded images. rendering of some broken PDF files. PSOutputDev: Support for LZW encoding. PSOutputDev: Add support for Flate compression in Level 3 output. SplashOuputDev: Implement function shading. SplashOuputDev: Improve rendering of some non embedded fonts. SplashOuputDev: Fall back to Gfx implementation of tiling pattern if repetition rate is small. SplashOuputDev: Implementation of Matte entries in softmasks of softmasked images. SplashOuputDev: assure line width 0 in case of text stroke. TextOuputDev: Cache result of inner loop in visitDepthFirst. Avoid attempting a tiling pattern fill with a singular transform matrix. Utils: Pdfinfo: Add option to show document structure. Pdfsig: New command that gives information about signature. Qt4: in links to remote documents getting the page number wrong sometimes. Qt5: in links to remote documents getting the page number wrong sometimes.
0.41.017 Feb 2016 20:05 major bugfix: Core: CairoOutputDev: add missing font types (fontCIDType0COT and fontTrueTypeOT). SplashOutputDev: Adjust limit check and check in addition bitmap pointer. utils: Pdfseparate: Refine resource detection. Pdfinfo: man page.
0.40.015 Jan 2016 06:05 major bugfix: Core: CairoOutputDev: Use shape mask with soft mask. TextOutputDev: Handle right-to-left text in search. TextOutputDev: finding Arabic Presentation Forms ligatures. Crash in invalid file. Regression test improvements. Utils: Pdftocairo: writing to stdout out with image output. Pdftocairo: document that -singlefile appends file type. pdftocairo: ensure surface flushed before accessing image data. Pdftocairo: check for invalid use of options. pdfunite: typo in manual. Build system: Improve cmake build system.
0.39.017 Dec 2015 13:45 major bugfix: Core: Ignore the alternateSpace and tintTransform. CairoOutputDev: Scale radial pattern. CairoOutputDev: Implement function shading using mesh gradients. Regression test improvements. Typos in error messages. Build system: Visual Studio 2015 now supports snprintf. utils: Pdftops: PageBoundingBox. pdftocairo: double free when both user and owner passwords are given. Glib: Add duration_real to PopplerPageTransition. Remove enum PopplerOrientation from API. documentation improvements. Glib-demo improvements.
0.38.017 Nov 2015 03:17 major bugfix: Core: Splash: Multiply opacity in case of pattern colorspace. Small form improvements on non ascii character rendering. Clarify README. Build system: Clarify internal DCT and JPX are only provided as deprecated fallbacks. Utils: Pdftocairo: fit to page transformation.
0.37.010 Oct 2015 16:05 major bugfix: Core: CairoOutputDev: Use mask for even-odd fill. SplashOuputDev: Protect calls to set/getAA with the proper #if guards. SplashOuputDev: Try to use an external font if the internal one is invalid. PageTransition D is a number not an int. Catalog::getNumPages(): validate page count. Catalog::cachePageTree(): recover from out of memory condition. Crashes in malformed documents. Build system: Configure: openjpeg detection.
0.36.011 Sep 2015 00:25 major bugfix: core: Patch to support RichMedia annotations. Splash: wrong memory access. Cairo: size of transparency group surface. bounds check in Linearization::getPageFirst. File Saving improvements. Add premultiplied alpha channel to SplashBitmap. for xref table creation. JBIG2Decode infinite loop and stack overflow. Minor optimization in text extraction. qt4: Basic support for RichMedia annotations. Change default image format. Minor optimizations. qt5: Basic support for RichMedia annotations. Change default image format. Minor optimizations. cpp: utf8/utf16 conversion. build system: Do not hardcode -fPIC in Makefile.am. cmake: Allow configuring SHARE_INSTALL_DIR. utils: pdfunite: Insert embedded files in result pdf. pdftotext: Add -bbox-layout option..
0.35.010 Aug 2015 18:05 bugfix: core: Fix assert in broken file. Adjust memory layout computation of GooString. Make SplashBitmap XBGR transfer alpha channel. Splash: Fix wrong writes on non rgb outputs. Splash: remove ifndef in Windows code. GlobalParamsWin bugfixes. qt4: Switch default image format. Add IgnorePaperColor render flag. qt5: Improve efficiency of Poppler::Page::renderToImage. Switch default image format. Add IgnorePaperColor render flag. build system: Allow configuring SPLASH_CMYK support. Add configure --enable-build-type. glib: Explicitly link against pthread. Deprecation fixes. utils: pdftocairo: Fix cast to pointer from integer of different size on win64.
0.34.010 Jul 2015 05:45 minor bugfix: Splash: Fix crash in PDF with nested softmasks. Splash: Speed up of rendering icc based images. PSOutputDev: Embed Type1 fonts to PostScript files correctly. Fix pedantic memory leak. glib: update new symbols section. cmake: Make sure ENABLE_LIBOPENJPEG is either 0 or 1.
0.33.015 May 2015 14:25 minor feature: core: Fix regression in pdftops parameter passing. * Combine base characters and diacritical marks. * Use width from W array for WMode positioning. * Fixed adding annotation of Subtype Popup to pdf page. * CairoOutputDev: Fix memory leak in CairoFreeTypeFont::create. * SplashOutputDev: memset on error to have reproducible outputs. qt4:. * Fix PDF Text String - QString conversion. KDE qt5:. * Fix PDF Text String - QString conversion. KDE glib:. * Add poppler_annot_markup_set_popup_rectangle(). * Fix segfault when creating PopplerAction. utils:. * pdftohtml: Set exit status adecuately. build system:. * configure: Fix invalid shell comparaison in libtiff test.
0.32.008 Mar 2015 17:05 minor feature: Annotations: Fix rendering of empty BG/BC arrays. Splash: Fix wrong colour shown when GouraudTriangleShFill uses a DeviceN colorspace. Splash: Fix use of uninitialized variable in Splash::pipeRun. Remove unnecesary check for font validity. Small optimization in GooString::appendfv. Fix crashes in malformed files. utils: pdftops: Make colorpsace optimization an option instead of default. pdfseparate: use always an unique instance for PDFDoc for savePageAs. build system: cmake: If extra-cmake-modules is around include the Sanitizers module.
0.31.009 Feb 2015 00:05 minor feature: CairoOutputDev: support embedding JBIG2 image data. Accept malformed documents whose root is a Page instead of a Pages. Fix crash on broken documents. JPEG2000Stream: Inline doGetChar and doLookChar. GlobalParams cleaning. utils: pdftops: Add rasterization option. qt4: Expose whole-words search option. qt5: Expose whole-words search option.
0.30.006 Jan 2015 22:05 major feature: New core features: Openjpeg2 support (openjpeg 1 is preferred). Fixed potential memory corruption on TextSelectionDumper. Check for invalid matrix in annotation. Open some not conforming files. PSOutputDev: Accept a list of pages indeces instead of first, last. Fix memory leak on error condition. New C++ API to set debug output function. Improve support with older clang versions. Pdfunite util: Support output intents, optional content and acroform.