コード例 #1
0
ファイル: print.py プロジェクト: Axolotle/formats
 def recto(self, lang):
     return self.templates[0].render(
         l=self.layout,
         css=self.css,
         width=self.w,
         height=self.h,
         int={
             'rect': {
                 'pos': [self.w, self.rectPosY],
                 'size': [10, 35.187]
             },
             'text': {
                 'pos': [self.w + 5, self.rectPosY + 35.187 / 2],
                 'content': self.planetName[lang].upper()
             },
             'translate': -5
         },
         ellipse={
         'pos': self.c,
         'rad': self.radius
         },
         rad='M{},{} v{} h{}'.format(
             self.c[0],
             self.c[1] -
             self.radius[1],
             self.radius[1], self.radius[0]
         ),
         name={
             'pos': self.c,
             'content': self.symbol,
             'fontSize': self.fontSizes[0],
         },
         w=self.wPos,
         h=self.hPos,
         area={
             'pos': [self.c[0], self.c[1] + self.radius[1] + ((self.c[1] - self.radius[1] - self.m[1]) / 2)],
             'content': self.texts[lang]['recto']['area'].format(
                 symbol=self.symbol,
                 planetName=self.planetName[lang],
             )
         },
         range={
             'pos': [self.c[0], self.h - self.m[1]],
             'content': '{0}0 -> {0}{1}'.format(self.symbol, len(self.formats) - 1),
         },
         radius=[
             {
                 'pos': [self.c[0] + self.radius[0] / 2, self.c[1] - self.m[0] / 2],
                 'content': stringifyNumber(self.realRadius[0], lang),
             },
             {
                 'pos': [self.c[0] + self.m[0] / 2, self.c[1] - self.radius[1] / 2],
                 'content': stringifyNumber(self.realRadius[1], lang),
             }
         ]
     )
コード例 #2
0
ファイル: print.py プロジェクト: Axolotle/formats
 def recto(self, lang, index):
     wNotation = stringifyNumber(self.formats[index][0], lang)
     hNotation = stringifyNumber(self.formats[index][1], lang)
     remaining = len(self.formats) - index
     return self.templates[0].render(
         l=self.layout,
         css=self.css,
         width=self.w,
         height=self.h,
         name={
             'pos': [self.w / 2, self.h / 2],
             'fontSize': self.fontSizes[0 if remaining > 6 else 7 - remaining],
             'content': self.symbol + str(index)
         },
         w={
             'pos': self.wPos,
             'content': wNotation + ' mm'
         },
         h={
             'pos': self.hPos,
             'content': hNotation + ' mm'
         },
         title={
             'pos': [self.w / 2, self.h - self.m[1] / 2],
             'content': self.texts[lang]['recto']['title'].format(
                 symbol=self.symbol,
                 symbolName=self.symbolName,
                 number=index,
                 numberName=numberToCharacter(index, lang),
             ),
         },
         textBlock={
             'pos': [self.m[0], self.h - self.m[1] - 3 * self.fontSizes[8] * 1.25],
             'size': [self.w - self.m[0] * 2, 2 * self.fontSizes[8] * 1.25],
             'paragraphs': self.texts[lang]['recto']['textBlock'].format(
                 symbol=self.symbol,
                 symbolName=self.symbolName,
                 number=index,
                 numberName=numberToCharacter(index, lang),
                 width=wNotation,
                 height=hNotation,
             ).splitlines(),
         },
         rect=None if remaining > 6 else {
             'width': self.formats[index][0],
             'height': self.formats[index][1],
             'pos': [
                 (self.w - self.formats[index][0]) / 2,
                 (self.h - self.formats[index][1]) / 2,
             ]
         }
     )
コード例 #3
0
ファイル: web.py プロジェクト: Axolotle/formats
 def __init__(self, templates, lang, texts, planetsInfo, data):
     self.template = templates.get_template('planet.html.jinja2')
     self.lang = lang
     self.root = '../../' if lang != 'fr' else '../'
     self.planets = planetsInfo
     self.symbol = data['symbol']
     self.metaDesc = texts['metaDesc']
     self.footer = {
         'title': texts['footer']['title'],
         'content': markdown(texts['footer']['content'])
     }
     self.name = data['name']['en']
     self.home = texts['home']['title']
     self.globalTitle = texts['globalTitle']
     self.title = texts['planets']['title'].format(
         name=data['name'][lang],
         symbol=data['symbol'],
         symbolName=data['symbolName'],
     )
     self.standard = texts['planets']['standard'].format(
         symbol=data['symbol'])
     self.areaLost = texts['planets']['areaLost']
     self.formatList = texts['planets']['formatList']
     self.content = self.getMainContent(texts['planets'], data, lang)
     self.formats = [{
         'width':
         stringifyNumber(format[0], lang),
         'height':
         stringifyNumber(format[1], lang),
         'areaLost':
         stringifyNumber(round(data['areaLost'][i], 3), lang),
         'content':
         '{symbol}{i} -> {width} × {height} mm'.format(
             symbol=self.symbol,
             i=i,
             width=format[0],
             height=format[1],
         )
     } for i, format in enumerate(data['formats_mm'])]
     format = data['serieAequi']['4']['size']
     ratio = format[1] / km2mm(data['size_km'][1])
     radius = ratio * km2mm(data['radius'][1])
     fontSizes = [round(radius * sqrt1_2**n, 3) for n in range(21)]
     self.svg = {
         'width': format[0],
         'height': format[1],
         'lines': self.svgLines(format),
         'names': self.svgTexts(format, fontSizes),
     }
