Johannes 'josch' Schauer
0992832ab0
src/img2pdf_test.py: explicitly convert PosixPath to str
4 years ago
Johannes 'josch' Schauer
66fd7cc765
rename test.py -> src/img2pdf_test.py
4 years ago
Johannes 'josch' Schauer
5b7f93bb9a
do not allow negative values in parse_num()
4 years ago
Johannes 'josch' Schauer
663010ca61
src/img2pdf.py: tiny logic error
4 years ago
Johannes 'josch' Schauer
93f65a49c9
add --pdfa argument to attach an icc profile for PDF/A-1b compliant output
4 years ago
James R. Barlow
bca3f802ac
Add support for pikepdf
4 years ago
Johannes 'josch' Schauer
1cd2674a2c
src/tests/__init__.py: recursively convert both PDFs into Python data structures and then compare for equality -- this allows comparing PDFs in which streams are compressed differently
4 years ago
Johannes 'josch' Schauer
f4b296cef3
src/tests/__init__.py: make path OS agnostic (slash vs backslash)
4 years ago
Johannes 'josch' Schauer
5c7ffb09a1
src/tests/__init__.py: add support for engine instead of with_pdfrw
4 years ago
Johannes 'josch' Schauer
e4dece1c9f
replace --without-pdfrw by --engine=internal or --engine=pdfrw
4 years ago
Johannes 'josch' Schauer
997fe8efd8
src/tests/__init__.py: use pikepdf instead of pdfrw
4 years ago
Johannes 'josch' Schauer
60fa588cfb
release version 0.3.6
4 years ago
Johannes 'josch' Schauer
6da2bc3aee
release version 0.3.5
4 years ago
Johannes 'josch' Schauer
082f999ac8
fix with_pdfrw assignment -- thanks Michał Górny
4 years ago
Johannes 'josch' Schauer
ceba6a8223
Rip out remaining python3 support
...
https://www.enricozini.org/blog/2020/python/python-2-is-dead/
4 years ago
Johannes 'josch' Schauer
9449f96345
only run gui if requested with --gui even on windows ( closes : #73 )
4 years ago
Johannes 'josch' Schauer
0bbbc7a31a
pdfrw is now disabled by default if it's not installed ( closes : #74 )
4 years ago
Johannes 'josch' Schauer
fb2916e6b2
release version 0.3.4
4 years ago
Johannes 'josch' Schauer
7a3daec620
add rudimentary GUI
4 years ago
Johannes 'josch' Schauer
1bb21f0c85
put read() into a different try block than open()
4 years ago
Johannes 'josch' Schauer
2b26daeb47
first draft of a tkinter gui
5 years ago
Johannes 'josch' Schauer
ed6187d541
add --crop-border, --bleed-border, --trim-border and --art-border options
5 years ago
Johannes 'josch' Schauer
82706671cc
join strings that got put into the same line by black
5 years ago
Johannes 'josch' Schauer
01022487b7
add AlphaChannelError and ExifOrientationError exceptions
5 years ago
Johannes 'josch' Schauer
07903e9ef1
im was not defined -- don't print it ( closes : #61 )
5 years ago
Johannes 'josch' Schauer
8d7996709a
release version 0.3.3
6 years ago
Johannes 'josch' Schauer
462e1c23d5
src/img2pdf.py: reformat code with black ( https://github.com/ambv/black )
6 years ago
Alexander Schlarb
a282692ac1
Respect EXIF rotation tag of image ( closes : !2 )
...
Read the EXIF information from every input image and use it to correctly set
the page rotation of the resulting PDF document page.
6 years ago
Georg Sauthoff
2faeb2005d
Decompress stream to account for different possible encodings ( closes : #51 )
...
Recompressing the image stream makes the comparison robust against output
preserving changes in the zlib compress output bitstream
(e.g. between different zlib implementations/versions/releases).
Without this, some img2pdf 0.3.2 tests fail on Fedora 29/aarch64.
See also:
josch/img2pdf#51
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/R7GD4L5Z6HELCDAL2RDESWR2F3ZXHWVX/
6 years ago
Johannes 'josch' Schauer
0639dbd47c
src/tests/__init__.py: fix CommandLineTests on python3
6 years ago
Johannes 'josch' Schauer
78183c642b
allow wrapping img2pdf main() in contextlib.redirect_stdout()
6 years ago
Johannes 'josch' Schauer
b39e755424
add legal and tabloid paper formats ( closes : #52 )
6 years ago
josch
4cebd9f15d
Merge branch 'agroszer-py2' into 'master'
...
fixing a slew of python 2 issues
See merge request !4
6 years ago
Johannes 'josch' Schauer
68ca35f39e
release version 0.3.2
6 years ago
Johannes 'josch' Schauer
42f8ac54a8
Allow CCITT Group4 input without rows-per-strip ( closes : #48 )
6 years ago
Johannes 'josch' Schauer
50a3109c43
src/img2pdf.py: do not overwrite imgformat variable in loop as this will then affect later loop iterations and we need to retain its original value
6 years ago
Johannes 'josch' Schauer
03bdc33053
src/img2pdf.py: be more explicit when embedding group4 from TIFF
6 years ago
Johannes 'josch' Schauer
b758b54ce8
src/img2pdf.py: Disallow TIFF input with more than 8 bits per sample because PIL will silently convert it to 8 bits per sample
6 years ago
Johannes 'josch' Schauer
a2b969640a
src/img2pdf.py: assign the default dpi to tiff images where PIL returned its default of (1,1)
6 years ago
Johannes 'josch' Schauer
8961c78dbf
src/img2pdf.py: add commented-out debugging option for PIL's TiffImagePlugin
6 years ago
Johannes 'josch' Schauer
6c44d8cea6
src/img2pdf.py: add more rationale behind palette encoding
6 years ago
Johannes 'josch' Schauer
c0ed810036
src/img2pdf.py: work around PIL not reporting a colorspace for 16bit grayscale PNGs
6 years ago
Johannes 'josch' Schauer
ccca845606
src/img2pdf.py: Read bits per sample from PNG to support PNG images with 1, 2, 4 or 16 bits per sample
6 years ago
Johannes 'josch' Schauer
53685934f9
src/img2pdf.py: also reject palette images with transparency
6 years ago
Johannes 'josch' Schauer
ba5a9a1dfc
Allow multipage CCITT group 4 TIFF images
6 years ago
Johannes 'josch' Schauer
a628ed22f9
Add more debugging output
6 years ago
Johannes 'josch' Schauer
fbcaca5e6b
big endian encoded TIFF files may have FillOrder set to lsb-to-msb and must have the bits of each byte reversed
6 years ago
Johannes 'josch' Schauer
a9f4c9b665
release version 0.3.1
6 years ago
Johannes 'josch' Schauer
198c98a5f9
make pep8 compliant
6 years ago
Johannes 'josch' Schauer
f5d8d86dff
Also do not re-encode CCITT Group 4 encoded TIFF images
...
Add additional property of input images: inverted
closes : #47
6 years ago
Johannes 'josch' Schauer
b3fb2de5f6
src/img2pdf.py: fix spelling in --help output
6 years ago
Johannes 'josch' Schauer
2ad0c036b2
src/tests/input/mono.tif: set dpi to 72
6 years ago
Johannes 'josch' Schauer
1aa71e3746
release version 0.3.0
6 years ago
Johannes 'josch' Schauer
75c43de09d
Create a new PIL image before saving as TIFF to prevent libtiff errors
...
closes : #46
6 years ago
Johannes 'josch' Schauer
eec1a25a92
add test case for ccittfaxdecode
6 years ago
Johannes 'josch' Schauer
7de174f4b5
CCITTFaxDecode filter must be in an array
6 years ago
Johannes 'josch' Schauer
48d5b4d7af
CCITTGroup4 must return empty palette
6 years ago
Johannes 'josch' Schauer
d931f02709
src/tests/__init__.py: handle PNG input images properly
6 years ago
Johannes 'josch' Schauer
b99fae1380
src/tests/__init__.py: don't test for color space now that we support palette PNGs
6 years ago
Johannes 'josch' Schauer
ac9ba1d0f6
handle monochrome png properly
6 years ago
Johannes 'josch' Schauer
eaf9de23c9
Filter must not be array for PNG output, so never make it an array
6 years ago
Johannes 'josch' Schauer
2a33ff275d
adapt test output to new handling of png input
6 years ago
Johannes 'josch' Schauer
ebd8d911bb
add test grayscale input png src/tests/input/gray.png
6 years ago
Johannes 'josch' Schauer
e7755f0a87
src/tests/input/normal.png: remove alpha channel
6 years ago
Johannes 'josch' Schauer
47a1e0c81e
src/img2pdf.py: do not use PNG encoding for CMYK input
6 years ago
Johannes 'josch' Schauer
3142824bab
src/tests/__init__.py: do not test animation.gif with pdfrw because it doesn't support hexadecimal palette data
6 years ago
Johannes 'josch' Schauer
84ce9bbd9c
src/img2pdf.py: do not allow transparency
6 years ago
Johannes 'josch' Schauer
90293204b2
src/img2pdf.py: use logging.warning because warn() is deprecated
6 years ago
Johannes 'josch' Schauer
ade5768d72
src/img2pdf.py: expand error message about alpha channel
6 years ago
Johannes 'josch' Schauer
920506b867
Reflect the fact that we now use PNG compression in the --help output
6 years ago
Johannes 'josch' Schauer
e78dd80451
Add option --pillow-limit-break to force Pillow to accept large input images
6 years ago
Johannes 'josch' Schauer
d9a6c9db03
Interlaced PNGs cannot be directly embedded but have to be re-encoded
6 years ago
Johannes 'josch' Schauer
7244d2c6ed
Disallow input images with alpha channel as it cannot be preserved in the PDF and would thus make img2pdf not lossless
6 years ago
Johannes 'josch' Schauer
1d9a25dfd2
Proof of concept of using PDF DecodeParms for storing pixel data with PNG compression
6 years ago
Johannes 'josch' Schauer
9836b976d3
src/img2pdf.py: handle Pillow returning a DPI of zero ( closes : #36 )
7 years ago
James R. Barlow
a8269391e9
Implement /UserUnit scaling to support oversized PDFs
...
The original PDF specification supported a maximum of 200x200" pages or
14400 PDF units. In PDF 1.6 rather than remove this limitation, Adobe
added the /UserUnit field for pages, which allows one to specify the
scaling that should be applied for user-facing numbers, while keeping
the internal limit of 14400 units.
Many real-world designs are larger than 200" in one direction. One
example is tractor feed or rolled paper which may be easier to scan in
one continuous run rather than segment into pages.
/UserUnit is independent of the pixel size and resolution of the image.
/UserUnit can also indicate very small page sizes but this is not
implemented here.
7 years ago
James R. Barlow
b54617de19
Fix rawdata[:12] bytes/str comparison
7 years ago
Adam Groszer
0e76a5bd97
fixing a slew of python 2 issues
7 years ago
Johannes 'josch' Schauer
725462462b
release version 0.2.4
7 years ago
Stephan Richter
f626d7860f
Produce port that is fully API compatible.
7 years ago
Stephan Richter
06560cd0d4
It is easy enough to create a separate class for the Py2 version.
7 years ago
Stephan Richter
719928f5f5
Declare file encoding, since it contains some non-ascii chars.
7 years ago
Stephan Richter
b25098c3f0
Python 2 does not automatically convert integers to floats, so we have to be a bit more explicit.
7 years ago
Stephan Richter
18d637ea34
Make sure we are using the correct IO class in Python 2.
7 years ago
Johannes 'josch' Schauer
16993964ce
restore pep8 compliance
8 years ago
Johannes 'josch' Schauer
7df29a9acc
Allow to call get_layout_fun with less parameters by specifying defaults
8 years ago
Johannes 'josch' Schauer
60b2e2206a
Add multiframe gif (animated gif) test case
8 years ago
Johannes 'josch' Schauer
8476e333cd
src/tests/__init__.py: add support for multiframe gif tests
8 years ago
Johannes 'josch' Schauer
e20fe4944c
release version 0.2.3
8 years ago
Johannes 'josch' Schauer
1513ab3421
release version 0.2.2
8 years ago
Johannes 'josch' Schauer
4040e907a3
Make --help output more friendly to help2man
8 years ago
Johannes 'josch' Schauer
ef36e86a46
Fix default of --producer argument in --help output to include version
8 years ago
Johannes 'josch' Schauer
e4b6854eb5
src/tests/output/mono.png.pdf: remove the /Producer field
8 years ago
Johannes 'josch' Schauer
fbeecd2301
Allow to not add the /Producer field to the metadata
8 years ago
Johannes 'josch' Schauer
f94684c8ea
If input to convert() doesn't have a write() member, then it must be str or bytes type
8 years ago
Johannes 'josch' Schauer
7c90b2c451
restore backwards compatibility and allow passing images as a list
8 years ago
Johannes 'josch' Schauer
962d4dbdfb
Make pep8 compliant again
8 years ago
Johannes 'josch' Schauer
c2f43a579e
src/tests/output/mono.png.pdf: remove timestamps
8 years ago
James R. Barlow
eedf73e73e
Add test cases for CCITT G4
8 years ago
James R. Barlow
c27505486e
Break out TIFF G4 transcoding into its own function
8 years ago