2b26daeb47
first draft of a tkinter gui
2019-08-25 06:03:48 +02:00
ed6187d541
add --crop-border, --bleed-border, --trim-border and --art-border options
2019-04-02 07:37:03 +02:00
82706671cc
join strings that got put into the same line by black
2019-03-29 00:34:31 +01:00
01022487b7
add AlphaChannelError and ExifOrientationError exceptions
2019-03-28 10:26:46 +01:00
07903e9ef1
im was not defined -- don't print it ( closes : #61 )
2019-03-28 09:56:01 +01:00
8d7996709a
release version 0.3.3
2019-01-07 10:44:24 +01:00
462e1c23d5
src/img2pdf.py: reformat code with black ( https://github.com/ambv/black )
2018-12-25 12:30:10 +01:00
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.
2018-12-25 01:46:09 +01:00
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:
#51
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/R7GD4L5Z6HELCDAL2RDESWR2F3ZXHWVX/
2018-12-24 18:13:49 +01:00
0639dbd47c
src/tests/__init__.py: fix CommandLineTests on python3
2018-12-24 18:04:40 +01:00
78183c642b
allow wrapping img2pdf main() in contextlib.redirect_stdout()
2018-12-24 18:03:52 +01:00
b39e755424
add legal and tabloid paper formats ( closes : #52 )
2018-12-24 18:02:41 +01:00
josch
4cebd9f15d
Merge branch 'agroszer-py2' into 'master'
...
fixing a slew of python 2 issues
See merge request !4
2018-12-11 17:16:50 +00:00
68ca35f39e
release version 0.3.2
2018-11-20 16:37:23 +01:00
42f8ac54a8
Allow CCITT Group4 input without rows-per-strip ( closes : #48 )
2018-11-20 16:30:14 +01:00
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
2018-08-20 10:27:27 +02:00
03bdc33053
src/img2pdf.py: be more explicit when embedding group4 from TIFF
2018-08-20 10:26:39 +02:00
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
2018-08-20 10:25:39 +02:00
a2b969640a
src/img2pdf.py: assign the default dpi to tiff images where PIL returned its default of (1,1)
2018-08-20 10:24:31 +02:00
8961c78dbf
src/img2pdf.py: add commented-out debugging option for PIL's TiffImagePlugin
2018-08-20 10:23:23 +02:00
6c44d8cea6
src/img2pdf.py: add more rationale behind palette encoding
2018-08-20 10:21:18 +02:00
c0ed810036
src/img2pdf.py: work around PIL not reporting a colorspace for 16bit grayscale PNGs
2018-08-17 12:57:46 +02:00
ccca845606
src/img2pdf.py: Read bits per sample from PNG to support PNG images with 1, 2, 4 or 16 bits per sample
2018-08-17 12:55:55 +02:00
53685934f9
src/img2pdf.py: also reject palette images with transparency
2018-08-17 07:27:15 +02:00
ba5a9a1dfc
Allow multipage CCITT group 4 TIFF images
2018-08-16 00:23:18 +02:00
a628ed22f9
Add more debugging output
2018-08-16 00:11:07 +02:00
fbcaca5e6b
big endian encoded TIFF files may have FillOrder set to lsb-to-msb and must have the bits of each byte reversed
2018-08-16 00:10:46 +02:00
a9f4c9b665
release version 0.3.1
2018-08-04 15:44:45 +02:00
198c98a5f9
make pep8 compliant
2018-08-01 22:28:44 +02:00
f5d8d86dff
Also do not re-encode CCITT Group 4 encoded TIFF images
...
Add additional property of input images: inverted
closes : #47
2018-08-01 22:12:40 +02:00
b3fb2de5f6
src/img2pdf.py: fix spelling in --help output
2018-07-19 12:05:27 +02:00
2ad0c036b2
src/tests/input/mono.tif: set dpi to 72
2018-07-18 14:08:04 +02:00
1aa71e3746
release version 0.3.0
2018-07-18 11:30:43 +02:00
75c43de09d
Create a new PIL image before saving as TIFF to prevent libtiff errors
...
closes : #46
2018-07-18 01:58:03 +02:00
eec1a25a92
add test case for ccittfaxdecode
2018-07-18 01:55:48 +02:00
7de174f4b5
CCITTFaxDecode filter must be in an array
2018-07-18 01:55:48 +02:00
48d5b4d7af
CCITTGroup4 must return empty palette
2018-07-18 00:57:43 +02:00
d931f02709
src/tests/__init__.py: handle PNG input images properly
2018-07-18 00:05:15 +02:00
b99fae1380
src/tests/__init__.py: don't test for color space now that we support palette PNGs
2018-07-18 00:04:30 +02:00
ac9ba1d0f6
handle monochrome png properly
2018-07-18 00:03:31 +02:00
eaf9de23c9
Filter must not be array for PNG output, so never make it an array
2018-07-17 23:59:55 +02:00
2a33ff275d
adapt test output to new handling of png input
2018-07-17 23:56:01 +02:00
ebd8d911bb
add test grayscale input png src/tests/input/gray.png
2018-07-17 16:57:44 +02:00
e7755f0a87
src/tests/input/normal.png: remove alpha channel
2018-07-17 16:57:44 +02:00
47a1e0c81e
src/img2pdf.py: do not use PNG encoding for CMYK input
2018-07-17 16:57:44 +02:00
3142824bab
src/tests/__init__.py: do not test animation.gif with pdfrw because it doesn't support hexadecimal palette data
2018-07-17 16:57:44 +02:00
84ce9bbd9c
src/img2pdf.py: do not allow transparency
2018-07-17 16:57:44 +02:00
90293204b2
src/img2pdf.py: use logging.warning because warn() is deprecated
2018-07-17 16:07:01 +02:00
ade5768d72
src/img2pdf.py: expand error message about alpha channel
2018-03-27 10:39:24 +02:00
920506b867
Reflect the fact that we now use PNG compression in the --help output
2018-03-24 19:53:41 +01:00
e78dd80451
Add option --pillow-limit-break to force Pillow to accept large input images
2018-03-24 19:47:03 +01:00
d9a6c9db03
Interlaced PNGs cannot be directly embedded but have to be re-encoded
2018-03-24 18:59:02 +01:00
7244d2c6ed
Disallow input images with alpha channel as it cannot be preserved in the PDF and would thus make img2pdf not lossless
2018-03-24 18:55:14 +01:00
1d9a25dfd2
Proof of concept of using PDF DecodeParms for storing pixel data with PNG compression
2018-03-15 11:31:36 +01:00
9836b976d3
src/img2pdf.py: handle Pillow returning a DPI of zero ( closes : #36 )
2017-10-18 10:34:59 +02:00
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.
2017-08-20 21:19:23 +09:00
James R. Barlow
b54617de19
Fix rawdata[:12] bytes/str comparison
2017-08-20 21:11:32 +09:00
Adam Groszer
0e76a5bd97
fixing a slew of python 2 issues
2017-08-07 11:21:42 +02:00
725462462b
release version 0.2.4
2017-05-23 17:53:19 +02:00
Stephan Richter
f626d7860f
Produce port that is fully API compatible.
2017-05-23 17:51:17 +02:00
Stephan Richter
06560cd0d4
It is easy enough to create a separate class for the Py2 version.
2017-05-22 19:34:39 +02:00
Stephan Richter
719928f5f5
Declare file encoding, since it contains some non-ascii chars.
2017-05-22 19:34:39 +02:00
Stephan Richter
b25098c3f0
Python 2 does not automatically convert integers to floats, so we have to be a bit more explicit.
2017-05-22 19:34:34 +02:00
Stephan Richter
18d637ea34
Make sure we are using the correct IO class in Python 2.
2017-05-22 12:31:52 -04:00
16993964ce
restore pep8 compliance
2017-01-20 09:19:30 +01:00
7df29a9acc
Allow to call get_layout_fun with less parameters by specifying defaults
2017-01-20 09:15:02 +01:00
60b2e2206a
Add multiframe gif (animated gif) test case
2017-01-20 08:48:16 +01:00
8476e333cd
src/tests/__init__.py: add support for multiframe gif tests
2017-01-20 08:47:58 +01:00
e20fe4944c
release version 0.2.3
2017-01-20 05:47:06 +01:00
1513ab3421
release version 0.2.2
2017-01-20 05:23:40 +01:00
4040e907a3
Make --help output more friendly to help2man
2017-01-20 05:17:23 +01:00
ef36e86a46
Fix default of --producer argument in --help output to include version
2017-01-20 04:46:26 +01:00
e4b6854eb5
src/tests/output/mono.png.pdf: remove the /Producer field
2017-01-20 04:45:30 +01:00
fbeecd2301
Allow to not add the /Producer field to the metadata
2017-01-20 04:45:14 +01:00
f94684c8ea
If input to convert() doesn't have a write() member, then it must be str or bytes type
2017-01-19 20:32:46 +01:00
7c90b2c451
restore backwards compatibility and allow passing images as a list
2017-01-19 20:32:16 +01:00
962d4dbdfb
Make pep8 compliant again
2017-01-19 11:22:08 +01:00
c2f43a579e
src/tests/output/mono.png.pdf: remove timestamps
2017-01-19 09:02:16 +01:00
James R. Barlow
eedf73e73e
Add test cases for CCITT G4
2016-07-22 07:09:35 +02:00
James R. Barlow
c27505486e
Break out TIFF G4 transcoding into its own function
2016-07-22 07:09:24 +02:00
James R. Barlow
95f84f97bc
Implement automatic monochrome CCITT Group4 encoding via Pillow/libtiff
2016-07-22 07:09:07 +02:00
Jakub Wilk
0fe30a62d9
fix typos
2016-06-10 17:02:38 +01:00
e05d2992e0
src/tests/__init__.py: adapt testcases for last commit
2016-05-26 18:11:42 +02:00
d78b2cbdbc
Fix bug where horizontal and vertical borders where switched when page size was also given. Thanks Erik./a.out| sox -c 1 -e unsigned-integer -r 8000 -t u8 - -d --buffer 32 Closes #30
2016-05-26 08:19:34 +02:00
Andrey Gursky
c704e657cc
update version according to release
2016-05-11 21:39:21 +02:00
c158585618
only use jp2 to parse jpeg2000 if PIL doesn't support jpeg2000
2016-02-17 20:31:46 +01:00
e5b0ffee6c
read horizontal and vertical dpi from jpeg2000 files
2016-02-17 20:30:58 +01:00
ef9eac7326
instead of storing a limited list of supported colorspaces and imageformats, store the items requiring special treatment but do not abort if a value other than the listed ones is supported by PIL
2016-02-17 18:47:02 +01:00
00c73a6691
make the separating x optional when specifying the width without the height
2016-02-17 18:16:17 +01:00
86552a78dc
fix --fit=exact if one value is missing
2016-02-17 18:11:11 +01:00
ad528d4feb
restore feature that it is allowed to only specify width or height
2016-02-17 17:51:57 +01:00
3e8894c7da
change MonochromeJpegError to JpegColorspaceError and add check for jpegs with alpha channel
2016-02-17 00:37:51 +01:00
d9b2550ceb
support for palette images for better GIF support
2016-02-17 00:37:51 +01:00
edba669000
support from multi-frame images like multipage TIFF and animated GIF
2016-02-17 00:37:46 +01:00
dbed55655a
fix JPEG2000 handling after move to Python3
2016-02-17 00:28:19 +01:00
27015c1a6e
fix testsuite after exception renaming
2016-02-17 00:26:45 +01:00
c6d69b231b
when verbose logging is enabled, print a traceback of possibly raised exceptions
2016-02-14 18:55:27 +01:00
b6e969d267
input images can now be file like objects, binary strings with the image content or filenames
2016-02-14 18:54:59 +01:00
cc59fbc3e4
raise exceptions instead of doing an exit()
2016-02-13 09:31:33 +01:00
James R. Barlow
900346d430
src/img2pdf.py: add get_fixed_dpi_layout_fun
2016-02-13 09:01:08 +01:00