Beispiel #1
0
    def make_tableMarginInCell():
        doc, section, styles = RTFTestCase.initializeDoc()
        cell_margins0 = MarginsPropertySet(top=0, right=0, bottom=0, left=0)
        cell_margins1 = MarginsPropertySet(top=500,
                                           right=500,
                                           bottom=500,
                                           left=500)
        cell_margins2 = MarginsPropertySet(top=1000,
                                           right=1000,
                                           bottom=1000,
                                           left=1000)
        section.append('Table with Margin in Cells')

        table = Table(TableTestCase.col1, TableTestCase.col2,
                      TableTestCase.col3)
        table.AddRow(Cell(cell_margins0, 'Marign 0'),
                     Cell(
                         cell_margins1,
                         'Margin 500',
                     ), Cell(cell_margins2, 'Margin 1000'))
        table.AddRow(Cell(cell_margins0, 'Marign 0'),
                     Cell(
                         cell_margins1,
                         'Margin 500',
                     ), Cell(cell_margins2, 'Margin 1000'))
        table.AddRow(Cell(cell_margins0, 'Marign 0'),
                     Cell(
                         cell_margins1,
                         'Margin 500',
                     ), Cell(cell_margins2, 'Margin 1000'))

        section.append(table)
        return doc
Beispiel #2
0
    def make_tableVerticalCellMerge():
        doc, section, styles = RTFTestCase.initializeDoc()
        section.append('Table with Vertical Cells Merged')

        table = Table(TableTestCase.col1, TableTestCase.col2,
                      TableTestCase.col3)
        table.AddRow(Cell('A-one'), Cell('A-two', vertical_merge=True),
                     Cell('A-three'))
        table.AddRow(Cell('A-one'), Cell(vertical_merge=True), Cell('A-three'))
        table.AddRow(Cell('A-one'), Cell('A-two', start_vertical_merge=True),
                     Cell('A-three'))
        table.AddRow(Cell('A-one'), Cell(vertical_merge=True), Cell('A-three'))

        table.AddRow(
            Cell(Paragraph(
                ParagraphPropertySet(alignment=ParagraphPropertySet.CENTER),
                'SPREAD'),
                 span=3))

        table.AddRow(Cell('A-one'), Cell('A-two', vertical_merge=True),
                     Cell('A-three'))
        table.AddRow(Cell('A-one'), Cell(vertical_merge=True), Cell('A-three'))
        table.AddRow(Cell('A-one'), Cell('A-two', start_vertical_merge=True),
                     Cell('A-three'))
        table.AddRow(Cell('A-one'), Cell(vertical_merge=True), Cell('A-three'))

        section.append(table)
        return doc
Beispiel #3
0
    def addConsultationBox(self, section, document):
        """ Add the consultation box that needs to be signed by the employer
            and workers.
        """
        ss = document.StyleSheet
        styles = document.StyleSheet.ParagraphStyles
        thin_edge = BorderPropertySet(width=20, style=BorderPropertySet.SINGLE)
        t = lambda txt: "".join([
            "\u%s?" % str(ord(e)) for e in translate(txt, context=self.request)
        ])

        table = Table(9500)
        thin_edge = BorderPropertySet(width=20, style=BorderPropertySet.SINGLE)
        no_edge = BorderPropertySet(width=0, colour=ss.Colours.White)
        p = Paragraph(
            styles.Heading3,
            ParagraphPropertySet(alignment=ParagraphPropertySet.CENTER),
            t(
                _("header_oira_report_consultation",
                  default="Consultation of workers")))
        c = Cell(p, FramePropertySet(thin_edge, thin_edge, no_edge, thin_edge))
        table.AddRow(c)

        p = Paragraph(
            styles.Normal,
            ParagraphPropertySet(alignment=ParagraphPropertySet.LEFT),
            t(
                _("paragraph_oira_consultation_of_workers",
                  default="The undersigned hereby declare that the workers "
                  "have been consulted on the content of this "
                  "document.")), LINE)
        c = Cell(p, FramePropertySet(no_edge, thin_edge, no_edge, thin_edge))
        table.AddRow(c)

        p = Paragraph(
            styles.Normal,
            ParagraphPropertySet(alignment=ParagraphPropertySet.LEFT),
        )
        employer = t(
            _("oira_consultation_employer",
              default="On behalf of the employer:"))
        workers = t(
            _("oira_consultation_workers",
              default="On behalf of the workers:"))

        p.append(employer, TAB, TAB, TAB, TAB, workers, LINE, LINE)
        c = Cell(p, FramePropertySet(no_edge, thin_edge, no_edge, thin_edge))
        table.AddRow(c)

        p = Paragraph(
            ParagraphPropertySet(alignment=ParagraphPropertySet.LEFT),
            t(_("oira_survey_date", default="Date:")), LINE, LINE)
        c = Cell(p, FramePropertySet(no_edge, thin_edge, thin_edge, thin_edge))
        table.AddRow(c)
        section.append(table)
