-
Notifications
You must be signed in to change notification settings - Fork 0
/
rupost.py
95 lines (79 loc) · 3.14 KB
/
rupost.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/usr/bin/env python
import sys
import re
import datetime
from pyPdf import PdfFileWriter, PdfFileReader
backpage = False
def append_file(out, input_file_name):
print("Open %s" % input_file_name)
input1 = PdfFileReader(file(input_file_name, "rb"))
page = input1.getPage(0)
upperleft_x = page.mediaBox.getUpperLeft_x()
upperleft_y = page.mediaBox.getUpperLeft_y()
upperright_x = page.mediaBox.getUpperRight_x()
upperright_y = page.mediaBox.getUpperRight_y()
# print(page.mediaBox)
# print(page.mediaBox.getUpperLeft_x())
# print(page.mediaBox.getUpperLeft_y())
# print(page.mediaBox.getUpperRight_x())
# print(page.mediaBox.getUpperRight_y())
# print(page.mediaBox.lowerLeft)
# print(page.mediaBox.upperLeft)
# print(page.mediaBox.lowerRight)
# print(page.mediaBox.upperRight)
if backpage:
# устанавливаем зону обрезки по оборотной стороне уведомления
page.mediaBox.upperRight = (
float(page.mediaBox.getUpperRight_x()),
float(page.mediaBox.getUpperRight_y()) - (float(page.mediaBox.getUpperLeft_y()) * 0.325)
)
page.mediaBox.lowerRight = (
float(page.mediaBox.getLowerRight_x()) * 0.7,
float(page.mediaBox.getUpperRight_y()) - (float(page.mediaBox.getUpperLeft_y()) * 0.48)
)
else :
# устанавливаем зону обрезки по основной стороне уведомления
page.mediaBox.lowerRight = (
float(page.mediaBox.getLowerRight_x()) * 0.7,
float(page.mediaBox.getUpperLeft_y()) - (float(page.mediaBox.getUpperLeft_y()) * 0.325)
)
#print(page.mediaBox)
out.addPage(page)
print('Croped and added to output file')
output = PdfFileWriter()
fnames = [] # копим сюда составные части имён файлов
out_name = []; #отфильтрованные части имён файлов для выходного файла
fnrx = re.compile('[\s_\-]+');
for i in range(len(sys.argv)):
if i > 0:
if sys.argv[i] == 'backpage':
backpage = True
else:
fnames.append(fnrx.split(sys.argv[i].split('\\').pop().split('.')[0]));
append_file(output, sys.argv[i])
# фильруем части имён файлов
for fn in fnames:
for k in range(len(fn)):
if len(out_name) - 1 < k:
out_name.append([]);
if out_name[k].count(fn[k]) < 1:
out_name[k].append(fn[k])
#out_name[k].sort()
#out_name[k].reverse();
for k in range(len(out_name)):
if k == 0:
out_name[k] = [datetime.date.today().strftime('%y%m%d')]
out_name[k] = '_'.join(out_name[k]);
# собираем из отфильтрованных частей конечное имя файла
postfix = '_crop'
if backpage:
postfix = '_backpage'
out_name = ('_'.join(out_name) + postfix)[0:251]+'.pdf';
print('')
print(out_name)
print("has %s pages" % output.getNumPages())
print('Saving...')
outputStream = file(out_name, "wb")
output.write(outputStream)
outputStream.close()
print('Done')