Compare commits

1 Commits
master ... dev

29
main.py
View File

@@ -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)