Beispiel #4
0
 def test_tableAddRow(self):
     table = Table(1000)
     self.assertRaises(Exception, table.AddRow)  # no params at all
     table.AddRow(Cell('1'))  # one cell, ok
     self.assertRaises(Exception, table.AddRow, Cell('1'),
                       Cell('1'))  # 2 cells, error
     self.assertRaises(Exception, table.AddRow,
                       1)  # height but no cell, error
     table.AddRow(1, Cell('1'))  # height plus one cell, ok
     self.assertRaises(Exception, table.AddRow, 1, Cell('1'),
                       Cell('1'))  # height with 2 cells, error
Beispiel #5
0
    def make_tableHorizontalCellMerge():
        doc, section, styles = RTFTestCase.initializeDoc()
        section.append( 'Table with Horizontal Cells Merged' )

        table = Table( TableTestCase.col1, TableTestCase.col2, TableTestCase.col3 )
        table.AddRow( Cell( 'A-one'   ), Cell( 'A-two'                   ), Cell( 'A-three' ) )
        table.AddRow( Cell( 'A-one'   ), Cell( 'A-two', span=2 ) )
        table.AddRow( Cell( 'A-one', span=3 ) )
        table.AddRow( Cell( 'A-one'   ), Cell( 'A-two'                   ), Cell( 'A-three' ) )
        table.AddRow( Cell( 'A-one', span=2 ), Cell( 'A-two' ) )
        section.append( table )
        return doc
Beispiel #6
0
    def make_tableFlowRightToLeft():
        doc, section, styles = RTFTestCase.initializeDoc()
        section.append( 'Table with content flowing right to left' )
        table = Table( TableTestCase.col4, TableTestCase.col1, TableTestCase.col2, TableTestCase.col3 )
        table.AddRow( Cell( 'one' ), Cell( 'two' ), Cell( 'three' ),
                      Cell( 'This is pretty amazing', flow=Cell.FLOW_RL_TB, start_vertical_merge=True ) )

        for i in range( 10 ) :	
            table.AddRow( Cell( 'one' ), Cell( 'two' ), Cell( 'three' ),
                          Cell( vertical_merge=True ))
        section.append( table )
        return doc
Beispiel #7
0
    def add_sentences_table(self, section):
        global LANGS
        p = Paragraph( self.ss.ParagraphStyles.Heading1 )
        p.append(TEXT('Example Sentences ({0})'.format(LANGS[self.lang]),bold=True))
        section.append( p )
        
        table = Table(TabPropertySet.DEFAULT_WIDTH * 1,
                      TabPropertySet.DEFAULT_WIDTH * 9,
                      TabPropertySet.DEFAULT_WIDTH * 3)
        
        thin_edge  = BorderPropertySet( width=10, style=BorderPropertySet.SINGLE )
        thick_edge = BorderPropertySet( width=80, style=BorderPropertySet.SINGLE )

        thin_frame  = FramePropertySet( thin_edge,  thin_edge,  thin_edge,  thin_edge )
        thick_frame = FramePropertySet( thick_edge, thick_edge, thick_edge, thick_edge )
        mixed_frame = FramePropertySet( thin_edge,  thick_edge, thin_edge,  thick_edge )
        
        h1 = self.cell("CM#",True)
        h2 = self.cell("Sentence",True)
        h3 = self.cell("Fragment",True)
        table.AddRow(h1,h2,h3)
        for (id, sent, frag, trans) in sorted(self.sentences,key=lambda key: float(key[0])):
            color=None
            # if there is a previous log, color new things red
            if self.plog:
                color=self.ss.Colours.Red
                if 'sentences' in self.plog:
                    for (lid, lsent, lfrag) in self.plog['sentences']:
                        if (rtf_encode(id)==lid) and (rtf_encode(sent)==lsent) and (rtf_encode(frag)==lfrag):
                            color=None
                            break
            c1 = self.cell(id, False, color)
            c2 = self.cell(sent, False, color)
            c3 = self.cell(frag, False, color)
            table.AddRow(c1,c2,c3)
            # put sentence translation on next line for non-EN and if trans is present
            if (self.lang != "en") and trans:
                c1 = self.cell("", False, color)
                c2 = self.cell(trans, False, color)
                c3 = self.cell("", False, color)
                table.AddRow(c1,c2,c3)
        section.append(table)
