OCRmyPDF/docs/release_notes.rst

644 lines
24 KiB
ReStructuredText
Raw Normal View History

Release notes
=============
OCRmyPDF uses `semantic versioning <http://semver.org/>`_ for its command line interface.
The OCRmyPDF package itself does not contain a public API, although it is fairly stable and breaking changes are usually timed with a major release. A future release will clearly define the stable public API.
2017-10-12 14:04:45 -07:00
v5.4.1
2017-10-08 12:41:03 -07:00
------
2017-10-12 14:04:45 -07:00
- Add workaround for Tesseract v4.00alpha crash when trying to obtain orientation and the latest language packs are installed
v5.4
----
2017-10-08 12:41:03 -07:00
- Change wording of a deprecation warning to improve clarity
2017-10-11 14:32:58 -07:00
- Added option to generate PDF/A-1b output if desired (``--output-type pdfa-1``); default remains PDF/A-2b generation
2017-10-08 12:41:03 -07:00
- Update documentation
2017-09-01 12:50:45 -07:00
v5.3.3
------
2017-09-01 12:50:45 -07:00
- Fixed missing error message that should occur when trying to force ``--pdf-renderer sandwich`` on old versions of Tesseract
2017-09-01 12:50:45 -07:00
- Update copyright information in test files
- Set system ``LANG`` to UTF-8 in Dockerfiles to avoid UTF-8 encoding errors
v5.3.2
------
- Fixed a broken test case related to language packs
2017-08-24 01:09:19 -07:00
v5.3.1
------
- Fixed wrong return code given for missing Tesseract language packs
- Fixed "brew audit" crashing on Travis when trying to auto-brew
2017-07-27 00:11:12 -07:00
v5.3
----
- Added ``--user-words`` and ``--user-patterns`` arguments which are forwarded to Tesseract OCR as words and regular expressions respective to use to guide OCR. Supplying a list of subject-domain words should assist Tesseract with resolving words. (#165)
- Using a non Latin-1 language with the "hocr" renderer now warns about possible OCR quality and recommends workarounds (#176)
- Output file path added to error message when that location is not writable (#175)
- Otherwise valid PDFs with leading whitespace at the beginning of the file are now accepted
v5.2
----
- When using Tesseract 3.05.01 or newer, OCRmyPDF will select the "sandwich" PDF renderer by default, unless another PDF renderer is specified with the ``--pdf-renderer`` argument. The previous behavior was to select ``--pdf-renderer=hocr``.
- The "tesseract" PDF renderer is now deprecated, since it can cause problems with Ghostscript on Tesseract 3.05.00
- The "tess4" PDF renderer has been renamed to "sandwich". "tess4" is now a deprecated alias for "sandwich".
2017-05-29 14:36:50 -07:00
v5.1
----
- Files with pages larger than 200" (5080 mm) in either dimension are now supported with ``--output-type=pdf`` with the page size preserved (in the PDF specification this feature is called UserUnit scaling). Due to Ghostscript limitations this is not available in conjunction with PDF/A output.
2017-05-11 23:11:12 -07:00
2017-05-14 23:59:09 -07:00
v5.0.1
------
- Fixed issue #169, exception due to failure to create sidecar text files on some versions of Tesseract 3.04, including the jbarlow83/ocrmypdf Docker image
2017-05-14 23:59:09 -07:00
2017-05-12 14:14:28 -07:00
v5.0
----
2017-03-29 15:43:54 -07:00
2017-05-11 23:11:12 -07:00
- Backward incompatible changes
2017-09-01 12:47:22 -07:00
+ Support for Python 3.4 dropped. Python 3.5 is now required.
+ Support for Tesseract 3.02 and 3.03 dropped. Tesseract 3.04 or newer is required. Tesseract 4.00 (alpha) is supported.
+ The OCRmyPDF.sh script was removed.
2017-05-11 23:11:12 -07:00
- Add a new feature, ``--sidecar``, which allows creating "sidecar" text files which contain the OCR results in plain text. These OCR text is more reliable than extracting text from PDFs. Closes #126.
- New feature: ``--pdfa-image-compression``, which allows overriding Ghostscript's lossy-or-lossless image encoding heuristic and making all images JPEG encoded or lossless encoded as desired. Fixes #163.
- Fixed issue #143, added ``--quiet`` to suppress "INFO" messages
- Fixed issue #164, a typo
- Removed the command line parameters ``-n`` and ``--just-print`` since they have not worked for some time (reported as Ubuntu bug `#1687308 <https://bugs.launchpad.net/ubuntu/+source/ocrmypdf/+bug/1687308>`_)
2017-03-29 15:43:54 -07:00
2017-02-06 21:56:55 -08:00
2017-05-01 15:55:02 -07:00
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
2017-04-28 15:27:41 -07:00
v4.5.5
------
- Automated update of macOS homebrew tap
2017-05-01 15:55:02 -07:00
- Fixed issue #154, KeyError '/Contents' when searching for text on blank pages that have no /Contents record. Note: incomplete fix for this issue.
2017-04-28 15:27:41 -07:00
2017-04-18 18:09:15 -07:00
v4.5.4
------
2017-04-18 18:09:15 -07:00
- Fix ``--skip-big`` raising an exception if a page contains no images (#152) (thanks to @TomRaz)
- Fix an issue where pages with no images might trigger "cannot write mode P as JPEG" (#151)
2017-03-29 13:19:34 -07:00
v4.5.3
------
2017-03-29 13:19:34 -07:00
2017-09-01 12:47:22 -07:00
- 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
2017-03-29 13:19:34 -07:00
v4.5.2
------
2017-09-01 12:47:22 -07:00
- Fix 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
------
2017-09-01 12:47:22 -07:00
- Fix 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
2017-02-14 13:03:48 -08:00
v4.5
----
2017-02-14 13:03:48 -08:00
2017-09-01 12:47:22 -07:00
- Exotic PDFs containing "Form XObjects" are now supported (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
2017-02-14 13:03:48 -08:00
2017-02-06 21:56:55 -08:00
v4.4.2
------
2017-02-06 21:56:55 -08:00
2017-09-01 12:47:22 -07:00
- The Docker images (ocrmypdf, ocrmypdf-polyglot, ocrmypdf-tess4) are now based on Ubuntu 16.10 instead of Debian stretch
2017-02-06 21:56:55 -08:00
2017-09-01 12:47:22 -07:00
+ 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
2017-02-06 21:56:55 -08:00
2017-09-01 12:47:22 -07:00
- 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
2017-02-06 21:56:55 -08:00
v4.4.1
------
2017-01-28 22:23:35 -08:00
2017-09-01 12:47:22 -07:00
- 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
2017-01-28 22:23:35 -08:00
2017-02-06 21:56:55 -08:00
v4.4
----
2017-01-26 12:29:11 -08:00
2017-09-01 12:47:22 -07:00
- Tesseract 4.00 is now supported on an experimental basis.
2017-01-26 12:29:11 -08:00
2017-09-01 12:47:22 -07:00
+ 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
2017-01-26 12:29:11 -08:00
2017-09-01 12:47:22 -07:00
- 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.
2017-01-26 12:29:11 -08:00
2017-09-01 12:47:22 -07:00
+ However, OCRmyPDF's dependency "ruffus" is not re-entrant, so no Python API is available. Scripts should continue to use the command line interface.
2017-01-26 12:29:11 -08:00
2017-02-06 21:56:55 -08:00
v4.3.5
------
2017-01-03 00:45:33 -08:00
2017-09-01 12:47:22 -07:00
- Update documentation to confirm Python 3.6.0 compatibility. No code changes were needed, so many earlier versions are likely supported.
2017-01-03 00:45:33 -08:00
2017-02-06 21:56:55 -08:00
v4.3.4
------
2016-12-08 16:34:09 -08:00
2017-09-01 12:47:22 -07:00
- Fixed "decimal.InvalidOperation: quantize result has too many digits" for high DPI images
2016-12-08 16:34:09 -08:00
2017-02-06 21:56:55 -08:00
v4.3.3
------
2017-09-01 12:47:22 -07:00
- Fixed PDF/A creation with Ghostscript 9.20 properly
- Fixed an exception on inline stencil masks with a missing optional parameter
2017-02-06 21:56:55 -08:00
v4.3.2
------
2016-11-10 23:16:08 -08:00
2017-09-01 12:47:22 -07:00
- Fixed a PDF/A creation issue with Ghostscript 9.20 (note: this fix did not actually work)
2016-11-10 23:16:08 -08:00
2017-02-06 21:56:55 -08:00
v4.3.1
------
2016-11-07 14:36:08 -08:00
2017-09-01 12:47:22 -07:00
- 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
2016-11-07 14:36:08 -08:00
2016-09-01 21:33:38 -07:00
2017-02-06 21:56:55 -08:00
v4.3
----
2016-10-27 23:48:12 -07:00
2017-09-01 12:47:22 -07:00
- 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
2016-10-27 23:48:12 -07:00
2017-09-01 12:47:22 -07:00
+ This does not improve performance since temporary files are still used for buffering
+ Some output validation is disabled in this mode
2016-10-27 23:48:12 -07:00
2017-02-06 21:56:55 -08:00
v4.2.5
------
2017-09-01 12:47:22 -07:00
- Fixed an issue (#100) with PDFs that omit the optional /BitsPerComponent parameter on images
- Removed non-free file milk.pdf
2017-02-06 21:56:55 -08:00
v4.2.4
------
2016-09-01 21:33:38 -07:00
2017-09-01 12:47:22 -07:00
- Fixed an error (#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)
2016-09-01 21:33:38 -07:00
2017-02-06 21:56:55 -08:00
v4.2.3
------
2016-08-31 13:19:27 -07:00
2017-09-01 12:47:22 -07:00
- Fixed an issue with PDFs that store page rotation (/Rotate) in an indirect object
- Integrated a few fixes to simplify downstream packaging (Debian)
2016-08-31 13:19:27 -07:00
2017-09-01 12:47:22 -07:00
+ The test suite no longer assumes it is installed
+ If running Linux, skip a test that passes Unicode on the command line
2016-08-31 13:19:27 -07:00
2017-09-01 12:47:22 -07:00
- 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
2016-08-31 13:19:27 -07:00
2016-06-23 13:47:56 -07:00
2017-02-06 21:56:55 -08:00
v4.2.2
------
2017-09-01 12:47:22 -07:00
- Improvements to documentation
2017-02-06 21:56:55 -08:00
v4.2.1
------
2016-08-24 14:16:22 -07:00
2017-09-01 12:47:22 -07:00
- Fixed an issue where PDF pages that contained stencil masks would report an incorrect DPI and cause Ghostscript to abort
- Implemented stdin streaming
2016-08-24 14:16:22 -07:00
2017-02-06 21:56:55 -08:00
v4.2
----
2016-07-27 14:47:59 -07:00
2017-09-01 12:47:22 -07:00
- ocrmypdf will now try to convert single image files to PDFs if they are provided as input (#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)
2016-08-03 03:36:45 -07:00
2017-09-01 12:47:22 -07:00
- New argument ``--output-type {pdf|pdfa}`` allows disabling Ghostscript PDF/A generation
2016-08-03 03:36:45 -07:00
2017-09-01 12:47:22 -07:00
+ ``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
2016-08-03 03:36:45 -07:00
2017-09-01 12:47:22 -07:00
- 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
2016-08-03 03:36:45 -07:00
2017-09-01 12:47:22 -07:00
+ 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 #82
2017-09-01 12:47:22 -07:00
- Fixes an issue where, with certain settings, monochrome images in PDFs would be converted to 8-bit grayscale, increasing file size (#79)
- Support for Ubuntu 12.04 LTS "precise" has been dropped in favor of (roughly) Ubuntu 14.04 LTS "trusty"
2016-07-27 14:47:59 -07:00
2017-09-01 12:47:22 -07:00
+ Some Ubuntu "PPAs" (backports) are needed to make it work
2016-08-02 01:29:33 -07:00
2017-09-01 12:47:22 -07:00
- Support for some older dependencies dropped
2017-09-01 12:47:22 -07:00
+ 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)
2016-07-27 14:47:59 -07:00
2017-09-01 12:47:22 -07:00
- Ghostscript now runs in "safer" mode where possible
2016-07-27 14:47:59 -07:00
2017-02-06 21:56:55 -08:00
v4.1.4
------
2016-07-17 00:35:06 -07:00
2017-09-01 12:47:22 -07:00
- 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
2016-07-17 00:35:06 -07:00
2017-02-06 21:56:55 -08:00
v4.1.3
------
2016-06-23 13:47:56 -07:00
2017-09-01 12:47:22 -07:00
- More helpful error message for PDFs with version 4 security handler
- Update usage instructions for Windows/Docker users
- Fix order of operations for matrix multiplication (no effect on most users)
- Add a few leptonica wrapper functions (no effect on most users)
2016-06-23 13:47:56 -07:00
2017-02-06 21:56:55 -08:00
v4.1.2
------
2017-09-01 12:47:22 -07:00
- 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
2017-02-06 21:56:55 -08:00
v4.1
----
2016-04-28 00:46:16 -07:00
2017-09-01 12:47:22 -07:00
- ``--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
2016-04-28 00:46:16 -07:00
2017-02-06 21:56:55 -08:00
v4.0.7
------
2016-03-02 06:27:01 -08:00
2017-09-01 12:47:22 -07:00
- Minor correction to Ghostscript output settings
2016-03-02 06:27:01 -08:00
2017-02-06 21:56:55 -08:00
v4.0.6
------
2016-03-01 01:58:32 -08:00
2017-09-01 12:47:22 -07:00
- Update install instructions
- Provide a sRGB profile instead of using Ghostscript's
2016-03-01 01:58:32 -08:00
2017-02-06 21:56:55 -08:00
v4.0.5
------
2016-02-27 00:22:37 -08:00
2017-09-01 12:47:22 -07:00
- 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
2016-02-27 00:22:37 -08:00
2017-02-06 21:56:55 -08:00
v4.0.4
------
2016-02-27 01:01:38 -08:00
Released with verbose debug message turned on. Do not use. Skip to v4.0.5.
2016-02-27 00:22:37 -08:00
2017-02-06 21:56:55 -08:00
v4.0.3
------
2016-02-26 01:12:15 -08:00
New features
^^^^^^^^^^^^
2016-02-26 01:12:15 -08:00
2017-09-01 12:47:22 -07:00
- Page orientations detected are now reported in a summary comment
2016-02-26 01:12:15 -08:00
Fixes
^^^^^
2016-02-26 01:12:15 -08:00
2017-09-01 12:47:22 -07:00
- 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
2016-02-26 01:12:15 -08:00
2017-02-06 21:56:55 -08:00
v4.0.2
------
Fixes
^^^^^
2017-09-01 12:47:22 -07:00
- 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
2017-02-06 21:56:55 -08:00
v4.0.1
------
Fixes
^^^^^
2017-09-01 12:47:22 -07:00
- Fixed a KeyError if tesseract fails to find page orientation information
2017-02-06 21:56:55 -08:00
v4.0
----
2016-02-15 14:03:59 -08:00
New features
^^^^^^^^^^^^
2016-02-15 14:03:59 -08:00
2017-09-01 12:47:22 -07:00
- 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. (#4)
- Deskewing is now performed using Leptonica instead of unpaper. Leptonica is faster and more reliable
at image deskewing than unpaper.
2016-02-15 14:03:59 -08:00
Fixes
^^^^^
2016-02-15 14:03:59 -08:00
2017-09-01 12:47:22 -07:00
- 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) (#49)
2016-02-15 14:03:59 -08:00
Changes
^^^^^^^
2016-02-15 14:03:59 -08:00
2017-09-01 12:47:22 -07:00
- Logging output is now much easier to read
- ``--deskew`` is now performed by Leptonica instead of unpaper (#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.
2016-02-15 14:03:59 -08:00
2017-02-06 21:56:55 -08:00
v3.2.1
------
2016-02-05 16:10:18 -08:00
Changes
^^^^^^^
2016-02-05 16:10:18 -08:00
2017-09-01 12:47:22 -07:00
- Fixed issue #47 "convert() got and unexpected keyword argument 'dpi'" by upgrading to img2pdf 0.2
- Tweaked the Dockerfiles
2016-02-05 16:10:18 -08:00
2017-02-06 21:56:55 -08:00
v3.2
----
2016-01-19 16:49:49 -08:00
New features
^^^^^^^^^^^^
2016-01-19 16:49:49 -08:00
2017-09-01 12:47:22 -07:00
- Lossless reconstruction: when possible, OCRmyPDF will inject text layers without
otherwise manipulating the content and layout of a PDF page. For example, a PDF containing a mix
of vector and raster content would see the vector content preserved. Images may still be transcoded
during PDF/A conversion. (``--deskew`` and ``--clean-final`` disable this mode, necessarily.)
- New argument ``--tesseract-pagesegmode`` allows you to pass page segmentation arguments to Tesseract OCR.
This helps for two column text and other situations that confuse Tesseract.
- Added a new "polyglot" version of the Docker image, that generates Tesseract with all languages packs installed,
for the polyglots among us. It is much larger.
2016-01-19 16:49:49 -08:00
2016-02-04 23:41:33 -08:00
Changes
^^^^^^^
2016-02-04 23:41:33 -08:00
2017-09-01 12:47:22 -07:00
- JPEG transcoding quality is now 95 instead of the default 75. Bigger file sizes for less degradation.
2016-02-04 23:41:33 -08:00
2016-01-19 16:49:49 -08:00
2017-02-06 21:56:55 -08:00
v3.1.1
------
Changes
^^^^^^^
2017-09-01 12:47:22 -07:00
- Fixed bug that caused incorrect page size and DPI calculations on documents with mixed page sizes
2017-02-06 21:56:55 -08:00
v3.1
----
2015-12-04 04:31:01 -08:00
Changes
^^^^^^^
2017-09-01 12:47:22 -07:00
- Default output format is now PDF/A-2b instead of PDF/A-1b
- Python 3.5 and macOS El Capitan are now supported platforms - no changes were
needed to implement support
- Improved some error messages related to missing input files
- Fixed issue #20 - uppercase .PDF extension not accepted
- Fixed an issue where OCRmyPDF failed to text that certain pages contained previously OCR'ed text,
such as OCR text produced by Tesseract 3.04
- Inserts /Creator tag into PDFs so that errors can be traced back to this project
- Added new option ``--pdf-renderer=auto``, to let OCRmyPDF pick the best PDF renderer.
Currently it always chooses the 'hocrtransform' renderer but that behavior may change.
- Set up Travis CI automatic integration testing
2017-02-06 21:56:55 -08:00
v3.0
----
2015-07-28 04:36:58 -07:00
New features
^^^^^^^^^^^^
2015-07-28 04:36:58 -07:00
2017-09-01 12:47:22 -07:00
- Easier installation with a Docker container or Python's ``pip`` package manager
- Eliminated many external dependencies, so it's easier to setup
- Now installs ``ocrmypdf`` to ``/usr/local/bin`` or equivalent for system-wide
access and easier typing
- Improved command line syntax and usage help (``--help``)
- Tesseract 3.03+ PDF page rendering can be used instead for better positioning
of recognized text (``--pdf-renderer tesseract``)
- PDF metadata (title, author, keywords) are now transferred to the
output PDF
- PDF metadata can also be set from the command line (``--title``, etc.)
- Automatic repairs malformed input PDFs if possible
- Added test cases to confirm everything is working
- Added option to skip extremely large pages that take too long to OCR and are
often not OCRable (e.g. large scanned maps or diagrams); other pages are still
processed (``--skip-big``)
- Added option to kill Tesseract OCR process if it seems to be taking too long on
a page, while still processing other pages (``--tesseract-timeout``)
- Less common colorspaces (CMYK, palette) are now supported by conversion to RGB
- Multiple images on the same PDF page are now supported
2015-07-28 04:36:58 -07:00
Changes
^^^^^^^
2017-09-01 12:47:22 -07:00
- New, robust rewrite in Python 3.4+ with ruffus_ pipelines
- Now uses Ghostscript 9.14's improved color conversion model to preserve PDF colors
- OCR text is now rendered in the PDF as invisible text. Previous versions of OCRmyPDF
incorrectly rendered visible text with an image on top.
- All "tasks" in the pipeline can be executed in parallel on any
available CPUs, increasing performance
- The ``-o DPI`` argument has been phased out, in favor of ``--oversample DPI``, in
case we need ``-o OUTPUTFILE`` in the future
- Removed several dependencies, so it's easier to install. We no
longer use:
- GNU parallel_
- ImageMagick_
- Python 2.7
- Poppler
- MuPDF_ tools
- shell scripts
- Java and JHOVE_
- libxml2
- Some new external dependencies are required or optional, compared to v2.x:
- Ghostscript 9.14+
- qpdf_ 5.0.0+
- Unpaper_ 6.1 (optional)
- some automatically managed Python packages
2015-07-28 04:36:58 -07:00
.. _ruffus: http://www.ruffus.org.uk/index.html
.. _parallel: https://www.gnu.org/software/parallel/
.. _ImageMagick: http://www.imagemagick.org/script/index.php
.. _MuPDF: http://mupdf.com/docs/
2015-08-05 16:56:30 -07:00
.. _qpdf: http://qpdf.sourceforge.net/
2015-07-28 04:36:58 -07:00
.. _Unpaper: https://github.com/Flameeyes/unpaper
.. _JHOVE: http://jhove.sourceforge.net/
2015-08-05 16:56:30 -07:00
Release candidates
^^^^^^^^^^^^^^^^^^
2015-08-05 16:56:30 -07:00
2017-09-01 12:47:22 -07:00
- rc9:
2015-08-29 16:43:22 -07:00
2017-09-01 12:47:22 -07:00
- fix issue #118: report error if ghostscript iccprofiles are missing
- fixed another issue related to #111: PDF rasterized to palette file
- add support image files with a palette
- don't try to validate PDF file after an exception occurs
2015-08-29 16:43:22 -07:00
2017-09-01 12:47:22 -07:00
- rc8:
2015-08-24 01:25:01 -07:00
2017-09-01 12:47:22 -07:00
- fix issue #111: exception thrown if PDF is missing DocumentInfo dictionary
2015-08-24 01:25:01 -07:00
2017-09-01 12:47:22 -07:00
- rc7:
2015-08-23 12:30:40 -07:00
2017-09-01 12:47:22 -07:00
- fix error when installing direct from pip, "no such file 'requirements.txt'"
2015-08-23 12:30:40 -07:00
2017-09-01 12:47:22 -07:00
- rc6:
2017-09-01 12:47:22 -07:00
- dropped libxml2 (Python lxml) since Python 3's internal XML parser is sufficient
- set up Docker container
- fix Unicode errors if recognized text contains Unicode characters and system locale is not UTF-8
2017-09-01 12:47:22 -07:00
- rc5:
2017-09-01 12:47:22 -07:00
- dropped Java and JHOVE in favour of qpdf
- improved command line error output
- additional tests and bug fixes
- tested on Ubuntu 14.04 LTS
2017-09-01 12:47:22 -07:00
- rc4:
2015-08-05 16:56:30 -07:00
2017-09-01 12:47:22 -07:00
- dropped MuPDF in favour of qpdf
- fixed some installer issues and errors in installation instructions
- improve performance: run Ghostscript with multithreaded rendering
- improve performance: use multiple cores by default
- bug fix: checking for wrong exception on process timeout
2015-08-05 16:56:30 -07:00
2017-09-01 12:47:22 -07:00
- rc3: skipping version number intentionally to avoid confusion with Tesseract
- rc2: first release for public testing to test-PyPI, Github
- rc1: testing release process
2015-08-05 16:56:30 -07:00
2015-07-28 04:36:58 -07:00
Compatibility notes
-------------------
2017-09-01 12:47:22 -07:00
- ``./OCRmyPDF.sh`` script is still available for now
- Stacking the verbosity option like ``-vvv`` is no longer supported
2015-07-28 04:36:58 -07:00
2017-09-01 12:47:22 -07:00
- The configuration file ``config.sh`` has been removed. Instead, you can
feed a file to the arguments for common settings:
2015-07-28 04:36:58 -07:00
::
2017-09-01 12:47:22 -07:00
ocrmypdf input.pdf output.pdf @settings.txt
2015-07-28 04:36:58 -07:00
where ``settings.txt`` contains *one argument per line*, for example:
2015-07-28 04:36:58 -07:00
::
2017-09-01 12:47:22 -07:00
-l
deu
--author
A. Merkel
--pdf-renderer
tesseract
2015-07-28 04:36:58 -07:00
Fixes
^^^^^
2017-09-01 12:47:22 -07:00
- Handling of filenames containing spaces: fixed
2015-07-28 04:36:58 -07:00
2015-08-29 16:43:22 -07:00
Notes and known issues
^^^^^^^^^^^^^^^^^^^^^^
2015-07-28 04:36:58 -07:00
2017-09-01 12:47:22 -07:00
- Some dependencies may work with lower versions than tested, so try
overriding dependencies if they are "in the way" to see if they work.
2015-07-28 04:36:58 -07:00
2017-09-01 12:47:22 -07:00
- ``--pdf-renderer tesseract`` will output files with an incorrect page size in Tesseract 3.03,
due to a bug in Tesseract.
2015-08-29 16:43:22 -07:00
2017-09-01 12:47:22 -07:00
- PDF files containing "inline images" are not supported and won't be for the 3.0 release. Scanned
images almost never contain inline images.
2015-08-29 16:43:22 -07:00
2017-02-06 21:56:55 -08:00
v2.2-stable (2014-09-29)
------------------------
OCRmyPDF versions 1 and 2 were implemented as shell scripts. OCRmyPDF 3.0+ is a fork that gradually replaced all shell scripts with Python while maintaining the existing command line arguments. No one is maintaining old versions.
2017-01-26 23:15:32 -08:00
For details on older versions, see the `final version of its release notes <https://github.com/fritz-hh/OCRmyPDF/blob/7fd3dbdf42ca53a619412ce8add7532c5e81a9d1/RELEASE_NOTES.md>`_.