Skip to content

Commit 7adf184

Browse files
author
xilopaint
committed
Add a "tag" environment variable in workflow's configuration sheet
Allow the user to set his own tag for filenames once split and slice file actions output multiple files.
1 parent c459688 commit 7adf184

File tree

3 files changed

+36
-28
lines changed

3 files changed

+36
-28
lines changed

Alfred PDF Tools.alfredworkflow

25 Bytes
Binary file not shown.

src/alfred_pdf_tools.py

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ def encrypt(query, f, c):
199199
if not reader.isEncrypted:
200200
writer = PdfFileWriter()
201201

202-
for pg_no in range(reader.numPages):
202+
for pg_no in xrange(reader.numPages):
203203
writer.addPage(reader.getPage(pg_no))
204204

205205
writer.encrypt(query)
@@ -227,7 +227,7 @@ def decrypt(query, f, c):
227227
reader.decrypt(query)
228228
writer = PdfFileWriter()
229229

230-
for pg_no in range(reader.numPages):
230+
for pg_no in xrange(reader.numPages):
231231
writer.addPage(reader.getPage(pg_no))
232232

233233
out_file = open(noextpath[n][0] + ' (decrypted).pdf', 'wb')
@@ -284,7 +284,7 @@ def merge(query, f, c, should_trash):
284284
'Merge action cannot handle an encrypted PDF file.')
285285

286286

287-
def split_count(query, abs_path):
287+
def split_count(query, abs_path, tag):
288288
"""Split PDF file by page count"""
289289
try:
290290
if not query.lstrip('+-').isdigit():
@@ -301,7 +301,7 @@ def split_count(query, abs_path):
301301

302302
writer = PdfFileWriter()
303303

304-
for pg_no in range(reader.numPages):
304+
for pg_no in xrange(reader.numPages):
305305
writer.addPage(reader.getPage(pg_no))
306306

307307
tmpdir = os.environ['TMPDIR']
@@ -322,7 +322,7 @@ def split_count(query, abs_path):
322322
merger = PdfFileMerger(strict=False)
323323
merger.append(inp_file, pages=(start, stop))
324324
noextpath = os.path.splitext(abs_path)[0]
325-
merger.write('{} (part {}).pdf'.format(noextpath, i + 1))
325+
merger.write('{} ({} {}).pdf'.format(noextpath, tag, i + 1))
326326
start = stop
327327
stop = start + page_count
328328

@@ -331,7 +331,7 @@ def split_count(query, abs_path):
331331
merger = PdfFileMerger(strict=False)
332332
merger.append(inp_file, pages=(start, stop))
333333
noextpath = os.path.splitext(abs_path)[0]
334-
merger.write('{} (part {}).pdf'.format(noextpath, i + 1))
334+
merger.write('{} ({} {}).pdf'.format(noextpath, tag, i + 1))
335335

336336
if i != int(quotient) - 1:
337337
start = stop
@@ -357,7 +357,7 @@ def split_count(query, abs_path):
357357
'Split action cannot handle an encrypted PDF file.')
358358

359359

360-
def split_size(query, abs_path):
360+
def split_size(query, abs_path, tag):
361361
"""Split PDF file by file size."""
362362
try:
363363
arg_file_size = float(query) * 1000000
@@ -367,7 +367,7 @@ def split_size(query, abs_path):
367367

368368
writer = PdfFileWriter()
369369

370-
for pg_no in range(reader.numPages):
370+
for pg_no in xrange(reader.numPages):
371371
writer.addPage(reader.getPage(pg_no))
372372

373373
tmpdir = os.environ['TMPDIR']
@@ -396,8 +396,9 @@ def split_size(query, abs_path):
396396
if stop == pg_cnt:
397397
merger = PdfFileMerger(strict=False)
398398
merger.append(inp_file, pages=(start, stop))
399-
merger.write('{} (part {}).pdf'.format(noextpath,
400-
pg_no + 1))
399+
merger.write('{} ({} {}).pdf'.format(noextpath,
400+
tag,
401+
pg_no + 1))
401402
break
402403
else:
403404
stop += 1
@@ -406,8 +407,9 @@ def split_size(query, abs_path):
406407
if num_pages == 1:
407408
merger = PdfFileMerger(strict=False)
408409
merger.append(inp_file, pages=(start, stop))
409-
merger.write('{} (part {}).pdf'.format(noextpath,
410-
pg_no + 1))
410+
merger.write('{} ({} {}).pdf'.format(noextpath,
411+
tag,
412+
pg_no + 1))
411413
start = stop
412414
stop += 1
413415
pg_no += 1
@@ -416,8 +418,9 @@ def split_size(query, abs_path):
416418
stop -= 1
417419
merger = PdfFileMerger(strict=False)
418420
merger.append(inp_file, pages=(start, stop))
419-
merger.write('{} (part {}).pdf'.format(noextpath,
420-
pg_no + 1))
421+
merger.write('{} ({} {}).pdf'.format(noextpath,
422+
tag,
423+
pg_no + 1))
421424
start = stop
422425
stop += 1
423426
pg_no += 1
@@ -433,7 +436,7 @@ def split_size(query, abs_path):
433436
'Split action cannot handle an encrypted PDF file.')
434437

