Broke the test file out into it's own dev branch. Roughly merged the two files so there's some mailing logic present along with the print qty parsing logic. Mail logic is erroring out right now, but it's a start.
This commit is contained in:
29
main.py
29
main.py
@@ -1,22 +1,25 @@
|
||||
#### Test version attempts to parse both the total cost and print quantity from the PDFs. There were some issues with the print qty location moving. So, I went with the manually entered qty break option to get started
|
||||
### This version is also lacking the mailing price logic
|
||||
|
||||
from operator import itemgetter
|
||||
from itertools import groupby
|
||||
import fitz
|
||||
import csv
|
||||
|
||||
|
||||
doc = fitz.open("std.pdf")
|
||||
# doc = fitz.open("flyers.pdf")
|
||||
# doc = fitz.open("poster.pdf")
|
||||
|
||||
####### IMPORT MAILING RATE SECTION #########
|
||||
psFCrate = '.55'
|
||||
psSCrate = '.44'
|
||||
psFCcutoff = '200'
|
||||
|
||||
|
||||
# doc = fitz.open("std.pdf")
|
||||
doc = fitz.open("flyers.pdf")
|
||||
|
||||
count = doc.pageCount
|
||||
currentPage = 0
|
||||
currentBreak = 1
|
||||
|
||||
|
||||
qtyrow = ['Price Input', 'Type', 'Comparisons', 'Options', 'Fixed Costs']
|
||||
costrow =['Base','','','(none)','\"0\"']
|
||||
mailrow = ['OptionalDataList','FormFilling','Equals','yes','\"0\"']
|
||||
@@ -55,7 +58,12 @@ while currentPage < count:
|
||||
Totalrect = (559.75, 551.71728515625, 584.52099609375, 560.7664794921875) #compontent price not total price
|
||||
Mailingrect = (555.25, 172.9172821044922, 584.5245971679688, 181.9665069580078) #component price for mailing component
|
||||
|
||||
|
||||
# Find the print quantity on each page
|
||||
qty = [w for w in words if fitz.Rect(w[:4]).intersects(Qtyrect)]
|
||||
qty.sort(key=itemgetter(3, 0))
|
||||
group = groupby(qty, key=itemgetter(3))
|
||||
for y1, gwords in group:
|
||||
totalqty = (" ".join(w[4] for w in gwords))
|
||||
# Find the total job cost on each page
|
||||
total = [w for w in words if fitz.Rect(w[:4]).intersects(Totalrect)]
|
||||
total.sort(key=itemgetter(3, 0))
|
||||
@@ -96,6 +104,7 @@ while currentPage < count:
|
||||
currentBreak = currentBreak - 1
|
||||
|
||||
currentPage = currentPage+1
|
||||
|
||||
# Add the weight sections after all the qty breaks
|
||||
qtyrow.append('Unit Weight')
|
||||
qtyrow.append('Tare Weight')
|
||||
@@ -116,4 +125,10 @@ with open('pricetable.csv', 'w', newline='') as f:
|
||||
writer.writerow(qtyrow)
|
||||
writer.writerow(costrow)
|
||||
if checkMail is True:
|
||||
writer.writerow(mailrow)
|
||||
writer.writerow(mailrow)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user