Beispiel #8
0
    def add_subdimensions_table(self, section):
        global LANGS
        p = Paragraph( self.ss.ParagraphStyles.Heading1 )
        p.append(TEXT('Proposed Common Program Sources and Source Sub-dimensions ({0})'.format(LANGS[self.lang]),bold=True))
        section.append( p )

        table = Table(TabPropertySet.DEFAULT_WIDTH * 1,
                      TabPropertySet.DEFAULT_WIDTH * 2,
                      TabPropertySet.DEFAULT_WIDTH * 3,
                      TabPropertySet.DEFAULT_WIDTH * 4,
                      TabPropertySet.DEFAULT_WIDTH * 3 )
              
        h1 = self.cell("CM#",True)
        h2 = self.cell("Target",True)
        h3 = self.cell("Semantic Clusters",True)
        h4 = self.cell("Source Sub-dimensions",True)
        h5 = self.cell("Source",True)
        table.AddRow(h1,h2,h3,h4,h5)
        for id in sorted(self.subdimensions, key=lambda key: float(key)):
            color=None
            # if there is a previous log, color new things red
            if self.plog:
                color=self.ss.Colours.Red
                if 'subdimensions' in self.plog:
                    if id in self.plog['subdimensions']:
                        color=None
            c1 = self.cell(id,False,color)
            c2 = self.cell(self.subdimensions[id][0],False,color)
            c3 = self.cell(self.subdimensions[id][1],False,color)
            c4 = self.cell(self.subdimensions[id][2],False,color)
            c5 = self.cell(self.subdimensions[id][3],False,color)
            table.AddRow(c1,c2,c3,c4,c5)
            if (self.lang=='fa') and (id in self.subdim_glosses):
                t1 = self.cell('',False,color)
                t2 = self.cell(self.subdim_glosses[id][0],False,color)
                t3 = self.cell(self.subdim_glosses[id][1],False,color)
                t4 = self.cell(self.subdim_glosses[id][2],False,color)
                t5 = self.cell(self.subdim_glosses[id][3],False,color)
                table.AddRow(t1,t2,t3,t4,t5)
        section.append(table)
Beispiel #9
0
def createSection(document, survey, request, first_page_number=1):
    t = lambda txt: "".join(
        ["\u%s?" % str(ord(e)) for e in translate(txt, context=request)])
    section = Section(break_type=Section.PAGE,
                      first_page_number=first_page_number)
    footer_txt = t(
        _("report_survey_revision",
            default=u"This report was based on the OiRA Tool '${title}' "\
                    u"of revision date ${date}.",
            mapping={"title": survey.published[1],
                    "date": formatDate(request, survey.published[2])}))

    header = Table(4750, 4750)
    c1 = Cell(
        Paragraph(document.StyleSheet.ParagraphStyles.Footer,
                  survey.published[1]))

    pp = ParagraphPropertySet
    header_props = pp(alignment=pp.RIGHT)
    c2 = Cell(
        Paragraph(document.StyleSheet.ParagraphStyles.Footer, header_props,
                  formatDate(request, datetime.today())))
    header.AddRow(c1, c2)
    section.Header.append(header)

    footer = Table(9000, 500)
    # rtfng does not like unicode footers
    c1 = Cell(
        Paragraph(document.StyleSheet.ParagraphStyles.Footer,
                  pp(alignment=pp.LEFT), footer_txt))

    c2 = Cell(Paragraph(pp(alignment=pp.RIGHT), PAGE_NUMBER))
    footer.AddRow(c1, c2)
    section.Footer.append(footer)
    document.Sections.append(section)
    return section
