Commit graph

191 commits

Author SHA1 Message Date
Paul Ingemi
505344f83e
Add Windows support for paths containing wildcards "*" and "?"
Img2pdf accepts paths containing wildcards such as *.jpg to efficiently refer
to multiple input files that match the wildcard expression. Under POSIX
environments the command line shell is expected to perform this expansion,
however Windows requires the command line utility itself to expand the
wildcard expression.

Ideally this would be performed by argparse as described in this draft PEP:
https://mail.python.org/pipermail/python-ideas/2015-August/035244.html

Since argparse doesn't do it, this commit performs expansion directly.

Some implementation notes:
 - Wildcard characters "*" and "?" are not valid in Windows filenames
 - Code doesn't support bracket wildcards such as [0-3] on Windows since
   they are valid filename characters
 - Due to expansion, the images list collected by argparse may contain
   sub-lists. Code uses chain.from_iterable to create a flat list.
 - Paths that refer to non-existant files raise an error message, while
   wildcards that match no files are silently ignored.
2020-10-05 10:28:08 +02:00
Anna Levenberg
32b4ed1f43
Add check for empty list 2020-09-22 16:23:17 +02:00
b2c3b641db
fix typo: complient -> compliant 2020-08-27 02:48:26 +02:00
11907242a5
src/img2pdf_test.py: we create our own channel-switching ICC profile 2020-08-09 22:03:47 +02:00
692b54ac67
release version 0.4.0 2020-08-07 08:05:27 +02:00
c7db805dee
don't use /usr/share/color/icc/ghostscript/srgb.icc but /usr/share/color/icc/sRGB.icc because the former converts from sRGB to CIE LAB and PDF/A requires a profile from CIE LAB to sRGB (closes: #78) 2020-08-07 00:20:44 +02:00
f0b57985ee
first stab at embedding ICC profiles 2020-08-07 00:13:53 +02:00
1ba02bf838
src/img2pdf_test.py: use json output instead of -verbose everywhere (the former is for machines, the latter for human consumption and can change without notice) 2020-08-06 20:25:20 +02:00
042aac71eb
reformat with black 2020-08-05 08:13:52 +02:00
7da0a00ef3
src/img2pdf_test.py: replace jpg_img check by json output 2020-08-05 08:11:39 +02:00
86fddab622
src/img2pdf_test.py: check for JP2 support 2020-08-05 01:12:59 +02:00
788102ee05
.travis.yml: use focal 2020-08-05 00:48:15 +02:00
d92790ad26
try ghostscript version shaningans 2020-08-05 00:10:00 +02:00
9bd41dba1e
src/img2pdf_test.py: check that psnr is not zero 2020-08-04 23:54:11 +02:00
6c742be642
src/img2pdf_test.py: cater for json output of imagemagick before 6.9.9.34 2020-08-04 23:29:42 +02:00
c506cf0b8d
try to use json output instead of identify -verbose 2020-08-04 13:07:40 +02:00
fbb51d9083
tighten minimum imagemagick version for quantum:polarity=min-is-black 2020-08-04 09:30:03 +02:00
1d5be0cc9d
src/img2pdf_test.py: also catch subprocess.CalledProcessError 2020-08-03 18:46:58 +02:00
e151ca27eb
src/img2pdf_test.py: skip tests on win32 and macos 2020-08-03 18:45:40 +02:00
7aed0ea0d0
src/img2pdf_test.py: fixes for Ubuntu Trusty 2020-08-03 18:31:55 +02:00
bed0b4cdae
src/img2pdf_test.py: check for mutool >= 1.10.0 2020-08-03 16:04:58 +02:00
11f7db5003
src/img2pdf_test.py: explicitly convert PosixPath to str 2020-08-03 15:04:51 +02:00
000fc3b5ac
remove obsolete src/tests/__init__.py 2020-08-03 14:56:32 +02:00
0992832ab0
src/img2pdf_test.py: explicitly convert PosixPath to str 2020-08-03 14:49:58 +02:00
66fd7cc765
rename test.py -> src/img2pdf_test.py 2020-08-03 12:34:02 +02:00
5b7f93bb9a
do not allow negative values in parse_num() 2020-08-03 12:25:14 +02:00
663010ca61
src/img2pdf.py: tiny logic error 2020-06-06 01:19:30 +02:00
93f65a49c9
add --pdfa argument to attach an icc profile for PDF/A-1b compliant output 2020-06-01 02:10:07 +02:00
bca3f802ac
Add support for pikepdf 2020-05-31 17:18:02 +02:00
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 2020-05-31 09:05:55 +02:00
f4b296cef3
src/tests/__init__.py: make path OS agnostic (slash vs backslash) 2020-05-28 13:16:09 +02:00
5c7ffb09a1
src/tests/__init__.py: add support for engine instead of with_pdfrw 2020-05-28 13:12:07 +02:00
e4dece1c9f
replace --without-pdfrw by --engine=internal or --engine=pdfrw 2020-05-28 12:46:37 +02:00
997fe8efd8
src/tests/__init__.py: use pikepdf instead of pdfrw 2020-05-28 12:43:08 +02:00
60fa588cfb
release version 0.3.6 2020-04-30 22:18:54 +02:00
6da2bc3aee
release version 0.3.5 2020-04-28 13:39:49 +02:00
082f999ac8
fix with_pdfrw assignment -- thanks Michał Górny 2020-04-23 07:47:39 +02:00
ceba6a8223
Rip out remaining python3 support
https://www.enricozini.org/blog/2020/python/python-2-is-dead/
2020-04-23 07:13:39 +02:00
9449f96345
only run gui if requested with --gui even on windows (closes: #73) 2020-04-23 07:09:20 +02:00
0bbbc7a31a
pdfrw is now disabled by default if it's not installed (closes: #74) 2020-04-23 06:59:07 +02:00
fb2916e6b2
release version 0.3.4 2020-04-05 15:11:09 +02:00
7a3daec620
add rudimentary GUI 2020-04-05 12:21:09 +02:00
1bb21f0c85
put read() into a different try block than open() 2020-04-05 12:16:59 +02:00
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