PDF anonymizer/synthesizer for Cradl
Project description
Image/PDF synthesizer for Cradl
Disclaimer
This code does not guarantee that images/PDFs will be successfully synthesized. Use at your own risk.
Installation
$ pip install lucidtech-synthetic
Make sure to have the following software installed on your system before using the CLI:
- ghostscript
Basic Usage
Docker
We recommend disabling networking and setting /path/to/src_dir to read-only as shown below:
docker run --network none -v /path/to/src_dir:/root/src_dir:ro -v /path/to/dst_dir:/root/dst_dir -it lucidtechai/synthetic pdf /root/src_dir /root/dst_dir
docker run --network none -v /path/to/src_dir:/root/src_dir:ro -v /path/to/dst_dir:/root/dst_dir -it lucidtechai/synthetic image /root/src_dir /root/dst_dir /usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf 6-36
CLI
synthetic pdf /path/to/src_dir /path/to/dst_dir
synthetic image /path/to/src_dir /path/to/dst_dir /usr/share/fonts/ubuntu/Ubuntu-B.ttf 6-36
/path/to/src_dir is the input directory and should contain your image/PDFs and JSON ground truths
/path/to/dst_dir is the output directory where synthesized image/PDFs and JSON ground truths will be written to
Here is an example of the directory layout for /path/to/src_dir:
/path/to/src_dir
├── a.pdf|jpeg
├── a.json
├── b.pdf|jpeg
└── b.json
The output directory will follow the same layout but with modified images/PDFs and JSON ground truths:
/path/to/dst_dir
├── a.pdf|jpeg
├── a.json
├── b.pdf|jpeg
└── b.json
Using a custom Synthesizer
The following examples shown are for custom PDF synthesizers, but it works similarly for image synthesizers
CLI
synthetic pdf /path/to/src_dir /path/to/dst_dir --synthesizer-class path.to.python.Class
Make sure that parent directory of path.to.python.Class is in your PYTHONPATH
Example using one of the example Synthesizers in examples directory
synthetic pdf /path/to/src_dir /path/to/dst_dir --synthesizer-class examples.exclude-words.synthesizer.ExcludeWordsSynthesizer
Docker
docker run --network none -v /path/to/synthesizer:/root/synthesizer -v /path/to/src_dir:/root/src_dir:ro -v /path/to/dst_dir:/root/dst_dir -it lucidtechai/synthetic pdf /root/src_dir /root/dst_dir --synthesizer-class mypythonfile.ExcludeWordsSynthesizer
Note that the python module must be mounted into the docker container to /root/synthesizer for it to work. In the above example we assume a directory structure of your custom synthesizer to be like below.
/path/to/synthesizer
└── mypythonfile.py
Example using one of the example Synthesizers in examples directory. The examples directory should already exist in the image so that we don't need to mount anything additional.
docker run --network none -v /path/to/src_dir:/root/src_dir:ro -v /path/to/dst_dir:/root/dst_dir -it lucidtechai/synthetic pdf /root/src_dir /root/dst_dir --synthesizer-class examples.exclude-words.synthesizer.ExcludeWordsSynthesizer
Help
All methods support the --help flag which will provide information on the purpose of the method,
and what arguments could be added.
$ synthetic --help
Known Issues
Image Synthesizer
- Synthesized text does not follow the rotation of the document in the image if document is rotated
- Bounding boxes needed in ground truth
PDF Synthesizer
- Does not synthesize images inside PDF
- Replaced strings are sometimes not hexadecimal encoded even when expected to be
- Text appearing as single characters with custom spacing in PDF will often yield poor results
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lucidtech-synthetic-0.6.1.tar.gz.
File metadata
- Download URL: lucidtech-synthetic-0.6.1.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
965dd48715b49ecf3cda1ad6e7c242167024c5eef34ffe79360d6eaee7c1d542
|
|
| MD5 |
f201ba28d277699e3f6802b721f29cb8
|
|
| BLAKE2b-256 |
68d35af82eb666cd6ebb57d00e7e477115d83f7be749979b2f71f42876d5e0eb
|
File details
Details for the file lucidtech_synthetic-0.6.1-py2.py3-none-any.whl.
File metadata
- Download URL: lucidtech_synthetic-0.6.1-py2.py3-none-any.whl
- Upload date:
- Size: 24.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
416de5702fbf611312eced4d6db413b025cab43b16493a7565e64ae0841c9215
|
|
| MD5 |
fd913ce1f51f6e68ee9527712a7da529
|
|
| BLAKE2b-256 |
695c074776ed241536540c4281930ea43a2e02918136086598bc93c27c27f1fd
|