Beispiel #10
0
def createIdentificationReportSection(document, survey, request):
    t = lambda txt: "".join(
        ["\u%s?" % str(ord(e)) for e in translate(txt, context=request)])
    section = Section()

    footer_txt = t(
        _("report_identification_revision",
          default=u"This document was based on the OiRA Tool '${title}' of "
          u"revision date ${date}.",
          mapping={
              "title": survey.published[1],
              "date": formatDate(request, survey.published[2])
          }))
    header = Table(4750, 4750)
    c1 = Cell(
        Paragraph(document.StyleSheet.ParagraphStyles.Footer,
                  SessionManager.session.title))

    pp = ParagraphPropertySet
    header_props = pp(alignment=pp.RIGHT)
    c2 = Cell(
        Paragraph(document.StyleSheet.ParagraphStyles.Footer, header_props,
                  formatDate(request, datetime.today())))
    header.AddRow(c1, c2)
    section.Header.append(header)

    footer = Table(9000, 500)
    c1 = Cell(
        Paragraph(document.StyleSheet.ParagraphStyles.Footer,
                  pp(alignment=pp.LEFT), footer_txt))
    c2 = Cell(Paragraph(pp(alignment=pp.RIGHT), PAGE_NUMBER))
    footer.AddRow(c1, c2)
    section.Footer.append(footer)
    section.SetBreakType(section.PAGE)
    document.Sections.append(section)
    return section
Beispiel #11
0
    def test_tableAddRow(self):
        table = Table(1000)

        with pytest.raises(Exception):
            table.AddRow()       # no params at all

        table.AddRow(Cell('1'))  # one cell, ok

        with pytest.raises(Exception):
            table.AddRow(Cell('1'), Cell('1'))   # 2 cells, error

        with pytest.raises(Exception):
            table.AddRow(1)      # height but no cell, error

        table.AddRow(1, Cell('1'))   # height plus one cell, ok

        with pytest.raises(Exception):
            table.AddRow(1, Cell('1'),
                         Cell('1'))  # height with 2 cells, error
Beispiel #12
0
    def make_tables():
        doc, section, styles = RTFTestCase.initializeDoc()
        p = Paragraph( styles.ParagraphStyles.Heading1 )
        p.append( 'Example 3' )
        section.append( p )

        # changes what is now the default style of Heading1 back to Normal
        p = Paragraph( styles.ParagraphStyles.Normal )
        p.append( 'Example 3 demonstrates tables, tables represent one of the '
                  'harder things to control in RTF as they offer alot of '
                  'flexibility in formatting and layout.' )
        section.append( p )

        section.append( 'Table columns are specified in widths, the following example '
                        'consists of a table with 3 columns, the first column is '
                        '7 tab widths wide, the next two are 3 tab widths wide. '
                        'The widths chosen are arbitrary, they do not have to be '
                        'multiples of tab widths.' )

        table = Table( TabPropertySet.DEFAULT_WIDTH * 7,
                       TabPropertySet.DEFAULT_WIDTH * 3,
                       TabPropertySet.DEFAULT_WIDTH * 3 )
        c1 = Cell( Paragraph( 'Row One, Cell One'   ) )
        c2 = Cell( Paragraph( 'Row One, Cell Two'   ) )
        c3 = Cell( Paragraph( 'Row One, Cell Three' ) )
        table.AddRow( c1, c2, c3 )

        c1 = Cell( Paragraph( styles.ParagraphStyles.Heading2, 'Heading2 Style'   ) )
        c2 = Cell( Paragraph( styles.ParagraphStyles.Normal, 'Back to Normal Style'   ) )
        c3 = Cell( Paragraph( 'More Normal Style' ) )
        table.AddRow( c1, c2, c3 )

        c1 = Cell( Paragraph( styles.ParagraphStyles.Heading2, 'Heading2 Style'   ) )
        c2 = Cell( Paragraph( styles.ParagraphStyles.Normal, 'Back to Normal Style'   ) )
        c3 = Cell( Paragraph( 'More Normal Style' ) )
        table.AddRow( c1, c2, c3 )

        section.append( table )
        section.append( 'Different frames can also be specified for each cell in the table '
                        'and each frame can have a different width and style for each border.' )

        thin_edge  = BorderPropertySet( width=20, style=BorderPropertySet.SINGLE )
        thick_edge = BorderPropertySet( width=80, style=BorderPropertySet.SINGLE )

        thin_frame  = FramePropertySet( thin_edge,  thin_edge,  thin_edge,  thin_edge )
        thick_frame = FramePropertySet( thick_edge, thick_edge, thick_edge, thick_edge )
        mixed_frame = FramePropertySet( thin_edge,  thick_edge, thin_edge,  thick_edge )

        table = Table( TabPropertySet.DEFAULT_WIDTH * 3, TabPropertySet.DEFAULT_WIDTH * 3, TabPropertySet.DEFAULT_WIDTH * 3 )
        c1 = Cell( Paragraph( 'R1C1' ), thin_frame )
        c2 = Cell( Paragraph( 'R1C2' ) )
        c3 = Cell( Paragraph( 'R1C3' ), thick_frame )
        table.AddRow( c1, c2, c3 )

        c1 = Cell( Paragraph( 'R2C1' ) )
        c2 = Cell( Paragraph( 'R2C2' ) )
        c3 = Cell( Paragraph( 'R2C3' ) )
        table.AddRow( c1, c2, c3 )

        c1 = Cell( Paragraph( 'R3C1' ), mixed_frame )
        c2 = Cell( Paragraph( 'R3C2' ) )
        c3 = Cell( Paragraph( 'R3C3' ), mixed_frame )
        table.AddRow( c1, c2, c3 )

        section.append( table )

        section.append( 'In fact frames can be applied to paragraphs too, not just cells.' )

        p = Paragraph( styles.ParagraphStyles.Normal, thin_frame )
        p.append( 'This whole paragraph is in a frame.' )
        section.append( p )
        return doc
