add set label to each page

This commit is contained in:
sumpfork 2012-09-25 19:27:26 -07:00
parent b30bacbfc5
commit 83f1f74f9d

View File

@ -293,6 +293,18 @@ class DominionTabs:
cards = split(cards,self.numTabsVertical*self.numTabsHorizontal) cards = split(cards,self.numTabsVertical*self.numTabsHorizontal)
for pageCards in cards: for pageCards in cards:
#print 'pageCards:',pageCards #print 'pageCards:',pageCards
#print sets for this page
self.canvas.saveState()
self.canvas.setFont('MinionPro-Regular',12)
sets = []
for c in pageCards:
setTitle = c.cardset.title()
if setTitle not in sets:
sets.append(setTitle)
self.canvas.drawCentredString(self.paperwidth/2,20,'/'.join(sets))
self.canvas.restoreState()
for i,card in enumerate(pageCards): for i,card in enumerate(pageCards):
#print card #print card
x = i % self.numTabsHorizontal x = i % self.numTabsHorizontal
@ -352,10 +364,10 @@ class DominionTabs:
if papersize == 'A4': if papersize == 'A4':
print "Using A4 sized paper." print "Using A4 sized paper."
paperwidth, paperheight = A4 self.paperwidth, self.paperheight = A4
else: else:
print "Using letter sized paper." print "Using letter sized paper."
paperwidth, paperheight = LETTER self.paperwidth, self.paperheight = LETTER
minmarginwidth, minmarginheight = self.options.minmargin.split ("x", 1) minmarginwidth, minmarginheight = self.options.minmargin.split ("x", 1)
minmarginwidth, minmarginheight = float (minmarginwidth) * cm, float (minmarginheight) * cm minmarginwidth, minmarginheight = float (minmarginwidth) * cm, float (minmarginheight) * cm
@ -369,21 +381,21 @@ class DominionTabs:
self.tabLabelWidth = 3.5*cm self.tabLabelWidth = 3.5*cm
self.tabTotalHeight = self.tabBaseHeight + self.tabLabelHeight self.tabTotalHeight = self.tabBaseHeight + self.tabLabelHeight
numTabsVerticalP = int ((paperheight - 2*minmarginheight) / self.tabTotalHeight) numTabsVerticalP = int ((self.paperheight - 2*minmarginheight) / self.tabTotalHeight)
numTabsHorizontalP = int ((paperwidth - 2*minmarginwidth) / self.tabWidth) numTabsHorizontalP = int ((self.paperwidth - 2*minmarginwidth) / self.tabWidth)
numTabsVerticalL = int ((paperwidth - 2*minmarginwidth) / self.tabWidth) numTabsVerticalL = int ((self.paperwidth - 2*minmarginwidth) / self.tabWidth)
numTabsHorizontalL = int ((paperheight - 2*minmarginheight) / self.tabTotalHeight) numTabsHorizontalL = int ((self.paperheight - 2*minmarginheight) / self.tabTotalHeight)
if numTabsVerticalL * numTabsHorizontalL > numTabsVerticalP * numTabsHorizontalP: if numTabsVerticalL * numTabsHorizontalL > numTabsVerticalP * numTabsHorizontalP:
self.numTabsVertical, self.numTabsHorizontal\ self.numTabsVertical, self.numTabsHorizontal\
= numTabsVerticalL, numTabsHorizontalL = numTabsVerticalL, numTabsHorizontalL
paperheight, paperwidth = paperwidth, paperheight self.paperheight, self.paperwidth = self.paperwidth, self.paperheight
else: else:
self.numTabsVertical, self.numTabsHorizontal\ self.numTabsVertical, self.numTabsHorizontal\
= numTabsVerticalP, numTabsHorizontalP = numTabsVerticalP, numTabsHorizontalP
self.horizontalMargin = (paperwidth-self.numTabsHorizontal*self.tabWidth)/2 self.horizontalMargin = (self.paperwidth-self.numTabsHorizontal*self.tabWidth)/2
self.verticalMargin = (paperheight-self.numTabsVertical*self.tabTotalHeight)/2 self.verticalMargin = (self.paperheight-self.numTabsVertical*self.tabTotalHeight)/2
print "Margins: %fcm h, %fcm v\n" % (self.horizontalMargin / cm, print "Margins: %fcm h, %fcm v\n" % (self.horizontalMargin / cm,
self.verticalMargin / cm) self.verticalMargin / cm)
@ -424,7 +436,7 @@ class DominionTabs:
fname = args[0] fname = args[0]
else: else:
fname = "dominion_tabs.pdf" fname = "dominion_tabs.pdf"
self.canvas = canvas.Canvas(fname, pagesize=(paperwidth, paperheight)) self.canvas = canvas.Canvas(fname, pagesize=(self.paperwidth, self.paperheight))
#pprint.pprint(self.canvas.getAvailableFonts()) #pprint.pprint(self.canvas.getAvailableFonts())
self.drawCards(cards) self.drawCards(cards)
self.canvas.save() self.canvas.save()