Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13917c051c | ||
|
|
8182fe9c92 | ||
|
|
1950acfbda |
@@ -152,6 +152,16 @@ hooks. As such, you cannot "chain" a series of plugin filters together in this
|
||||
way. Instead, a single hook implementation should be responsible for any such
|
||||
chaining operations.
|
||||
|
||||
Examples
|
||||
========
|
||||
|
||||
* OCRmyPDF's test suite contains several plugins that are used to simulate certain
|
||||
test conditions.
|
||||
* `ocrmypdf-papermerge <https://github.com/papermerge/OCRmyPDF_papermerge>`_ is
|
||||
a production plugin that integrates OCRmyPDF and the Papermerge document
|
||||
management system.
|
||||
|
||||
|
||||
Custom command line arguments
|
||||
-----------------------------
|
||||
|
||||
|
||||
@@ -12,6 +12,13 @@ may be unreliable. Use the API to depend on precise behavior.
|
||||
The public API may be useful in scripts that launch OCRmyPDF processes or that
|
||||
wish to use some of its features for working with PDFs..
|
||||
|
||||
v13.4.1
|
||||
=======
|
||||
|
||||
- Temporarily make threads rather than processes the default executor worker, due
|
||||
to a persistent deadlock issue when processes are used. Add a new command line
|
||||
argument ``--no-use-threads`` to disable this.
|
||||
|
||||
v13.4.0
|
||||
=======
|
||||
|
||||
|
||||
+7
-1
@@ -228,7 +228,13 @@ Online documentation is located at:
|
||||
help=argparse.SUPPRESS,
|
||||
)
|
||||
jobcontrol.add_argument(
|
||||
'--use-threads', action='store_true', help=argparse.SUPPRESS
|
||||
'--use-threads', action='store_true', default=True, help=argparse.SUPPRESS
|
||||
)
|
||||
jobcontrol.add_argument(
|
||||
'--no-use-threads',
|
||||
action='store_false',
|
||||
dest='use_threads',
|
||||
help=argparse.SUPPRESS,
|
||||
)
|
||||
|
||||
metadata = parser.add_argument_group(
|
||||
|
||||
@@ -132,6 +132,7 @@ def get_progressbar_class():
|
||||
Here is how OCRmyPDF will use the progress bar:
|
||||
|
||||
Example:
|
||||
|
||||
pbar_class = pm.hook.get_progressbar_class()
|
||||
with pbar_class(**tqdm_kwargs) as pbar:
|
||||
...
|
||||
@@ -235,9 +236,9 @@ def filter_page_image(page: 'PageContext', image_filename: Path) -> Path:
|
||||
``image_filename``. The hook may overwrite ``image_filename`` with a new file.
|
||||
|
||||
The output image should preserve the same physical unit dimensions, that is
|
||||
(width * dpi_x, height * dpi_y). That is, if the image is resized, the DPI
|
||||
``(width * dpi_x, height * dpi_y)``. That is, if the image is resized, the DPI
|
||||
must be adjusted by the reciprocal. If this is not preserved, the PDF page
|
||||
will be resized and the OCR layer misaligned. OCRmyPDF does not nothing
|
||||
will be resized and the OCR layer misaligned. OCRmyPDF does nothing
|
||||
to enforce these constraints; it is up to the plugin to do sensible things.
|
||||
|
||||
OCRmyPDF will create the PDF page based on the image format used (unless the
|
||||
@@ -399,8 +400,7 @@ def get_ocr_engine() -> OcrEngine:
|
||||
"""Returns an OcrEngine to use for processing this file.
|
||||
|
||||
The OcrEngine may be instantiated multiple times, by both the main process
|
||||
and child process. As such, it must be obtain store any state in ``options``
|
||||
or some common location.
|
||||
and child process.
|
||||
|
||||
Note:
|
||||
This is a :ref:`firstresult hook<firstresult>`.
|
||||
|
||||
@@ -13,6 +13,7 @@ from ocrmypdf import ExitCode
|
||||
from .conftest import run_ocrmypdf_api
|
||||
|
||||
|
||||
@pytest.mark.skipif(True, reason="--use-threads is currently default")
|
||||
@pytest.mark.skipif(os.name == 'nt', reason="Windows doesn't have SIGKILL")
|
||||
def test_simulate_oom_killer(resources, no_outpdf):
|
||||
exitcode = run_ocrmypdf_api(
|
||||
|
||||
Reference in New Issue
Block a user