Beispiel #13
0
         "Biographical Sketch Format Page")
section.Footer.append(p)

# Put in the top table

table = Table(5310, 270, 1170, 1440, 2610)

p1 = Paragraph(ss.ParagraphStyles.Title, "BIOGRAPHICAL SKETCH")
p2 = Paragraph(ss.ParagraphStyles.Subtitle)
p2.append('Provide the following information for the Senior/key personnel ' \
    'and other significant contributors in the order listed on Form Page 2.')
p3 = Paragraph(ss.ParagraphStyles.Subtitle)
p3.append("Follow this format for each person.  ",
          B("DO NOT EXCEED FOUR PAGES."))
c = Cell(p1, p2, p3, topBottom, span=5)
table.AddRow(c)

c = Cell(Paragraph(ss.ParagraphStyles.Subtitle, ' '), bottom_frame, span=5)
table.AddRow(c)

p1 = Paragraph(ss.ParagraphStyles.SubtitleLeft, 'NAME')
p2 = Paragraph(ss.ParagraphStyles.Normal, person['first_name'], ' ',
               person['last_name'])
c1 = Cell(p1, p2, bottom_right_frame, span=2)
c2 = Cell(Paragraph(ss.ParagraphStyles.SubtitleLeft, 'POSITION TITLE'), span=3)
table.AddRow(c1, c2)

p1 = Paragraph(ss.ParagraphStyles.SubtitleLeft,
               'eRA COMMONS USER NAME (credential, e.g., agency login)')
