ocrd-page-to-alto
Convert PAGE (v. 2019) to ALTO (v. 2.0 - 4.2)
Introduction
This software converts PAGE XML files to the ALTO XML OCR result format. It enables using PAGE XML generating software in a context where ALTO is needed to display the results, i.e. in libraries.
Installation
In a Python virtualenv:
make install # or pip install .
# or to install from PyPI
pip install ocrd_page_to_alto
Usage
To convert the PAGE XML document example.xml to ALTO:
page-to-alto example.xml > example.alto.xml
You can get an exhaustive list of page-to-alto's many options with --help:
CLI
Usage: page-to-alto [OPTIONS] FILENAME
Convert PAGE to ALTO
Options:
-l, --log-level [OFF|ERROR|WARN|INFO|DEBUG|TRACE]
Log level
--alto-version [4.2|4.1|4.0|3.1|3.0|2.1|2.0]
Choose version of ALTO-XML schema to produce
(older versions may not preserve all
features)
--check-words / --no-check-words
Check whether PAGE-XML contains any Words
and fail if not
--check-border / --no-check-border
Check whether PAGE-XML contains Border or
PrintSpace
--skip-empty-lines / --no-skip-empty-lines
Whether to omit or keep empty lines in PAGE-
XML
--trailing-dash-to-hyp / --no-trailing-dash-to-hyp
Whether to add a element if the last
word in a line ends in "-"
--dummy-textline / --no-dummy-textline
Whether to create a TextLine for regions
that have TextEquiv/Unicode but no TextLine
--dummy-word / --no-dummy-word Whether to create a Word for TextLine that
have TextEquiv/Unicode but no Word
--textequiv-index INTEGER If multiple textequiv, use the n-th
TextEquiv by @index
--textequiv-fallback-strategy [raise|first|last]
What to do if nth textequiv isn't available.
'raise' will lead to a runtime error,
'first' will use the first TextEquiv, 'last'
will use the last TextEquiv on the element
-O, --output-file FILE Output filename (or "-" for standard output,
the default)
-h, --help Show this message and exit.
To process an OCR-D workspace, use ocrd_fileformat, which uses page-to-alto by default:
ocrd-fileformat-transform -I OCRD-OCR-OUTPUT-PAGE -O OCRD-OCR-OUTPUT-ALTO \
-P script-args "--dummy-word --no-check-words --no-check-border"
TODO
- AlternativeImage
- unmappable regions
- handle Border
- TextStyle
- ParagraphStyle
- table regions
- recursive regions for *Region
- Set
PAGECLASSfrompc:Page/@type#4 - Layers / z-level via
StructureTag? #4 -
<SP/> -
<HYP/> - rotation
- reading order
- input PAGE-XML not having words #5
- multiple pc:TextEquivs
- language
-
scriptno equivalent in ALTO :( -
kerningno equivalent in ALTO :( -
underlineStyleno equivalent in ALTO :( -
bgColourno equivalent in ALTO :( -
bgColourRgbno equivalent in ALTO :( -
reverseVideono equivalent in ALTO :( -
xHeightno equivalent in ALTO :( -
letterSpacedno equivalent in ALTO :( - ProcessingStep
- differentiate/select ALTO versions
Metadata
Release files for ocrd-page-to-alto 2.2.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ocrd_page_to_alto-2.2.12.tar.gz | 20.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ocrd_page_to_alto-2.2.12-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.4 kB
Release files / ocrd_page_to_alto-2.2.12.tar.gz
| Download URL | ocrd_page_to_alto-2.2.12.tar.gz |
|---|---|
| Size | 20.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b2702274c107c00e4f930d76413cd7e37ca6fb52ea716909c66ba901b1e8e29c
|
|
BLAKE2b-256 checksum How to use checksums |
0e4a4a49d8fe00f6ecd6bc6af3a08da0e470bd0b81a894bd3d16c12ce30dcc04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 29, 2026.
Transparency logRelease files / ocrd_page_to_alto-2.2.12-py3-none-any.whl
| Download URL | ocrd_page_to_alto-2.2.12-py3-none-any.whl |
|---|---|
| Size | 19.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
42b599aa90b7e2ae157d436da647dcf59d7bcfa8d04158039e0a7d742fd11142
|
|
BLAKE2b-256 checksum How to use checksums |
68444871d36cdc1cc471a1bad89be7a895d00afd514341d26cd2883f1bc63bb7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 29, 2026.
Transparency log