Changes:
1.19.0
------
* Removed support for Luratech JBIG2 and JPEG2000 decoders.
* Added 'extract' library for more output options:
Added DOCX output format
Added ODT output format
* Notable new features:
Journal for undo and redo
Snapshot for auto-save and restore (for backgrounding mobile apps)
Reflow document wrapper
Rollover appearance for annotations and widgets
Customize appearance of signed digital signatures
Progress and cancel callbacks to OCR functions
Create signature form fields
* Minor new features:
Support CJK fonts in pdfwrite output
Support JBIG2 images in pdfwrite output
Support opacity for all markup annotation types
High-DPI aware UI in mupdf-gl
mutool extract -a option to embed SMasks as alpha channel
* API changes:
Removed pdf_widget type alias (was always same as pdf_annot)
Updated annotation 'dirty' logic
Fix typo in function and type names: designated name -> distinguished name
More functions available to 'mutool run'
More functions available to Java library
* New unicode scripts and fonts for EPUB:
Dogra, Elymaic, Gondi, Hanifi Rohingya, Masaram Gondi,
Medefaidrin, Nushu, Nyiakeng Puachue Hmong, Old Sogdian,
Sogdian, Soyombo, Wancho, Yezidi, and Zanabazar Square.
* C++ and Python bindings:
C++ and Python bindings now work on Windows.
Python bindings are available as pre-built binaries on pypi.org.
Added demo PDF viewer using the Python MuPDF bindings and PyQt.
Better access to data in generated wrapper classes.
Improved handling of out-parameters in generated Python.
Text representation of POD types via C++ operator<< and Python str().
Fixed ref-counting bug in iterators.
Updates for new MuPDF functions.
Version 9.55.0 (2021-09-27)
Highlights in this release include:
This release includes the fix for the %pipe% security issue (CVE-2021-3781).
New PDF Interpreter: This is an entirely new implementation written in C (rather than PostScript, as before). For a full discussion of this change and reasons for it see: Changes Coming to the PDF Interpreter.
In this (9.55.0) release, the new PDF interpreter is disabled by default in Ghostscript, but can be used by specifying -dNEWPDF. We hope to make it the default in 9.56.0, and fully deprecate the PostScript implementation shortly after that (depending on the feedback we get).
This also allows us to offer a new executable (gpdf, or gpdfwin??.exe on Windows) which is purely for PDF input. For this release, those new binaries are not included in the "install" make targets, nor in the Windows installers (they will be from 9.56.0 onwards).
We would ask that as many users as possible take the opportunity to test with the new PDF implementation (i.e. using -dNEWPDF on your gs command line), and discuss any problems with us, before the new implementation becomes the default.
The pdfwrite device now supports "passthrough" for JPX/JPG2000 data images (as well as the already supported JPEG/DCT Encoded). That means that if no rescaling or color conversion of the image data is required, the encoded/compressed image data from the input file will be written unchanged to the output, preventing potential image degradation caused by decompressing and recompressing.
The Ghostscript/GhostPDL demo apps for C, C#, Java and Python have all had improvements and the C#/Java/Python language bindings have now been documented, see Ghostscript Language Bindings
The Zugferd compliant PDF generating definitions (lib/zugferd.ps) have been updated and expanded to support the current version (2.1.1) of the Zugferd spec, and optionally different versions of the specification.
The PCL/m output devices now support Duplex/Tumble.
The internal support for "n-up" style simple imposition (introduced in 9.54.0) has been extended and improved for better support across all input formats.
Ghostscript now supports object specific halftone - for example, different halftones can be specified for text and images, reflecting the differing needs of rendering those two types of object.
Our efforts in code hygiene and maintainability continue.
The usual round of bug fixes, compatibility changes, and incremental improvements.
(9.53.0) We have added the capability to build with the Tesseract OCR engine. In such a build, new devices are available (pdfocr8/pdfocr24/pdfocr32) which render the output file to an image, OCR that image, and output the image "wrapped" up as a PDF file, with the OCR generated text information included as "invisible" text (in PDF terms, text rendering mode 3).
Release 21.09.0:
core:
* Splash: Massive spped improvement on files that use lots of save/restore (q/Q) operators
* Correct decoding of signature properties Reason & Location when they are Unicode
* Fix issues with malformed files
* MSVC build fixes
build system:
* Call cmake_minium_required() before project()
* Always append to CMAKE_{C,CXX}_FLAGS_${CMAKE_BUILD_TYPE}
* correctly forward user-provided flags to try_compile()
Release 21.08.0:
core:
* Add API to allow addition and modification of outlines into a PDF
* Use additional samples to test for constant parts of an axial gradient
* forms: Create fallback fonts for some well known font names
* Support reading the PDF Version from the Catalog
* Fix XRef::copy when there are modified objects
* Take into account that Date string may be in unicode
* JBIG2Stream: Fix regression in "Do not consider a size-0 to be an error"
* Replace a local bubble sort implementation by std::sort
* Fix issues with malformed files
build system:
* Better error message when libjpeg is not found
* Better error messages when libopenjpeg2 is not found
qt5/qt6:
* Document that a document has to outlive its pages
* Make getPdfVersion return a dedicated version object
glib:
* mimick TextSelectionDumper logic change for spaceAfter
(https://github.com/yihui/knitr/releases)
@yihui yihui released this Sep 9, 2021
NEW FEATURES
* Added a package option latex.tilde so that users can customize the tilde
symbol, e.g., you can set knitr::opts_knit$set(latex.tilde = "\\hlopt{\\
scriptsize{\\ensuremath{\\sim}}}"). This is because the default tilde is
too high in the PDF output, and it's often more desirable to use a middle
tilde instead (thanks, @brry #1992, @jaredlander #492).
* For the tikz engine, the class options of the standalone document classs
can be specified via the chunk option engine.opts$classoption (thanks,
@XiangyunHuang, #1985). The default value is tikz, i.e., \documentclass
[tikz]{standalone} is used by default.
* Added the ability to pass additional arguments to dvisvgm when using the
tikz engine with fig.ext = "svg" by using dvisvgm.opts in engine.opts
(thanks, @andrewheiss, #2039). Recent versions of dvisvgm now allow you to
embed fonts into SVG files as base64-encoded WOFF files, so tikz chunks can
embed fonts using like so: ```{tikz, fig.ext="svg", engine.opts=list
(dvisvgm.opts = "--font-format=woff")}.
* Added a new targets engine (ropensci/targets#503, @wlandau). Details:
https://books.ropensci.org/targets/markdown.html.
* The chunk option cache.globals can take values TRUE and FALSE now (in
addition to a character vector). When FALSE, it tries to find all symbols
in the code chunk, no matter if they are local or global variables. When
NULL or TRUE, it tries to find all global variables (thanks, @knokknok, #
1898).
MAJOR CHANGES
* An error is now thrown when an inline code result is not coercible to
character. This has always been the assumed behavior but it happens to be
different in certain formats with unknown automatic coercion. This is now
enforced to prevent any unexpected output. An inline code expression must
evaluate to a character vector or an object coercible by as.character() (#
2006).
* The markdown package has been moved from Imports to Suggests in knitr's
DESCRIPTION, which means it is no longer a hard dependency but has become a
soft dependency of knitr (#1864). One consequence for package developers is
that if you use the vignette engines based on markdown (such as
knitr::knitr), you will have to explicitly declare the (soft) dependency on
markdown, because the implicit dependency through knitr is no longer there.
* For R packages that use the knitr::rmarkdown engine to build their
vignettes, rmarkdown must be declared as a dependency in the package
DESCRIPTION (e.g., in Suggests). Previously, knitr would fall back to using
the markdown package to build vignettes if rmarkdown is not declared (#1864
, #2020).
* write_bib() only uses the first URL if multiple are found in a package (#
2028).
MINOR CHANGES
* The attribute data-external="1" will be added to <iframe>s generated by
include_url() to prevent Pandoc from embedding the URL as base64 data
(thanks, @IndrajeetPatil, https://stackoverflow.com/q/67477667/559676).
* The chunk option strip.white = TRUE used to work only when the chunk option
collapse = FALSE. Now the two options are independent, i.e., strip.white
also works when collapse = TRUE (thanks, @kbvernon, #2011).
* When building R Markdown vignettes but Pandoc is not available, the
vignette engine will emit a message instead of a warning before falling
back to using the markdown package.
* The internal function is_abs_path() has been removed. Users (if any) should
use the exported function xfun::is_abs_path() instead.
BUG FIXES
* Fix an issue with the RStudio IDE when using knitr::include_url() or
knitr::include_app() in interactive Notebook mode. This will no more cause
an error but print the list object as is (thanks, @systemnova, #2015).
* Fix a regression with fig.keep chunk option used in chunks with only one
figure where the figure was not showing in output (thanks, @fmichonneau, #
1993).
* Allow vignettes to be tangled (and output compared) in R CMD check if they
have a corresponding .Rout.save (thanks, @lentinj, #2018).
Upstream changes (from NEWS):
== Ruby-GNOME 3.4.9: 2021-08-10
This is a bug fix release of 3.4.8.
=== Changes
==== Ruby/GObjectIntrospection
* Fixes
* Fixed a bug that (({gpointer})) to Ruby conversion breaks a
value when pointer value is (({2 ** 32})) or larger.
== Ruby-GNOME 3.4.8: 2021-08-09
This is a bug fix release of 3.4.7.
=== Changes
==== Ruby/GObjectIntrospection
* Fixes
* Fixed a bug that (({gpointer})) to Ruby conversion breaks a
value when pointer value is (({2 ** 32})) or larger.
== Ruby-GNOME 3.4.7: 2021-07-30
This is a release that improves virtual function support.
=== Changes
==== Ruby/GLib2
* Improvements
* (({GLib::Error})): Added support for setting (({code})) and
(({domain})) automatically.
==== Ruby/GObjectIntrospection
* Improvements
* Added support for returning object from callback.
* Fixes
* Fixed a bug that (({GError})) detection doesn't work.
== Ruby-GNOME 3.4.6: 2021-07-17
This is a bug fix release for macOS.
=== Changes
==== Ruby/Pango
* Fixes
* Fixed a bug that (({require "pango"})) is failed on environment
that has multiple font types.
[GitHub#1429][Reported by Cameron Gose]
=== Thanks
* Cameron Gose
== Ruby-GNOME 3.4.5: 2021-07-07
This is a release that supports implementing virtual functions in
Ruby.
=== Changes
==== Ruby/GLib2
* Improvements
* Added (({GError})) domain and code for Ruby.
==== Ruby/GObjectIntrospection
* Improvements
* (({GObjectIntrospection::BaseInfo#container})): Added.
* (({GObjectIntrospection::ObjectInfo#class_struct})): Added.
* (({GObjectIntrospection::StructInfo#find_field})): Added.
* (({RVAL2GI_VFUNC_INFO()})): Added.
* Added support for implementing virtual functions in Ruby.
[GitHub#1386][Based on patch by Yuto Tokunaga]
You need to define (({virtual_do_#{virtual_function_name}}))
method in (({type_register}))-ed class.
* Added support for implementing virtual functions of interface in
Ruby.
[GitHub#985][Reported by Matijs van Zuijlen]
[GitHub#1938][Reported by Yuto Tokunaga]
* Added support for "transfer everything" UTF-8 return/output
value.
* Changed to accepted one character for (({gunichar})).
[GitHub#1426][Reported by rubyFeedback]
* (({GObjectIntrospection::CallableInfo#can_throw_gerror?})): Added.
* Added support for (({GError **})) in callback.
* Added support for returning (({GList<GObject *>})) from callback.
* Changed to return (({[]})) for (({NULL})) list.
* Fixes
* Fixed a bug that wrong type information is used for output
arguments.
==== Ruby/Pango
* Added support for (({PangoFT2})).
* Added support for (({PangoFc})).
* Added support for (({PangoOT})).
* Added support for (({PangoCairoFontMaps})).
* Updated gem metadata.
[GitHub#1428][Patch by Gabriel Mazetto]
=== Thanks
* Yuto Tokunaga
* Matijs van Zuijlen
* rubyFeedback
* Gabriel Mazetto
== Ruby-GNOME 3.4.4: 2021-04-22
This is a bug fix release for Windows.
=== Changes
==== All
* Dropped support for CentOS 6.
* Dropped support for Ubuntu 16.04.
* Dropped support for Ruby 2.4.
* Dropped support for Ruby 2.5.
* Added support for Ruby 3.0.
==== Document
* Improvements
* Improved how to use on Heroku.
[GitHub#1414][Patch by Juan D Lopez]
* Improved README.
[Patch by kojix2]
==== Ruby/GLib
* Improvements
* Added (({RVAL2POINTER()})).
* Added (({POINTER2RVAL()})).
* Changed to use (({rb_cObject})) instead of (({rb_cData})) as a
parent class of typed data.
* Changed to use typed data instead of data for all data types.
* Added support for Ractor partially.
* Required GLib 2.48 or later.
* (({GLib::UniChar.compose})): Added.
* (({GLib::UniChar.decompose})): Added.
* (({GLib::UniChar.canonical_decomposition})): Deprecated. Use
(({GLib::UniChar.decompose})) instead.
* (({GLib.format_size_for_display})): Deprecated. Use
(({GLib.format_size})) instead.
* Fixes
* Fixed wrong conversions between (({VALUE})) and (({GType})).
[GitHub#1386][Patch by Yuto Tokunaga]
==== Ruby/GObjectIntrospection
* Improvements
* Removed needless transfer check for struct.
[GitHub#1396][Reported by Konrad Narewski]
* Added support freeing (({GArray})) of raw struct out parameter.
[GitHub#1356][Reported by aycabta]
==== Ruby/Pango
* Improvements
* Added (({Pango::Render::PART_*})) to keep backward compatibility.
[GitHub#1311][Reported by rubyFeedback]
==== Ruby/GStreamer
* Improvements
* Removed needless workaround for
(({Gst::ElementFactory#static_pad_templates})).
[GitHub#1400][Reported by Justin Weiss]
==== Ruby/Gnumeric
* Improvements
* Added support for the latest Gnumeric.
==== Ruby/GTK3
* Improvements
* (({Gtk::Widget#set_size_request})): Added support for
(({width:})) and (({height:})).
[GitHub#1406][Reported by rubyFeedback]
* (({Gtk::Dialog#set_default_response})): Added support for
(({Symbol})).
[GitHub#1418][Reported by rubyFeedback]
==== Ruby/GDK4
* Added.
==== Ruby/GTK4
* Added.
==== Ruby/VTE3
* Improvements
* Improved description.
[GitHub#1406][Reported by rubyFeedback]
==== Ruby/GTK2
* Removed.
==== Ruby/GtkSourceView2
* Removed.
==== Ruby/WebKitGtk2
* Removed.
==== Ruby/VTE
* Removed.
=== Thanks
* Konrad Narewski
* aycabta
* rubyFeedback
* Justin Weiss
* Yuto Tokunaga
* Juan D Lopez
* kojix2
pkgsrc changes:
- as a reparation of removal of gtk2 dependent gems in the next 3.4.4,
make gtk2, webkit-gtk2, gtksourceview2, and vte gems independent
packages and remove them from meta-pkgs/ruby-gnome
- pkglint
Upstream changes (from NEWS):
== Ruby-GNOME 3.4.3: 2020-05-11
This is a follow-up release of 3.4.2.
=== Changes
==== Ruby/GLib2
* Fixes
* Windows: Fixed a link errors.
[DejaVuSans.ttf dependency does in fact still exist.]
CHANGES IN V1.28.10
- Sample PPDs: Add borderless page size definitions to Generic
PDF Printer, HP Color LaserJet CM3530 MFP PDF, and Ricoh PDF
Printer PPD files.
- Sample PPDs: From the PDF PPD files removed the unneeded
"*cupsFilters2: ..." line. For CUPS it does not make any
difference.
- libcupsfilters: Fixed pdftopdf filter to correctly support
page ranges without upper limit, like "10-" (Pull request
#399).
- libcupsfilters: Use wildcard tag (IPP_TAG_ZERO) search for
"media-type" and "media-type-supported" in the PPD
generator (Pull request #398).
- implicitclass, parallel: Added missing newlines at error
messages.
- libfontembed: Removed unneeded fontembed/main.c and ttfread
executable. Eliminates the dependency on DejaVuSans.ttf
(Issue #386).
- gstoraster: Refactor the filter a little to clarify handling
of page counts and set job-impressions for TotalPageCount in
PWG-Raster header (Pull request #394).
- cups-browsed: Make NotifLeaseDuration configurable and renew
after half the lease duration not 60 sec before end. The
early renewal improves reliability on busy systems a
lot. For easier development and debugging short durations
from 300 sec on can get selected (Pull request #378).
Changelog
* Account for page padding in full scroll
* Add forefground color for links
* Add :save and :save! aliases for :write and :write!
* Various fixes and improvements
* Updated translations
-All eight EXIF orientations are now handled properly
-cargo install installs a binary called jpeg-to-pdf instead of cli (#3)
-Various internal changes
-No longer depends on lazy_static
Many changes, including:
. Implemented &&& continuation lines, mainly for new replicator (see next).
. Implemented &* replication feature.
. Added escapes \<< and \>> for double typographic quotes.
. Implemented bracketed noteheads facility.
. Implemented key N.
. Transposition values of multiples of 11 or 12 caused PMW to give up with a
hard internal error for some note values.
. A maximum (accumulated) transposition value of 60 is now implemented. This
is 5 octaves, which should be enough for anybody.
. Added \nh\ and \nc\ so that individual notes can have noteheads set as
harmonic or cross. This makes it possible to have chords containing
different noteheads.
. Added /cx, /llc, /lrc, /rlc, and /rrc to slurs and lines to allow for
horizontal positioning by musical offset a la MusicXML.
. Added Unicode support for non-standardly encoded PostScript fonts via .utr
files.
. Added new "rest" letter T, the crotchet version giving a single slash beat
indicator and the whole bar rest version giving a "percent" repetition sign.
CHANGES 3.5.68
* graphics improve some error messages for renderPM
* changed lib.urilt.recursiveImport after errors in python3.10, reflect changes in readJPEGInfo
* pdfutils readJPEGInfo extracts dpi if present defaults to (72, 72)
* Image flowable allows a useDPI argument
* paraparser annotate some errors
Change log:
atril 1.24.1
* update translations
* epub backend: Escape link text to display & in index content
* Fix segfault on empty navMap
* build: silent build warnings for distcheck
* epub backend: build with WARN_CFLAGS instead WARN_CXXFLAGS
* build: set compiler warning level to yes
* Update authors
* thumbnailer: fix typo in the option description
* Use int64_t for g_date_time_to_unix even word size is 32-bit wide
Although most Brother printers support a standard printer language such
as PCL or PostScript, not all do. If you have a monochrome Brother laser
printer (or multi-function device) and the other open source drivers
don't work, this one might help.
Release 21.07.0:
core:
* JBIG2Stream: Do not consider a size-0 to be an error. Issue #535
* PSOutputDev: fix off-by-one error for image masking in L1/L2 output. Issue #1088
* CairoOutputDev: Fix memory leak on broken files
* Minor code improvements
build system:
* set C standard to 11 without extensions
NEWS - OpenPrinting CUPS Filters v1.28.9 - 2021-06-15
-----------------------------------------------------
CHANGES IN V1.28.9
- libcupsfilters: Silenced compiler warnings
- libcupsfilters: Removed duplicate code in the
apply_filters() function.
- driverless: If there are no driverless IPP printers
available let "driverless" terminate with exit code 0 and
not 1, to follow CUPS' standard of backends in discovery
mode terminating with 0 if there are no appropriate printers
found (Issue #375).
- gstoraster, foomatic-rip: Fixed Ghostscript command line for
counting pages as it took too long on PDFs from evince when
printing DjVu files (Issue #354, Pull request #371, Ubuntu
bug #1920730).
- cups-browsed: Renamed ldap_connect() due to conflict in
new openldap (Issue #367, Pull request #370).
- pdftoraster: Free color data after processing of each page
(Pull request #363).
- cups-browsed: Always save "...-default" option entries
from printers.conf, regardless of presence or absense
of PPD file (Pull request #359).
- cups-browsed: Start after network-online.target (Pull
request #360).
- texttopdf: Set default margins when no PPD file is used
(Pull request #356).
Update DEPENDS
Upstream changes:
1.2.0 2020-10-29
- Add Log::Any logging
- Use File::Temp to manage deletion of the temp directory
- Eliminate manipulation of global state in method invocation
- Update documentation and feedback channel
this is not used, rather it seems to use an internal copy of lua 5.3
instead. while it would be nice if it used our copy instead, for now
removing the luajit requirement at least improves portability.
Release 21.06.1:
glib:
* fix poppler_rectangle_free() regression. Issue #1087
Release 21.06.0:
core:
* Fix rendering of some extended latin1 characters in annotations. Issue #1070
* Support some not so well formed documents with password. Issue #1083
* Add API to get notified if the xref is reconstructed
* Add somewhat fancier left/right signature visual representation
* Fix crashes in malformed files
* Minor code improvements
qt6:
* Change some functions to return std::unique_ptr
qt5/qt6:
* Add API to get notified if the xref is reconstructed
* Add somewhat fancier left/right signature visual representation
* Don't assert when trying to invert singular matrices
build system:
* make boost opt-out if building splash
The 9.54.0 release is a maintenance release, and also adds new functionality.
Highlights in this release include:
Overprint simulation is now available to all output devices, allowing quality previewing/proofing of PostScript and PDF jobs that rely on overprint. See the -dOverprint option documentation in: Overprint
The "docxwrite" device adds the ability to output to Microsoft Word "docx" format. See: docxwrite
The pdfwrite device is now capable of using the Tesseract OCR engine when it is built into Ghostscript to improve searchability and copy and paste functionality when the input lacks the metadata for that purpose. See: UseOCR
Ghostscript/GhostPDL now includes a "map text to black" function, where text drawn by an input job (except when drawn using a Type 3 font) can be forced to draw in solid black. See: BlackText
Ghostscript/GhostPDL now supports simple N-up imposition "internally". See: NupControl
Our efforts in code hygiene and maintainability continue.
The usual round of bug fixes, compatibility changes, and incremental improvements.
(9.53.0) We have added the capability to build with the Tesseract OCR engine. In such a build, new devices are available (pdfocr8/pdfocr24/pdfocr32) which render the output file to an image, OCR that image, and output the image "wrapped" up as a PDF file, with the OCR generated text information included as "invisible" text (in PDF terms, text rendering mode 3).
Mainly due to time constraints, we only support including Tesseract from source included in our release packages, and not linking to Tesseract/Leptonica shared libraries. Whether we add this capability will be largely dependent on community demand for the feature.