p2 = Paragraph(ss.ParagraphStyles.Normal, person['era_commons'])
c1 = Cell(p1, p2, bottom_right_frame, span=2)
Beispiel #14
0
def generateReport(window, plot, evals, lagranges):
    """Save session report to rtf document
    """
    fileName = Qt.QFileDialog.getSaveFileName(window, u'Сохранить отчет', '.',
                                              'Word (*.doc)')
    if not fileName.isNull():
        doc = Document()
        #ss      = doc.StyleSheet
        section = Section()
        doc.Sections.append(section)

        minX, maxX, minY, maxY = plot.getBounds()

        section.append(u'Полотно растеризации:')
        section.append('')
        table = Table(TabPropertySet.DEFAULT_WIDTH, \
                      TabPropertySet.DEFAULT_WIDTH * 3, \
                      TabPropertySet.DEFAULT_WIDTH * 3)
        table.AddRow(Cell(Paragraph(u'ось')), Cell(Paragraph(u'от')),
                     Cell(Paragraph(u'до')))
        table.AddRow(Cell(Paragraph('x')), Cell(Paragraph(str(minX))),
                     Cell(Paragraph(str(maxX))))
        table.AddRow(Cell(Paragraph('y')), Cell(Paragraph(str(minY))),
                     Cell(Paragraph(str(maxY))))
        section.append(table)
        section.append(u'Детализация: %d %s на график' %
                       (plot.width(),
                        langMorph(plot.width(),
                                  (u'точек', u'точка', u'точки'))))

        section.append(Paragraph(getPlotImage(plot)))

        section.append('')
        section.append(u'%d %s:' %
                       (len(evals),
                        langMorph(len(evals),
                                  (u'функций', u'функция', u'функции'))))
        #for s in evals:
        #    section.append('f(x) = %s' % s)
        for i in evals:
            section.append('f(x) = %s' % i.getExpression())

        section.append('')
        section.append(u'%d %s Лагранжа' %
                       (len(lagranges),
                        langMorph(len(lagranges),
                                  (u'полиномов', u'полином', u'полинома'))))
        for i in lagranges:
            points = i.count()
            section.append(ur'\u2014' * 30)
            section.append(
                u'%d %s:' %
                (points, langMorph(points, (u'точек', u'точка', u'точки'))))
            table = Table(TabPropertySet.DEFAULT_WIDTH / 2, \
                          TabPropertySet.DEFAULT_WIDTH * 3, \
                          TabPropertySet.DEFAULT_WIDTH * 3)
            for j in xrange(points):
                table.AddRow(Cell(Paragraph('%d' % j)),
                             Cell(Paragraph('%g' % i.pointX[j])),
                             Cell(Paragraph('%g' % i.pointY[j])))
            section.append(table)
            section.append(u'L(x) = %s' % i.toString())

        Renderer().Write(doc, file(unicode(fileName), 'w'))
Beispiel #15
0
    def addMeasure(self, document, heading, section, measure):
        """ Requirements for how the measure section should be displayed are
            in #2611
        """
        t = lambda txt: "".join([
            "\u%s?" % str(ord(e)) for e in translate(txt, context=self.request)
        ])
        ss = document.StyleSheet
        styles = ss.ParagraphStyles

        table = Table(9500)
        thin_edge = BorderPropertySet(width=20, style=BorderPropertySet.SINGLE)
        no_edge = BorderPropertySet(width=0, colour=ss.Colours.White)
        p = Paragraph(styles.MeasureHeading,
                      ParagraphPropertySet(left_indent=300, right_indent=300),
                      t(_("header_measure_single", default=u"Measure")))
        c = Cell(p, FramePropertySet(thin_edge, thin_edge, no_edge, thin_edge))
        table.AddRow(c)

        ss = document.StyleSheet
        styles = document.StyleSheet.ParagraphStyles
        headings = [
            t(
                _("label_measure_action_plan",
                  default=u"General approach (to "
                  u"eliminate or reduce the risk)")),
            t(
                _("label_measure_prevention_plan",
                  default=u"Specific action(s) "
                  u"required to implement this approach")),
            t(
                _("label_measure_requirements",
                  default=u"Level of expertise "
                  u"and/or requirements needed")),
            t(
                _("label_action_plan_responsible",
                  default=u"Who is "
                  u"responsible?")),
            t(_("label_action_plan_budget", default=u"Budget")),
            t(_("label_action_plan_start", default=u"Planning start")),
            t(_("label_action_plan_end", default=u"Planning end")),
        ]
        m = measure
        values = [
            m.action_plan,
            m.prevention_plan,
            m.requirements,
            m.responsible,
            m.budget and str(m.budget) or '',
            m.planning_start and formatDate(self.request, m.planning_start)
            or '',
            m.planning_end and formatDate(self.request, m.planning_end) or '',
        ]
        for heading, value in zip(headings, values):
            p = Paragraph(styles.MeasureField, heading)
            c = Cell(p, FramePropertySet(no_edge, thin_edge, no_edge,
                                         thin_edge))
            table.AddRow(c)

            if headings.index(heading) == len(headings) - 1:
                frame = FramePropertySet(no_edge, thin_edge, thin_edge,
                                         thin_edge)
            else:
                frame = FramePropertySet(no_edge, thin_edge, no_edge,
                                         thin_edge)

            p = Paragraph(
                styles.Normal,
                ParagraphPropertySet(left_indent=600, right_indent=600), value)
            c = Cell(p, frame)
            table.AddRow(c)

        section.append(table)
