409 lines
13 KiB
Markdown
409 lines
13 KiB
Markdown
% SPDX-FileCopyrightText: 2022 James R. Barlow
|
|
% SPDX-License-Identifier: CC-BY-SA-4.0
|
|
|
|
# v4
|
|
|
|
## v4.5.6
|
|
|
|
- Fixed {issue}`156`,
|
|
'NoneType' object has no attribute 'getObject' on pages with no
|
|
optional /Contents record. This should resolve all issues related to
|
|
pages with no /Contents record.
|
|
- Fixed {issue}`158`, ocrmypdf
|
|
now stops and terminates if Ghostscript fails on an intermediate
|
|
step, as it is not possible to proceed.
|
|
- Fixed {issue}`160`,
|
|
exception thrown on certain invalid arguments instead of error
|
|
message
|
|
|
|
## v4.5.5
|
|
|
|
- Automated update of macOS homebrew tap
|
|
- Fixed {issue}`154`, KeyError
|
|
'/Contents' when searching for text on blank pages that have no
|
|
/Contents record. Note: incomplete fix for this issue.
|
|
|
|
## v4.5.4
|
|
|
|
- Fixed `--skip-big` raising an exception if a page contains no images
|
|
({issue}`152`) (thanks
|
|
to @TomRaz)
|
|
- Fixed an issue where pages with no images might trigger "cannot write
|
|
mode P as JPEG"
|
|
({issue}`151`)
|
|
|
|
## v4.5.3
|
|
|
|
- Added a workaround for Ghostscript 9.21 and probably earlier versions
|
|
would fail with the error message "VMerror -25", due to a Ghostscript
|
|
bug in XMP metadata handling
|
|
- High Unicode characters (U+10000 and up) are no longer accepted for
|
|
setting metadata on the command line, as Ghostscript may not handle
|
|
them correctly.
|
|
- Fixed an issue where the `tess4` renderer would duplicate content
|
|
onto output pages if tesseract failed or timed out
|
|
- Fixed `tess4` renderer not recognized when lossless reconstruction
|
|
is possible
|
|
|
|
## v4.5.2
|
|
|
|
- Fixed {issue}`147`,
|
|
`--pdf-renderer tess4 --clean` will produce an oversized page
|
|
containing the original image in the bottom left corner, due to loss
|
|
DPI information.
|
|
- Make "using Tesseract 4.0" warning less ominous
|
|
- Set up machinery for homebrew OCRmyPDF tap
|
|
|
|
## v4.5.1
|
|
|
|
- Fixed {issue}`137`,
|
|
proportions of images with a non-square pixel aspect ratio would be
|
|
distorted in output for `--force-ocr` and some other combinations
|
|
of flags
|
|
|
|
## v4.5
|
|
|
|
- PDFs containing "Form XObjects" are now supported (issue
|
|
{issue}`134`; PDF
|
|
reference manual 8.10), and images they contain are taken into
|
|
account when determining the resolution for rasterizing
|
|
- The Tesseract 4 Docker image no longer includes all languages,
|
|
because it took so long to build something would tend to fail
|
|
- OCRmyPDF now warns about using `--pdf-renderer tesseract` with
|
|
Tesseract 3.04 or lower due to issues with Ghostscript corrupting the
|
|
OCR text in these cases
|
|
|
|
## v4.4.2
|
|
|
|
- The Docker images (ocrmypdf, ocrmypdf-polyglot, ocrmypdf-tess4) are
|
|
now based on Ubuntu 16.10 instead of Debian stretch
|
|
|
|
- This makes supporting the Tesseract 4 image easier
|
|
- This could be a disruptive change for any Docker users who built
|
|
customized these images with their own changes, and made those
|
|
changes in a way that depends on Debian and not Ubuntu
|
|
|
|
- OCRmyPDF now prevents running the Tesseract 4 renderer with Tesseract
|
|
3.04, which was permitted in v4.4 and v4.4.1 but will not work
|
|
|
|
## v4.4.1
|
|
|
|
- To prevent a [TIFF output
|
|
error](https://github.com/python-pillow/Pillow/issues/2206) caused
|
|
by img2pdf >= 0.2.1 and Pillow \<= 3.4.2, dependencies have been
|
|
tightened
|
|
- The Tesseract 4.00 simultaneous process limit was increased from 1 to
|
|
2, since it was observed that 1 lowers performance
|
|
- Documentation improvements to describe the `--tesseract-config`
|
|
feature
|
|
- Added test cases and fixed error handling for `--tesseract-config`
|
|
- Tweaks to setup.py to deal with issues in the v4.4 release
|
|
|
|
## v4.4
|
|
|
|
- Tesseract 4.00 is now supported on an experimental basis.
|
|
|
|
- A new rendering option `--pdf-renderer tess4` exploits Tesseract
|
|
4's new text-only output PDF mode. See the documentation on PDF
|
|
Renderers for details.
|
|
- The `--tesseract-oem` argument allows control over the Tesseract
|
|
4 OCR engine mode (tesseract's `--oem`). Use
|
|
`--tesseract-oem 2` to enforce the new LSTM mode.
|
|
- Fixed poor performance with Tesseract 4.00 on Linux
|
|
|
|
- Fixed an issue that caused corruption of output to stdout in some
|
|
cases
|
|
|
|
- Removed test for Pillow JPEG and PNG support, as the minimum
|
|
supported version of Pillow now enforces this
|
|
|
|
- OCRmyPDF now tests that the intended destination file is writable
|
|
before proceeding
|
|
|
|
- The test suite now requires `pytest-helpers-namespace` to run (but
|
|
not install)
|
|
|
|
- Significant code reorganization to make OCRmyPDF re-entrant and
|
|
improve performance. All changes should be backward compatible for
|
|
the v4.x series.
|
|
|
|
- However, OCRmyPDF's dependency "ruffus" is not re-entrant, so no
|
|
Python API is available. Scripts should continue to use the
|
|
command line interface.
|
|
|
|
## v4.3.5
|
|
|
|
- Update documentation to confirm Python 3.6.0 compatibility. No code
|
|
changes were needed, so many earlier versions are likely supported.
|
|
|
|
## v4.3.4
|
|
|
|
- Fixed "decimal.InvalidOperation: quantize result has too many digits"
|
|
for high DPI images
|
|
|
|
## v4.3.3
|
|
|
|
- Fixed PDF/A creation with Ghostscript 9.20 properly
|
|
- Fixed an exception on inline stencil masks with a missing optional
|
|
parameter
|
|
|
|
## v4.3.2
|
|
|
|
- Fixed a PDF/A creation issue with Ghostscript 9.20 (note: this fix
|
|
did not actually work)
|
|
|
|
## v4.3.1
|
|
|
|
- Fixed an issue where pages produced by the "hocr" renderer after a
|
|
Tesseract timeout would be rotated incorrectly if the input page was
|
|
rotated with a /Rotate marker
|
|
- Fixed a file handle leak in LeptonicaErrorTrap that would cause a
|
|
"too many open files" error for files around hundred pages of pages
|
|
long when `--deskew` or `--remove-background` or other Leptonica
|
|
based image processing features were in use, depending on the system
|
|
value of `ulimit -n`
|
|
- Ability to specify multiple languages for multilingual documents is
|
|
now advertised in documentation
|
|
- Reduced the file sizes of some test resources
|
|
- Cleaned up debug output
|
|
- Tesseract caching in test cases is now more cautious about false
|
|
cache hits and reproducing exact output, not that any problems were
|
|
observed
|
|
|
|
## v4.3
|
|
|
|
- New feature `--remove-background` to detect and erase the
|
|
background of color and grayscale images
|
|
|
|
- Better documentation
|
|
|
|
- Fixed an issue with PDFs that draw images when the raster stack depth
|
|
is zero
|
|
|
|
- ocrmypdf can now redirect its output to stdout for use in a shell
|
|
pipeline
|
|
|
|
- This does not improve performance since temporary files are still
|
|
used for buffering
|
|
- Some output validation is disabled in this mode
|
|
|
|
## v4.2.5
|
|
|
|
- Fixed an issue
|
|
({issue}`100`) with
|
|
PDFs that omit the optional /BitsPerComponent parameter on images
|
|
- Removed non-free file milk.pdf
|
|
|
|
## v4.2.4
|
|
|
|
- Fixed an error
|
|
({issue}`90`) caused by
|
|
PDFs that use stencil masks properly
|
|
- Fixed handling of PDFs that try to draw images or stencil masks
|
|
without properly setting up the graphics state (such images are now
|
|
ignored for the purposes of calculating DPI)
|
|
|
|
## v4.2.3
|
|
|
|
- Fixed an issue with PDFs that store page rotation (/Rotate) in an
|
|
indirect object
|
|
|
|
- Integrated a few fixes to simplify downstream packaging (Debian)
|
|
|
|
- The test suite no longer assumes it is installed
|
|
- If running Linux, skip a test that passes Unicode on the command
|
|
line
|
|
|
|
- Added a test case to check explicit masks and stencil masks
|
|
|
|
- Added a test case for indirect objects and linearized PDFs
|
|
|
|
- Deprecated the OCRmyPDF.sh shell script
|
|
|
|
## v4.2.2
|
|
|
|
- Improvements to documentation
|
|
|
|
## v4.2.1
|
|
|
|
- Fixed an issue where PDF pages that contained stencil masks would
|
|
report an incorrect DPI and cause Ghostscript to abort
|
|
- Implemented stdin streaming
|
|
|
|
## v4.2
|
|
|
|
- ocrmypdf will now try to convert single image files to PDFs if they
|
|
are provided as input
|
|
({issue}`15`)
|
|
|
|
- This is a basic convenience feature. It only supports a single
|
|
image and always makes the image fill the whole page.
|
|
- For better control over image to PDF conversion, use `img2pdf`
|
|
(one of ocrmypdf's dependencies)
|
|
|
|
- New argument `--output-type {pdf|pdfa}` allows disabling
|
|
Ghostscript PDF/A generation
|
|
|
|
- `pdfa` is the default, consistent with past behavior
|
|
- `pdf` provides a workaround for users concerned about the
|
|
increase in file size from Ghostscript forcing JBIG2 images to
|
|
CCITT and transcoding JPEGs
|
|
- `pdf` preserves as much as it can about the original file,
|
|
including problems that PDF/A conversion fixes
|
|
|
|
- PDFs containing images with "non-square" pixel aspect ratios, such as
|
|
200x100 DPI, are now handled and converted properly (fixing a bug
|
|
that caused to be cropped)
|
|
|
|
- `--force-ocr` rasterizes pages even if they contain no images
|
|
|
|
- supports users who want to use OCRmyPDF to reconstruct text
|
|
information in PDFs with damaged Unicode maps (copy and paste text
|
|
does not match displayed text)
|
|
- supports reinterpreting PDFs where text was rendered as curves for
|
|
printing, and text needs to be recovered
|
|
- fixes issue
|
|
{issue}`82`
|
|
|
|
- Fixes an issue where, with certain settings, monochrome images in
|
|
PDFs would be converted to 8-bit grayscale, increasing file size
|
|
({issue}`79`)
|
|
|
|
- Support for Ubuntu 12.04 LTS "precise" has been dropped in favor of
|
|
(roughly) Ubuntu 14.04 LTS "trusty"
|
|
|
|
- Some Ubuntu "PPAs" (backports) are needed to make it work
|
|
|
|
- Support for some older dependencies dropped
|
|
|
|
- Ghostscript 9.15 or later is now required (available in Ubuntu
|
|
trusty with backports)
|
|
- Tesseract 3.03 or later is now required (available in Ubuntu
|
|
trusty)
|
|
|
|
- Ghostscript now runs in "safer" mode where possible
|
|
|
|
## v4.1.4
|
|
|
|
- Bug fix: monochrome images with an ICC profile attached were
|
|
incorrectly converted to full color images if lossless reconstruction
|
|
was not possible due to other settings; consequence was increased
|
|
file size for these images
|
|
|
|
## v4.1.3
|
|
|
|
- More helpful error message for PDFs with version 4 security handler
|
|
- Update usage instructions for Windows/Docker users
|
|
- Fixed order of operations for matrix multiplication (no effect on most
|
|
users)
|
|
- Add a few leptonica wrapper functions (no effect on most users)
|
|
|
|
## v4.1.2
|
|
|
|
- Replace IEC sRGB ICC profile with Debian's sRGB (from
|
|
icc-profiles-free) which is more compatible with the MIT license
|
|
- More helpful error message for an error related to certain types of
|
|
malformed PDFs
|
|
|
|
## v4.1
|
|
|
|
- `--rotate-pages` now only rotates pages when reasonably confidence
|
|
in the orientation. This behavior can be adjusted with the new
|
|
argument `--rotate-pages-threshold`
|
|
- Fixed problems in error checking if `unpaper` is uninstalled or
|
|
missing at run-time
|
|
- Fixed problems with "RethrownJobError" errors during error handling
|
|
that suppressed the useful error messages
|
|
|
|
## v4.0.7
|
|
|
|
- Minor correction to Ghostscript output settings
|
|
|
|
## v4.0.6
|
|
|
|
- Update install instructions
|
|
- Provide a sRGB profile instead of using Ghostscript's
|
|
|
|
## v4.0.5
|
|
|
|
- Remove some verbose debug messages from v4.0.4
|
|
- Fixed temporary that wasn't being deleted
|
|
- DPI is now calculated correctly for cropped images, along with other
|
|
image transformations
|
|
- Inline images are now checked during DPI calculation instead of
|
|
rejecting the image
|
|
|
|
## v4.0.4
|
|
|
|
Released with verbose debug message turned on. Do not use. Skip to
|
|
v4.0.5.
|
|
|
|
## v4.0.3
|
|
|
|
New features
|
|
|
|
- Page orientations detected are now reported in a summary comment
|
|
|
|
Fixes
|
|
|
|
- Show stack trace if unexpected errors occur
|
|
- Treat "too few characters" error message from Tesseract as a reason
|
|
to skip that page rather than abort the file
|
|
- Docker: fix blank JPEG2000 issue by insisting on Ghostscript versions
|
|
that have this fixed
|
|
|
|
## v4.0.2
|
|
|
|
Fixes
|
|
|
|
- Fixed compatibility with Tesseract 3.04.01 release, particularly its
|
|
different way of outputting orientation information
|
|
- Improved handling of Tesseract errors and crashes
|
|
- Fixed use of chmod on Docker that broke most test cases
|
|
|
|
## v4.0.1
|
|
|
|
Fixes
|
|
|
|
- Fixed a KeyError if tesseract fails to find page orientation
|
|
information
|
|
|
|
## v4.0
|
|
|
|
New features
|
|
|
|
- Automatic page rotation (`-r`) is now available. It uses ignores
|
|
any prior rotation information on PDFs and sets rotation based on the
|
|
dominant orientation of detectable text. This feature is fairly
|
|
reliable but some false positives occur especially if there is not
|
|
much text to work with.
|
|
({issue}`4`)
|
|
- Deskewing is now performed using Leptonica instead of unpaper.
|
|
Leptonica is faster and more reliable at image deskewing than
|
|
unpaper.
|
|
|
|
Fixes
|
|
|
|
- Fixed an issue where lossless reconstruction could cause some pages
|
|
to be appear incorrectly if the page was rotated by the user in
|
|
Acrobat after being scanned (specifically if it a /Rotate tag)
|
|
- Fixed an issue where lossless reconstruction could misalign the
|
|
graphics layer with respect to text layer if the page had been
|
|
cropped such that its origin is not (0, 0)
|
|
({issue}`49`)
|
|
|
|
Changes
|
|
|
|
- Logging output is now much easier to read
|
|
- `--deskew` is now performed by Leptonica instead of unpaper
|
|
({issue}`25`)
|
|
- libffi is now required
|
|
- Some changes were made to the Docker and Travis build environments to
|
|
support libffi
|
|
- `--pdf-renderer=tesseract` now displays a warning if the Tesseract
|
|
version is less than 3.04.01, the planned release that will include
|
|
fixes to an important OCR text rendering bug in Tesseract 3.04.00.
|
|
You can also manually install ./share/sharp2.ttf on top of pdf.ttf in
|
|
your Tesseract tessdata folder to correct the problem.
|
|
|