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
James R. Barlow
95f84f97bc
Implement automatic monochrome CCITT Group4 encoding via Pillow/libtiff
8 years ago
Jakub Wilk
0fe30a62d9
fix typos
8 years ago
Johannes 'josch' Schauer
e05d2992e0
src/tests/__init__.py: adapt testcases for last commit
8 years ago
Johannes 'josch' Schauer
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
8 years ago
Andrey Gursky
c704e657cc
update version according to release
8 years ago
Johannes 'josch' Schauer
c158585618
only use jp2 to parse jpeg2000 if PIL doesn't support jpeg2000
8 years ago
Johannes 'josch' Schauer
e5b0ffee6c
read horizontal and vertical dpi from jpeg2000 files
8 years ago
Johannes 'josch' Schauer
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
8 years ago
Johannes 'josch' Schauer
00c73a6691
make the separating x optional when specifying the width without the height
8 years ago
Johannes 'josch' Schauer
86552a78dc
fix --fit=exact if one value is missing
8 years ago
Johannes 'josch' Schauer
ad528d4feb
restore feature that it is allowed to only specify width or height
8 years ago
Johannes 'josch' Schauer
3e8894c7da
change MonochromeJpegError to JpegColorspaceError and add check for jpegs with alpha channel
8 years ago
Johannes 'josch' Schauer
d9b2550ceb
support for palette images for better GIF support
8 years ago
Johannes 'josch' Schauer
edba669000
support from multi-frame images like multipage TIFF and animated GIF
8 years ago
Johannes 'josch' Schauer
dbed55655a
fix JPEG2000 handling after move to Python3
8 years ago
Johannes 'josch' Schauer
27015c1a6e
fix testsuite after exception renaming
8 years ago
Johannes 'josch' Schauer
c6d69b231b
when verbose logging is enabled, print a traceback of possibly raised exceptions
8 years ago
Johannes 'josch' Schauer
b6e969d267
input images can now be file like objects, binary strings with the image content or filenames
8 years ago
Johannes 'josch' Schauer
cc59fbc3e4
raise exceptions instead of doing an exit()
8 years ago
James R. Barlow
900346d430
src/img2pdf.py: add get_fixed_dpi_layout_fun
8 years ago
James R. Barlow
a7dba2894f
Put version string in /Producer too
8 years ago
James R. Barlow
11affb6264
allow writing the pdf to a file-like object instead of storing everything in memory
8 years ago
Johannes 'josch' Schauer
31a2ce231f
cap the maximum page size at 200 dpi which is the maximum supported by PDF
9 years ago
Johannes 'josch' Schauer
7160f1628d
fix parsing of dpi and % units
9 years ago
Johannes 'josch' Schauer
917c173bfd
set img2pdf as default /producer value
9 years ago
josch
251238b410
release version 0.2.0 - big rewrite and lots of new features
...
- now Python3 only
- pep8 compliant code
- update my email to josch@mister-muffin.de
- move from github to gitlab.mister-muffin.de/josch/img2pdf
- use logging module
- add extensive test suite
- ability to read from standard input
- pdf writer:
- make more compatible with the interface of pdfrw module
- print floats which equal to their integer conversion as integer
- do not print trailing zeroes for floating point numbers
- print more linebreaks
- add binary string at beginning of PDF to indicate that the PDF
contains binary data
- handle datetime and unicode strings by using utf-16-be encoding
- new options (see --help for more details):
- --without-pdfrw
- --imgsize
- --border
- --fit
- --auto-orient
- --viewer-panes
- --viewer-initial-page
- --viewer-magnification
- --viewer-page-layout
- --viewer-fit-window
- --viewer-center-window
- --viewer-fullscreen
- remove short command line options for metadata arguments
9 years ago
josch
33ee44e50d
restore python3 compatibility
9 years ago
josch
18a41fc8df
avoid catch-all except
9 years ago
josch
4968d58621
fix typo
9 years ago
josch
f3674907d6
store times in UTC and understand YYYY-MM-DD, YYYY-MM-DDTHH:MM, YYYY-MM-DDTHH:MM:SS and everything understood by dateutil module and date --date
9 years ago
josch
81647dd06f
use common variable for datetime format string
9 years ago
josch
5a1f0701a3
to allow non-ascii characters, encode strings as utf-16-be (big endian) and escape backslashes and parenthesis
9 years ago
josch
317a0ee7f2
do not encode as utf8 as pdf is ascii, add safer handling across py2/py3
9 years ago
xiota
592cdc1cdb
Changes to pdf page size handling
...
Changes to `valid_size()`
* accept common page sizes, such as letter and a4.
* parse dimensions of format: AuxBv#, where A is width, u is units, B is height, v is units, # are options.
* accept units: in, cm, mm, pt
Changes to `convert()`:
* resize pages based on dpi calculations
* default resize images into page size (like default resize in imagemagick)
* implement exact resizing (ignore dpi; equiv to ! in imagemagick)
Created `get_ndpi()`:
* provides dpi for page resizing
* implement fill resizing (equiv to ^ in imagemagick)
Other changes:
* default dpi in global variable
9 years ago
josch
36fb9173fe
add --version option and __version__ module variable and use ~git version suffix
9 years ago
josch
d5fc324b7b
cater for python-pil versions without close() attribute (the 3rd fix)
9 years ago
josch
b90e385efe
cater for python-pil versions without close() attribute (the 2nd fix)
9 years ago
josch
486361e716
cater for python-pil versions without close() attribute
9 years ago
josch
9389d81a14
fix testsuite after commit 2cb8e55f
broke it - thanks Jakub Wilk!
9 years ago
Jakub Wilk
5d7975164d
remove unused imports
9 years ago
josch
53968c31e0
remove -x and -y and replace by -s/--pagesize. Change short option for --subject to -S.
9 years ago
josch
ad8567d352
add more details to code comment
9 years ago
josch
2cb8e55f1d
output pdf image size with four significant digits
9 years ago
josch
aabd104114
update tests handling
10 years ago
josch
4d005c8443
write to sys.stdout.buffer and fall back to sys.stdout
10 years ago
josch
e810f3baf4
close cStringIO and PIL.Image
10 years ago
josch
90e954dc0a
make sure dpi are read as integers and divided using float division
10 years ago
josch
8887fe21f4
print floats with four decimal places
10 years ago
josch
9ff6ebec04
pass on --nodate option
10 years ago
josch
3fdd824201
support file objects as input
10 years ago
josch
18ca3b4491
make 2nd, 3rd and 4th argument optional by supplying None as default
10 years ago
Erik Jensen
c68ce6a48d
Add CMYK test images
10 years ago
Erik Jensen
e4db4e9e8e
Enable support for CMYK images
...
CMYK TIFFs and JPEGs both work. CMYK JPEG2000 images have not been
tested. Adobe Photoshop and some other software generate inverted CMYK
JPEGs. The image is assumed to be inverted if the "Adobe" (APP14) tag is
present. Images can be forced inverted with `-C "CMYK;I"`, and forced
not inverted with `-C CMYK`.
10 years ago
lukahn
5c7753d6c4
Fix for adding custom resolutions
10 years ago
josch
700e62f1d8
make output reproducible by sorting and --nodate option
10 years ago