435438

436-
def slice_(query, abs_path, single):
439+
def slice_(query, abs_path, single, tag):
437440
"""Slice PDF files."""
438441
try:
439442
pages = [x.strip() for x in query.split(',')]
@@ -443,7 +446,7 @@ def slice_(query, abs_path, single):
443446

444447
writer = PdfFileWriter()
445448

446-
for pg_no in range(reader.numPages):
449+
for pg_no in xrange(reader.numPages):
447450
writer.addPage(reader.getPage(pg_no))
448451

449452
tmpdir = os.environ['TMPDIR']
@@ -518,14 +521,16 @@ def slice_(query, abs_path, single):
518521
raise StartValueReverseError
519522

520523
merger.append(reader, pages=(start, stop))
521-
merger.write(noextpath + (' (part {}).pdf').format(i + 1))
524+
merger.write(noextpath + (' ({} {}).pdf').format(tag,
525+
i + 1))
522526

523527
else:
524528
merger = PdfFileMerger(strict=False)
525529
start = int(pages[i]) - 1
526530
stop = int(pages[i])
527531
merger.append(reader, pages=(start, stop))
528-
merger.write(noextpath + (' (part {}).pdf').format(i + 1))
532+
merger.write(noextpath + (' ({} {}).pdf').format(tag,
533+
i + 1))
529534

530535
inp_file.close()
531536

@@ -557,7 +562,7 @@ def crop(abs_path):
557562
out_file = open(noextpath + ' (cropped).pdf', 'wb')
558563
writer = PdfFileWriter()
559564

560-
for i in range(reader.getNumPages()):
565+
for i in xrange(reader.getNumPages()):
561566
# Make two copies of the input page.
562567
pp = reader.getPage(i)
563568
p = copy.copy(pp)
@@ -612,7 +617,7 @@ def main(wf):
612617
abs_path = os.environ['abs_path']
613618
f = abs_path.split('\t')
614619
c = len(f)
615-
print query
620+
tag = os.environ['tag']
616621

617622
if args.get('optimize'):
618623
optimize(query, f, c)
@@ -633,16 +638,16 @@ def main(wf):
633638
merge(query, f, c, True)
634639

635640
elif args.get('splitcount'):
636-
split_count(query, abs_path)
641+
split_count(query, abs_path, tag)
637642

638643
elif args.get('splitsize'):
639-
split_size(query, abs_path)
644+
split_size(query, abs_path, tag)
640645

641646
elif args.get('slicemulti'):
642-
slice_(query, abs_path, False)
647+
slice_(query, abs_path, False, tag)
643648

644649
elif args.get('slicesingle'):
645-
slice_(query, abs_path, True)
650+
slice_(query, abs_path, True, tag)
646651

647652
elif args.get('crop'):
648653
crop(abs_path)

src/info.plist

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1151,9 +1151,7 @@ python alfred_pdf_tools.py progress "{query}"</string>
11511151
</dict>
11521152
</array>
11531153
<key>readme</key>
1154-
<string>![alt text](src/icon.png)
1155-
1156-
# Alfred PDF Tools
1154+
<string># Alfred PDF Tools
11571155
11581156
A workflow for [Alfred 3][1].
11591157
@@ -1558,8 +1556,13 @@ This workflow relies on [PyPDF2][5] library currently maintained by [Phaseit, In
15581556
<integer>400</integer>
15591557
</dict>
15601558
</dict>
1559+
<key>variables</key>
1560+
<dict>
1561+
<key>tag</key>
1562+
<string>part</string>
1563+
</dict>
15611564
<key>version</key>
1562-
<string>2.10</string>
1565+
<string>2.11</string>
15631566
<key>webaddress</key>
15641567
<string>https://github.com/xilopaint/alfred-pdf-tools</string>
15651568
</dict>

0 commit comments

Comments
 (0)