Beispiel #16
0
def createItalianIntro(document, survey, request):
    t = lambda txt: "".join(
        ["\u%s?" % str(ord(e)) for e in translate(txt, context=request)])
    ss = document.StyleSheet
    pp = ParagraphPropertySet
    section = Section(break_type=Section.PAGE, first_page_number=1)
    footer_txt = t(
        u"1) Il documento deve essere munito di “data certa” o attestata dalla "
        "sottoscrizione del documento, ai soli fini della prova della data, "
        "da parte del RSPP, RLS o RLST, e del medico competente, ove nominato. In "
        "assenza di MC o RLS o RLST, la data certa va documentata con PEC o altra "
        "forma prevista dalla legge.")
    section.append(Paragraph(LINE))
    section.append(Paragraph(LINE))
    section.append(Paragraph(LINE))
    section.append(Paragraph(LINE))
    section.append(
        Paragraph(
            ss.ParagraphStyles.ITTitle,
            pp(alignment=pp.CENTER),
            t(u"Azienda ....................."),
        ))
    section.append(Paragraph(LINE))
    section.append(Paragraph(LINE))
    section.append(Paragraph(LINE))
    section.append(Paragraph(LINE))
    dots = u"……………………………………"
    section.append(
        Paragraph(
            ss.ParagraphStyles.ITSubtitle,
            pp(alignment=pp.CENTER),
            t(u"DOCUMENTO DI VALUTAZIONE DEI RISCHI"),
        ))
    section.append(Paragraph(LINE))
    section.append(
        Paragraph(
            ss.ParagraphStyles.ITSubSubtitle,
            pp(alignment=pp.CENTER),
            t(u"(artt. 17, 28  D.Lgs. 81/08)"),
        ))
    section.append(Paragraph(LINE))
    section.append(Paragraph(LINE))
    section.append(Paragraph(LINE))
    section.append(Paragraph(LINE))

    data1 = Table(4750, 4750)
    c1 = Cell(
        Paragraph(ss.ParagraphStyles.ITNormalBold, pp(alignment=pp.LEFT),
                  t(u"Data (1), {}".format(dots))))
    c2 = Cell(
        Paragraph(ss.ParagraphStyles.ITNormalBold, pp(alignment=pp.LEFT),
                  t(u"")))
    data1.AddRow(c1, c2)
    c1 = Cell(
        Paragraph(ss.ParagraphStyles.ITNormalBold, pp(alignment=pp.LEFT),
                  t(u"Datore di lavoro:")))
    c2 = Cell(
        Paragraph(ss.ParagraphStyles.ITNormalBold, pp(alignment=pp.LEFT),
                  t(dots)))
    data1.AddRow(c1, c2)
    section.append(data1)
    section.append(Paragraph(LINE))
    section.append(
        Paragraph(
            ss.ParagraphStyles.ITNormalBold,
            pp(alignment=pp.CENTER),
            t(u"Se necessario, ai soli fini della prova della data:"),
        ))

    section.append(Paragraph(LINE))
    data2 = Table(4750, 4750)
    c1 = Cell(
        Paragraph(ss.ParagraphStyles.ITNormalBold, pp(alignment=pp.LEFT),
                  t(u"RSPP")))
    c2 = Cell(
        Paragraph(ss.ParagraphStyles.ITNormalBold, pp(alignment=pp.LEFT),
                  t(dots)))
    data2.AddRow(c1, c2)
    c1 = Cell(
        Paragraph(ss.ParagraphStyles.ITNormalBold, pp(alignment=pp.LEFT),
                  t(u"Medico Competente (ove nominato)")))
    c2 = Cell(
        Paragraph(ss.ParagraphStyles.ITNormalBold, pp(alignment=pp.LEFT),
                  t(dots)))
    data2.AddRow(c1, c2)
    c1 = Cell(
        Paragraph(ss.ParagraphStyles.ITNormalBold, pp(alignment=pp.LEFT),
                  t(u"RLS/RLST")))
    c2 = Cell(
        Paragraph(ss.ParagraphStyles.ITNormalBold, pp(alignment=pp.LEFT),
                  t(dots)))
    data2.AddRow(c1, c2)
    section.append(data2)

    footer = Table(9500)
    # rtfng does not like unicode footers
    c1 = Cell(
        Paragraph(ss.ParagraphStyles.Footer, pp(alignment=pp.LEFT),
                  footer_txt))

    # c2 = Cell(Paragraph(pp(alignment=pp.RIGHT), PAGE_NUMBER))
    footer.AddRow(c1)
    section.Footer.append(footer)
    document.Sections.append(section)
    return section