put in class, args as string

This commit is contained in:
Sumpfork 2011-06-16 10:25:16 +02:00
parent 4faecc49a3
commit a0670fe032

View File

@ -50,37 +50,37 @@ class DominionTabs:
('Curse',) : 'curse.png' ('Curse',) : 'curse.png'
} }
def drawTab(self,c,card,x,y,useExtra=False): def drawTab(self,card,x,y,useExtra=False):
#rightSide = False #rightSide = False
if self.numTabsHorizontal == 2: if self.numTabsHorizontal == 2:
rightSide = x%2 == 1 rightSide = x%2 == 1
else: else:
rightSide = useExtra rightSide = useExtra
c.resetTransforms() self.canvas.resetTransforms()
c.translate(self.horizontalMargin,self.verticalMargin) self.canvas.translate(self.horizontalMargin,self.verticalMargin)
if useExtra: if useExtra:
c.translate(self.options.back_offset,0) self.canvas.translate(self.options.back_offset,0)
c.translate(x*self.tabWidth,y*self.tabTotalHeight) self.canvas.translate(x*self.tabWidth,y*self.tabTotalHeight)
#draw outline #draw outline
#don't draw outline on back, in case lines don't line up with front #don't draw outline on back, in case lines don't line up with front
if not useExtra: if not useExtra:
c.saveState() self.canvas.saveState()
c.setLineWidth(0.1) self.canvas.setLineWidth(0.1)
if rightSide and not self.options.sameside: if rightSide and not self.options.sameside:
c.translate(self.tabWidth,0) self.canvas.translate(self.tabWidth,0)
c.scale(-1,1) self.canvas.scale(-1,1)
c.lines(self.tabOutline) self.canvas.lines(self.tabOutline)
c.restoreState() self.canvas.restoreState()
#draw tab flap #draw tab flap
c.saveState() self.canvas.saveState()
if not rightSide or self.options.sameside: if not rightSide or self.options.sameside:
c.translate(self.tabWidth-self.tabLabelWidth, self.canvas.translate(self.tabWidth-self.tabLabelWidth,
self.tabTotalHeight-self.tabLabelHeight) self.tabTotalHeight-self.tabLabelHeight)
else: else:
c.translate(0,self.tabTotalHeight-self.tabLabelHeight) self.canvas.translate(0,self.tabTotalHeight-self.tabLabelHeight)
c.drawImage(DominionTabs.labelImages[card.types],1,0, self.canvas.drawImage(DominionTabs.labelImages[card.types],1,0,
self.tabLabelWidth-2,self.tabLabelHeight-1, self.tabLabelWidth-2,self.tabLabelHeight-1,
preserveAspectRatio=False,anchor='n') preserveAspectRatio=False,anchor='n')
if card.types[0] == 'Treasure' or card.types == ('Curse',): if card.types[0] == 'Treasure' or card.types == ('Curse',):
@ -98,15 +98,15 @@ class DominionTabs:
textWidth = 85 textWidth = 85
if card.potcost: if card.potcost:
c.drawImage("potion.png",21,potHeight,potSize,potSize,preserveAspectRatio=True,mask=[255,255,255,255,255,255]) self.canvas.drawImage("potion.png",21,potHeight,potSize,potSize,preserveAspectRatio=True,mask=[255,255,255,255,255,255])
textInset += potSize textInset += potSize
textWidth -= potSize textWidth -= potSize
c.setFont('MinionPro-Bold',12) self.canvas.setFont('MinionPro-Bold',12)
cost = str(card.cost) cost = str(card.cost)
if 'Prize' in card.types: if 'Prize' in card.types:
cost += '*' cost += '*'
c.drawCentredString(12,costHeight,cost) self.canvas.drawCentredString(12,costHeight,cost)
fontSize = 12 fontSize = 12
name = card.name.upper() name = card.name.upper()
name_parts = name.split() name_parts = name.split()
@ -119,26 +119,26 @@ class DominionTabs:
#if tooLong: #if tooLong:
# print name # print name
#c.drawString(tabLabelWidth/2+8,tabLabelHeight/2-7,name[0]) #self.canvas.drawString(tabLabelWidth/2+8,tabLabelHeight/2-7,name[0])
w = 0 w = 0
for i,n in enumerate(name_parts): for i,n in enumerate(name_parts):
c.setFont('MinionPro-Regular',fontSize) self.canvas.setFont('MinionPro-Regular',fontSize)
h = textHeight h = textHeight
if tooLong: if tooLong:
if i == 0: if i == 0:
h += h/2 h += h/2
else: else:
h -= h/2 h -= h/2
c.drawString(textInset+w,h,n[0]) self.canvas.drawString(textInset+w,h,n[0])
w += pdfmetrics.stringWidth(n[0],'MinionPro-Regular',fontSize) w += pdfmetrics.stringWidth(n[0],'MinionPro-Regular',fontSize)
#c.drawString(tabLabelWidth/2+8+w,tabLabelHeight/2-7,name[1:]) #self.canvas.drawString(tabLabelWidth/2+8+w,tabLabelHeight/2-7,name[1:])
c.setFont('MinionPro-Regular',fontSize-2) self.canvas.setFont('MinionPro-Regular',fontSize-2)
c.drawString(textInset+w,h,n[1:]) self.canvas.drawString(textInset+w,h,n[1:])
w += pdfmetrics.stringWidth(n[1:],'MinionPro-Regular',fontSize-2) w += pdfmetrics.stringWidth(n[1:],'MinionPro-Regular',fontSize-2)
w += pdfmetrics.stringWidth(' ','MinionPro-Regular',fontSize) w += pdfmetrics.stringWidth(' ','MinionPro-Regular',fontSize)
if tooLong: if tooLong:
w = 0 w = 0
c.restoreState() self.canvas.restoreState()
#draw text #draw text
if useExtra and card.extra: if useExtra and card.extra:
@ -165,7 +165,7 @@ class DominionTabs:
#print 'decreasing fontsize on description for',card.name,'now',s.fontSize #print 'decreasing fontsize on description for',card.name,'now',s.fontSize
p = Paragraph(d,s) p = Paragraph(d,s)
w,h = p.wrap(textWidth,textHeight) w,h = p.wrap(textWidth,textHeight)
p.drawOn(c,cm/2.0,textHeight-height-h-0.5*cm) p.drawOn(self.canvas,cm/2.0,textHeight-height-h-0.5*cm)
height += h + 0.2*cm height += h + 0.2*cm
def read_card_extras(self,fname,cards): def read_card_extras(self,fname,cards):
@ -228,7 +228,7 @@ class DominionTabs:
#print '----' #print '----'
return cards return cards
def drawCards(self,c,cards): def drawCards(self,cards):
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
@ -236,18 +236,18 @@ class DominionTabs:
#print card #print card
x = i % self.numTabsHorizontal x = i % self.numTabsHorizontal
y = i / self.numTabsHorizontal y = i / self.numTabsHorizontal
c.saveState() self.canvas.saveState()
self.drawTab(c,card,x,self.numTabsVertical-1-y) self.drawTab(card,x,self.numTabsVertical-1-y)
c.restoreState() self.canvas.restoreState()
c.showPage() self.canvas.showPage()
for i,card in enumerate(pageCards): for i,card in enumerate(pageCards):
#print card #print card
x = (self.numTabsHorizontal-1-i) % self.numTabsHorizontal x = (self.numTabsHorizontal-1-i) % self.numTabsHorizontal
y = i / self.numTabsHorizontal y = i / self.numTabsHorizontal
c.saveState() self.canvas.saveState()
self.drawTab(c,card,x,self.numTabsVertical-1-y,useExtra=True) self.drawTab(card,x,self.numTabsVertical-1-y,useExtra=True)
c.restoreState() self.canvas.restoreState()
c.showPage() self.canvas.showPage()
def main(self,argstring): def main(self,argstring):
parser = OptionParser() parser = OptionParser()
@ -361,10 +361,10 @@ class DominionTabs:
fname = args[0] fname = args[0]
else: else:
fname = "dominion_tabs.pdf" fname = "dominion_tabs.pdf"
c = canvas.Canvas(fname, pagesize=(paperwidth, paperheight)) self.canvas = canvas.Canvas(fname, pagesize=(paperwidth, paperheight))
#pprint.pprint(c.getAvailableFonts()) #pprint.pprint(self.canvas.getAvailableFonts())
self.drawCards(c,cards) self.drawCards(cards)
c.save() self.canvas.save()
if __name__=='__main__': if __name__=='__main__':
import sys import sys