コード例 #4
0
ファイル: print.py プロジェクト: Axolotle/formats
 def recto(self, lang):
     sizeKm = [stringifyNumber(side, lang) for side in self.sizeKm]
     formats = [
         '{}{} │ {} × {} mm'.format(
             self.symbol,
             i if i > 9 else str(i) + ' ',
             stringifyNumber(self.formats[i][0], lang),
             stringifyNumber(self.formats[i][1], lang)
         )
         for i in range(len(self.formats))
     ]
     formats = formats[:len(formats) - 11] \
             + ['', self.texts[lang]['affixable'], ''] \
             + [format + ' (A{})'.format(i) for i, format in enumerate(formats[-11:])]
     return self.templates[0].render(
         l=self.layout,
         css=self.css,
         width=self.w,
         height=self.h,
         textBlock={
             'pos': [self.m[0], self.m[1]],
             'size': [self.w - self.m[0] * 2, self.h - self.m[1] * 2],
             'paragraphs': [
                 {
                     'lines': ['{} ({})'.format(self.symbol, self.symbolName),
                               '0-{}'.format(len(self.formats) - 1)],
                     'klass': 'end',
                     'fontSize': 7
                 },
                 {
                     'lines': [self.planetName[lang].upper()],
                     'fontSize': 24.5
                 },
                 {
                     'lines': ['{} <== {} === {} >- {}'.format(
                         self.planetName[lang],
                         self.greekGod[lang],
                         self.ancientGreekName,
                         self.symbol
                     )],
                 },
                 {
                     'lines': self.texts[lang]['infos'].format(
                         rx=stringifyNumber(self.realRadius[0], lang),
                         ry=stringifyNumber(self.realRadius[1], lang),
                         area=stringifyNumber(self.area, lang),
                         planetName=self.planetName[lang],
                         width=sizeKm[0],
                         height=sizeKm[1],
                         a4equiNumber=self.n,
                         a4equiW=self.w,
                         a4equiH=self.h,
                     ).splitlines()
                 },
                 {
                     'lines': formats
                 }
             ]
         }
     )
コード例 #5
0
ファイル: print.py プロジェクト: Axolotle/formats
    def verso(self, lang, index):
        remaining = len(self.formats) - index

        if (remaining <= 6):
            w = self.formats[index][0]
            h = self.formats[index][1]
            tx = (self.w - w) / 2
            ty = (self.h - h) / 2
            fs = 7 - remaining
        else:
            remaining = remaining if remaining < 17 else 17
            w = self.w
            h = self.h
            tx = 0
            ty = 0
            fs = 0

        return self.templates[1].render(
            l=self.layout,
            css=self.css,
            width= self.w,
            height= self.h,
            reverseTranslate=-self.w,
            translate='{} {}'.format(tx, ty),
            textBlock={
                'pos': [self.m[0], self.h - self.m[1] - 3 * self.fontSizes[8] * 1.25],
                'size': [self.w - self.m[0] * 2, 3 * self.fontSizes[8] * 1.25],
                'paragraphs': self.texts[lang]['verso']['textBlock'].format(
                    symbol=self.symbol,
                    numberDistrib=stringifyNumber(self.distrib[index]['total'], lang),
                    lost=stringifyNumber(self.lost[index], lang)
                ).splitlines(),
            },
            lines=self.homothetyLines(w, h, remaining),
            names=self.homothetyTexts(index, w, h, remaining, fs)
        )
コード例 #6
0
ファイル: print.py プロジェクト: Axolotle/formats
    def verso(self, lang):
        sizeKm = [stringifyNumber(side, lang) for side in self.sizeKm]
        return self.templates[1].render(
            l=self.layout,
            css=self.css,
            width=self.w,
            height=self.h,
            int={
                'rect': {
                    'pos': [-10, self.rectPosY],
                    'size': [10, 35.187]
                },
                'text': {
                    'pos': [-5, self.rectPosY + 35.187 / 2],
                    'content': self.planetName[lang].upper()
                },
                'translate': 5
            },
            w={
                'pos': self.wPos,
                'content': sizeKm[0],
            },
            h={
                'pos': [self.m[0], self.c[1]],
                'content': sizeKm[1],
            },
            names={
                'pos': [self.c[0], self.h - self.m[1]],
                'content': '{} &lt;== {} === {} >- {}'.format(
                    self.planetName[lang],
                    self.greekGod[lang],
                    self.ancientGreekName,
                    self.symbol
                ),
            },
            textBlock={
                'pos': [self.m[0] * 2, self.m[1] * 3],
                'size': [self.w - self.m[0] * 4, self.h - self.m[1] * 5],
                'paragraphs': [
                    {
                        'lines': ['{} ({})'.format(self.symbol, self.symbolName),
                                  '0-{}'.format(len(self.formats) - 1)],
                        'klass': 'end',
                        'fontSize': self.fontSizes[6]
                    },
                    {
                        'lines': [self.planetName[lang].upper()],
                        'fontSize': self.fontSizes[2]
                    },
                    {
                        'lines': self.texts[lang]['verso']['textBlock'].format(
                            rx=stringifyNumber(self.realRadius[0], lang),
                            ry=stringifyNumber(self.realRadius[1], lang),
                            area=stringifyNumber(self.area, lang),
                            planetName=self.planetName[lang],
                            width=sizeKm[0],
                            height=sizeKm[1],
                            a4equiNumber=self.n,
                            a4equiW=self.w,
                            a4equiH=self.h,
                        ).splitlines()
                    }
                ]
            }

        )