Compare commits

...
4 Commits
6 changed files with 65 additions and 24 deletions
+15 -8
View File
@@ -28,11 +28,14 @@ jobs:
python: "3.10"
- os: ubuntu-22.04
python: "3.11"
#- os: ubuntu-latest
# python: "pypy3.9"
- os: ubuntu-22.04
python: "3.9"
tesseract5: true
- os: ubuntu-latest
python: "3.12-dev"
tesseract5: true
#- os: ubuntu-latest
# python: "pypy3.9"
env:
OS: ${{ matrix.os }}
@@ -44,9 +47,10 @@ jobs:
fetch-depth: "0" # 0=all, needed for setuptools-scm to resolve version tags
- uses: actions/setup-python@v4
name: Install Python
name: Setup Python
with:
python-version: ${{ matrix.python }}
cache: "pip"
- name: Install Tesseract 5
if: matrix.tesseract5
@@ -109,7 +113,7 @@ jobs:
strategy:
matrix:
os: [macos-latest]
python: ["3.10", "3.11"]
python: ["3.10", "3.11", "3.12-dev"]
env:
OS: ${{ matrix.os }}
@@ -133,9 +137,10 @@ jobs:
tesseract
- uses: actions/setup-python@v4
name: Install Python
name: Setup Python
with:
python-version: ${{ matrix.python }}
cache: "pip"
- name: Install Python packages
run: |
@@ -165,7 +170,7 @@ jobs:
strategy:
matrix:
os: [windows-latest]
python: ["3.10", "3.11"]
python: ["3.10", "3.11", "3.12-dev"]
env:
OS: ${{ matrix.os }}
@@ -177,9 +182,10 @@ jobs:
fetch-depth: "0" # 0=all, needed for setuptools-scm to resolve version tags
- uses: actions/setup-python@v4
name: Install Python
name: Setup Python
with:
python-version: ${{ matrix.python }}
cache: "pip"
- name: Install system packages
run: |
@@ -210,9 +216,10 @@ jobs:
fetch-depth: "0" # 0=all, needed for setuptools-scm to resolve version tags
- uses: actions/setup-python@v4
name: Install Python
name: Setup Python
with:
python-version: "3.9"
cache: "pip"
- name: Make wheels and sdist
run: |
+26 -6
View File
@@ -117,14 +117,14 @@ exceed a certain number of megapixels with ``--skip-big``. (A 300 DPI,
OCR for huge images
-------------------
Separate from these settings, Tesseract has internal limits on the size
Tesseract has internal limits on the size
of images it will process. If you issue
``--tesseract-downsample-large-images``, OCRmyPDF will downsample images
to fit Tesseract limits. (The limits are usually entered only for scanned
images of oversized media, such as large maps or blueprints exceeding
110 cm or 43 inches in either dimension, and at high DPI.)
``--tesseract-downsample-above`` adjusts the threshold at which images
``--tesseract-downsample-above Npixels`` adjusts the threshold at which images
will be downsampled. By default, only images that exceed any of Tesseract's
internal limits are downsampled.
@@ -195,10 +195,10 @@ In each case OCRmyPDF will search the ``PATH`` environment variable to
locate the binaries. By modifying the ``PATH`` environment variable, you
can override the binaries that OCRmyPDF uses.
Changing tesseract configuration variables
Changing Tesseract configuration variables
------------------------------------------
You can override tesseract's default `control
You can override Tesseract's default `control
parameters <https://tesseract-ocr.github.io/tessdoc/tess3/ControlParams.html>`__
with a configuration file.
@@ -273,7 +273,7 @@ Unlike ``sandwich`` this renderer is implemented within OCRmyPDF; anyone
looking to customize how OCR is presented should look here. A major
disadvantage of this renderer is it not capable of correctly handling
text outside the Latin alphabet (specifically, it supports the ISO 8859-1
character). Pull requests to improve the situation are welcome.
character set). Pull requests to improve the situation are welcome.
Currently, this renderer has the best compatibility with Mozilla's
PDF.js viewer.
@@ -286,11 +286,31 @@ Rendering and rasterizing options
.. versionadded:: 14.3.0
The ``--continue-on-soft-render-error`` option allows OCRmyPDF to
proceed if a page cannot be rasterized rendered. This is useful if you are
proceed if a page cannot be rasterized/rendered. This is useful if you are
trying to get the best possible OCR from a PDF that is not well-formed,
and you are willing to accept some pages that may not visually match the
input, and that may not OCR well.
Color conversion strategy
=========================
.. versionadded:: 15.0.0
OCRmyPDF uses Ghostscript to convert PDF to PDF/A. In some cases, this
conversion requires color conversion. The default strategy is to convert
using the ``LeaveColorUnchanged`` strategy, which preserves the original
color space wherever possible (some rare color spaces might still be
converted).
Usually document scanners produce PDFs in the sRGB color space, and do
not need to be converted, so the default strategy is appropriate.
Suppose that you have a document that was prepared for professional
printing in a Separation or CMYK color space, and text was converted to
curves. In this case, you may want to use a different color conversion
strategy. The ``--color-conversion-strategy`` option allows you to select a
different strategy, such as ``RGB``.
Return code policy
==================
+3 -3
View File
@@ -420,12 +420,12 @@ to change the PATH.
As of early 2021, users have reported problems with the Microsoft Store version of
Python and OCRmyPDF. These issues affect many other third party Python packages.
Please download Python from Python.org or Chocolatey instead, and do not use the
Please download Python from Python.org or a package manager instead of the
Microsoft Store version.
.. warning::
32-bit Windows might work, but is not supported.
32-bit Windows is not supported.
Windows Subsystem for Linux
---------------------------
@@ -558,7 +558,7 @@ The following versions are required:
- unpaper 6.1
We recommend 64-bit versions of all software. (32-bit versions are not
supported, although they may still work.)
supported, although on Linux, they may still work.)
jbig2enc, pngquant, and unpaper are optional. If missing certain
features are disabled. OCRmyPDF will discover them as soon as they are
+4
View File
@@ -59,5 +59,9 @@ To turn on JBIG2 lossy mode, add the argument ``--jbig2-lossy``.
also required. Also, a JBIG2 encoder must be installed as described in
the previous section.
You can adjust the threshold for JBIG2 compression with the
``--jbig2-threshold``. The default is 0.85, meaning that if two symbols
are 85% similar, they will be compressed together.
*Due to an oversight, ocrmypdf v7.0 and v7.1 used lossy mode by
default.*
+2 -2
View File
@@ -45,8 +45,8 @@ Optimizations that always occurs
================================
OCRmyPDF will automatically replace obsolete or inferior compression schemes
such as RLE or LZW with superior schemes such as Deflate and converting
monochrome images to CCITT G4. Since this is harmless it always occurs and there
such as RLE or LZW with superior schemes such as Deflate, and convert
monochrome images to CCITT G4. Since this is lossless, it always occurs and there
is no way to disable it. Other non-image compressed objects are compressed as
well.
+15 -5
View File
@@ -28,6 +28,13 @@ tagged yet.
.. |OCRmyPDF PyPI| image:: https://img.shields.io/pypi/v/ocrmypdf.svg
v15.0.2
=======
- Added Python 3.12 to test matrix.
- Updated documentation for notes on Python 3.12, 32-bit support and some new
features in v15.
v15.0.1
=======
@@ -42,10 +49,10 @@ v15.0.0
- Dropped support for Python 3.8.
- Dropped support many older dependencies - see ``pyproject.toml`` for details.
Generally speaking, Ubuntu 22.04 is our baseline system.
- Dropped support for 32-bit Linux wheels. You must use a 64-bit operating system,
and 64-bit versions of Python, Tesseract and Ghostscript to use OCRmyPDF. Many of
our dependencies are dropping 32-bit builds (e.g. Pillow), and we are following
suit. (Maintainers may still build 32-bit versions from source.)
- Dropped support for 32-bit Linux wheels. We strongly recommend a 64-bit operating
system, and 64-bit versions of Python, Tesseract and Ghostscript to use OCRmyPDF.
Many of our dependencies are dropping 32-bit builds (e.g. Pillow), and we are
following suit. (Maintainers may still build 32-bit versions from source.)
- Changed to trusted release for PyPI publishing.
- pikepdf memory mapping is enabled again for improved performance, now an issue
with pikepdf has been fixed.
@@ -60,7 +67,10 @@ v15.0.0
each feature occupies. Typically, small areas of high resolution in PDFs are
errors or quirks from the repeated use of assets and high resolution is not
beneficial. :issue:`1010,1104,1004,1079,1010`
- Ghostscript color conversion strategy is now configurable. :issue:`1143`
- Ghostscript color conversion strategy is now configurable using
``--color-conversion-strategy``. :issue:`1143`
- JBIG2 threshold for optimization is now configurable using
``--jbig2-threshold``. :issue:`1133`
v14.4.0
=======