Exemple #1
0
    def test0(self):
        """Test...

        The story should contain...

        Features to be visually confirmed by a human being are:

            1. ...
            2. ...
            3. ...
        """

        story = []

        #need a style
        styNormal = ParagraphStyle('normal')
        styGreen = ParagraphStyle('green',parent=styNormal,textColor=green)

        # some to test
        stySpaced = ParagraphStyle('spaced',
                                   parent=styNormal,
                                   spaceBefore=12,
                                   spaceAfter=12)


        story.append(
            Paragraph("This is a normal paragraph. "
                      + randomText(), styNormal))
        story.append(
            Paragraph("There follows a paragraph with only \"<br/&gt\"", styNormal))
        story.append(Paragraph("<br/>", styNormal))
        story.append(
            Paragraph("This has 12 points space before and after, set in the style. "
                      + randomText(), stySpaced))
        story.append(
            Paragraph("This is normal. " +
                      randomText(), styNormal))

        story.append(
            Paragraph("""<para spacebefore="12" spaceafter="12">
            This has 12 points space before and after, set inline with
            XML tag.  It works too.""" + randomText() + "</para",
                      styNormal))

        story.append(
            Paragraph("This is normal. " +
                      randomText(), styNormal))

        styBackground = ParagraphStyle('MyTitle',
                                       fontName='Helvetica-Bold',
                                       fontSize=24,
                                       leading=28,
                                       textColor=white,
                                       backColor=navy)
        story.append(
            Paragraph("This is a title with a background. ", styBackground))

        story.append(
            Paragraph("""<para backcolor="pink">This got a background from the para tag</para>""", styNormal))


        story.append(
            Paragraph("""<para>\n\tThis has newlines and tabs on the front but inside the para tag</para>""", styNormal))
        story.append(
            Paragraph("""<para>  This has spaces on the front but inside the para tag</para>""", styNormal))

        story.append(
            Paragraph("""\n\tThis has newlines and tabs on the front but no para tag""", styNormal))
        story.append(
            Paragraph("""  This has spaces on the front but no para tag""", styNormal))

        story.append(Paragraph("""This has <font color=blue>blue text</font> here.""", styNormal))
        story.append(Paragraph("""This has <i>italic text</i> here.""", styNormal))
        story.append(Paragraph("""This has <b>bold text</b> here.""", styNormal))
        story.append(Paragraph("""This has <u>underlined text</u> here.""", styNormal))
        story.append(Paragraph("""This has <font color=blue><u>blue and <font color=red>red</font> underlined text</u></font> here.""", styNormal))
        story.append(Paragraph("""<u>green underlining</u>""", styGreen))
        story.append(Paragraph("""<u>green <font size=+4><i>underlining</font></i></u>""", styGreen))
        story.append(Paragraph("""This has m<super>2</super> a superscript.""", styNormal))
        story.append(Paragraph("""This has m<sub>2</sub> a subscript. Like H<sub>2</sub>O!""", styNormal))
        story.append(Paragraph("""This has a font change to <font name=Helvetica>Helvetica</font>.""", styNormal))
        #This one fails:
        #story.append(Paragraph("""This has a font change to <font name=Helvetica-Oblique>Helvetica-Oblique</font>.""", styNormal))
        story.append(Paragraph("""This has a font change to <font name=Helvetica><i>Helvetica in italics</i></font>.""", styNormal))

        story.append(Paragraph('''This one uses upper case tags and has set caseSensitive=0: Here comes <FONT FACE="Helvetica" SIZE="14pt">Helvetica 14</FONT> with <STRONG>strong</STRONG> <EM>emphasis</EM>.''', styNormal, caseSensitive=0))
        story.append(Paragraph('''The same as before, but has set not set caseSensitive, thus the tags are ignored: Here comes <FONT FACE="Helvetica" SIZE="14pt">Helvetica 14</FONT> with <STRONG>strong</STRONG> <EM>emphasis</EM>.''', styNormal))
        story.append(Paragraph('''This one uses fonts with size "14pt" and also uses the em and strong tags: Here comes <font face="Helvetica" size="14pt">Helvetica 14</font> with <Strong>strong</Strong> <em>emphasis</em>.''', styNormal, caseSensitive=0))
        story.append(Paragraph('''This uses a font size of 3cm: Here comes <font face="Courier" size="3cm">Courier 3cm</font> and normal again.''', styNormal, caseSensitive=0))
        story.append(Paragraph('''This is just a very long silly text to see if the <FONT face="Courier">caseSensitive</FONT> flag also works if the paragraph is <EM>very</EM> long. '''*20, styNormal, caseSensitive=0))
        story.append(Indenter("1cm"))
        story.append(Paragraph("<para><bullet bulletIndent='-1cm' bulletOffsetY='2'><seq id='s0'/>)</bullet>Indented list bulletOffsetY=2. %s</para>" % randomText(), styNormal))
        story.append(Paragraph("<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>" % randomText(), styNormal))
        story.append(Paragraph("<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>" % randomText(), styNormal))
        story.append(Indenter("1cm"))
        story.append(XPreformatted("<para leftIndent='0.5cm' backcolor=pink><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list.</para>", styNormal))
        story.append(XPreformatted("<para leftIndent='0.5cm' backcolor=palegreen><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list.</para>", styNormal))
        story.append(Indenter("-1cm"))
        story.append(Paragraph("<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>" % randomText(), styNormal))
        story.append(Indenter("-1cm"))
        story.append(Paragraph("<para>Indented list using seqChain/Format<seqChain order='s0 s1 s2 s3 s4'/><seqReset id='s0'/><seqFormat id='s0' value='1'/><seqFormat id='s1' value='a'/><seqFormat id='s2' value='i'/><seqFormat id='s3' value='A'/><seqFormat id='s4' value='I'/></para>", stySpaced))
        story.append(Indenter("1cm"))
        story.append(Paragraph("<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>" % randomText(), styNormal))
        story.append(Paragraph("<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>" % randomText(), styNormal))
        story.append(Paragraph("<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>" % randomText(), styNormal))
        story.append(Indenter("1cm"))
        story.append(XPreformatted("<para backcolor=pink boffsety='-3'><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list bulletOffsetY=-3.</para>", styNormal))
        story.append(XPreformatted("<para backcolor=pink><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list.</para>", styNormal))
        story.append(Indenter("-1cm"))
        story.append(Paragraph("<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>" % randomText(), styNormal))
        story.append(Indenter("1cm"))
        story.append(XPreformatted("<para backcolor=palegreen><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list.</para>", styNormal))
        story.append(Indenter("1cm"))
        story.append(XPreformatted("<para><bullet bulletIndent='-1cm'><seq id='s2'/>)</bullet>Indented list. line1</para>", styNormal))
        story.append(XPreformatted("<para><bullet bulletIndent='-1cm'><seq id='s2'/>)</bullet>Indented list. line2</para>", styNormal))
        story.append(Indenter("-1cm"))
        story.append(XPreformatted("<para backcolor=palegreen><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list.</para>", styNormal))
        story.append(Indenter("-1cm"))
        story.append(Indenter("-1cm"))

        template = SimpleDocTemplate(outputfile('test_paragraphs.pdf'),
                                     showBoundary=1)
        template.build(story,
            onFirstPage=myFirstPage, onLaterPages=myLaterPages)
    def test0(self):
        """Test...

        The story should contain...

        Features to be visually confirmed by a human being are:

            1. ...
            2. ...
            3. ...
        """

        story = []
        SA = story.append

        #need a style
        styNormal = ParagraphStyle('normal')
        styGreen = ParagraphStyle('green', parent=styNormal, textColor=green)

        styDots = ParagraphStyle('styDots', parent=styNormal, endDots='.')
        styDots1 = ParagraphStyle('styDots1',
                                  parent=styNormal,
                                  endDots=ABag(text=' -',
                                               dy=2,
                                               textColor='red'))
        styDotsR = ParagraphStyle('styDotsR',
                                  parent=styNormal,
                                  alignment=TA_RIGHT,
                                  endDots=' +')
        styDotsC = ParagraphStyle('styDotsC',
                                  parent=styNormal,
                                  alignment=TA_CENTER,
                                  endDots=' *')
        styDotsJ = ParagraphStyle('styDotsJ',
                                  parent=styNormal,
                                  alignment=TA_JUSTIFY,
                                  endDots=' =')

        istyDots = ParagraphStyle('istyDots',
                                  parent=styNormal,
                                  firstLineIndent=12,
                                  leftIndent=6,
                                  endDots='.')
        istyDots1 = ParagraphStyle('istyDots1',
                                   parent=styNormal,
                                   firstLineIndent=12,
                                   leftIndent=6,
                                   endDots=ABag(text=' -',
                                                dy=2,
                                                textColor='red'))
        istyDotsR = ParagraphStyle('istyDotsR',
                                   parent=styNormal,
                                   firstLineIndent=12,
                                   leftIndent=6,
                                   alignment=TA_RIGHT,
                                   endDots=' +')
        istyDotsC = ParagraphStyle('istyDotsC',
                                   parent=styNormal,
                                   firstLineIndent=12,
                                   leftIndent=6,
                                   alignment=TA_CENTER,
                                   endDots=' *')
        istyDotsJ = ParagraphStyle('istyDotsJ',
                                   parent=styNormal,
                                   firstLineIndent=12,
                                   leftIndent=6,
                                   alignment=TA_JUSTIFY,
                                   endDots=' =')

        styNormalCJK = ParagraphStyle('normal', wordWrap='CJK')
        styDotsCJK = ParagraphStyle('styDots',
                                    parent=styNormalCJK,
                                    endDots='.')
        styDots1CJK = ParagraphStyle('styDots1',
                                     parent=styNormalCJK,
                                     endDots=ABag(text=' -',
                                                  dy=2,
                                                  textColor='red'))
        styDotsRCJK = ParagraphStyle('styDotsR',
                                     parent=styNormalCJK,
                                     alignment=TA_RIGHT,
                                     endDots=' +')
        styDotsCCJK = ParagraphStyle('styDotsC',
                                     parent=styNormalCJK,
                                     alignment=TA_CENTER,
                                     endDots=' *')
        styDotsJCJK = ParagraphStyle('styDotsJ',
                                     parent=styNormalCJK,
                                     alignment=TA_JUSTIFY,
                                     endDots=' =')

        istyDotsCJK = ParagraphStyle('istyDots',
                                     parent=styNormalCJK,
                                     firstLineIndent=12,
                                     leftIndent=6,
                                     endDots='.')
        istyDots1CJK = ParagraphStyle('istyDots1',
                                      parent=styNormalCJK,
                                      firstLineIndent=12,
                                      leftIndent=6,
                                      endDots=ABag(text=' -',
                                                   dy=2,
                                                   textColor='red'))
        istyDotsRCJK = ParagraphStyle('istyDotsR',
                                      parent=styNormalCJK,
                                      firstLineIndent=12,
                                      leftIndent=6,
                                      alignment=TA_RIGHT,
                                      endDots=' +')
        istyDotsCCJK = ParagraphStyle('istyDotsC',
                                      parent=styNormalCJK,
                                      firstLineIndent=12,
                                      leftIndent=6,
                                      alignment=TA_CENTER,
                                      endDots=' *')
        istyDotsJCJK = ParagraphStyle('istyDotsJ',
                                      parent=styNormalCJK,
                                      firstLineIndent=12,
                                      leftIndent=6,
                                      alignment=TA_JUSTIFY,
                                      endDots=' =')

        # some to test
        stySpaced = ParagraphStyle('spaced',
                                   parent=styNormal,
                                   spaceBefore=12,
                                   spaceAfter=12)

        SA(Paragraph("This is a normal paragraph. " + randomText(), styNormal))
        SA(
            Paragraph("There follows a paragraph with only \"&lt;br/&gt;\"",
                      styNormal))
        SA(Paragraph("<br/>", styNormal))
        SA(
            Paragraph(
                "This has 12 points space before and after, set in the style. "
                + randomText(), stySpaced))
        SA(Paragraph("This is normal. " + randomText(), styNormal))
        SA(
            Paragraph(
                """<para spacebefore="12" spaceafter="12">
            This has 12 points space before and after, set inline with
            XML tag.  It works too.""" + randomText() + "</para>", styNormal))

        SA(Paragraph("This is normal. " + randomText(), styNormal))

        styBackground = ParagraphStyle('MyTitle',
                                       fontName='Helvetica-Bold',
                                       fontSize=24,
                                       leading=28,
                                       textColor=white,
                                       backColor=navy)
        SA(Paragraph("This is a title with a background. ", styBackground))
        SA(
            Paragraph(
                """<para backcolor="pink">This got a background from the para tag</para>""",
                styNormal))
        SA(
            Paragraph(
                """<para>\n\tThis has newlines and tabs on the front but inside the para tag</para>""",
                styNormal))
        SA(
            Paragraph(
                """<para>  This has spaces on the front but inside the para tag</para>""",
                styNormal))
        SA(
            Paragraph(
                """\n\tThis has newlines and tabs on the front but no para tag""",
                styNormal))
        SA(
            Paragraph("""  This has spaces on the front but no para tag""",
                      styNormal))
        SA(
            Paragraph("""This has <font color=blue>blue text</font> here.""",
                      styNormal))
        SA(Paragraph("""This has <i>italic text</i> here.""", styNormal))
        SA(Paragraph("""This has <b>bold text</b> here.""", styNormal))
        SA(Paragraph("""This has <u>underlined text</u> here.""", styNormal))
        SA(
            Paragraph(
                """This has <font color=blue><u>blue and <font color=red>red</font> underlined text</u></font> here.""",
                styNormal))
        SA(Paragraph("""<u>green underlining</u>""", styGreen))
        SA(
            Paragraph(
                """<u>green <font size="+4"><i>underlining</i></font></u>""",
                styGreen))
        SA(
            Paragraph("""This has m<super>2</super> a superscript.""",
                      styNormal))
        SA(
            Paragraph(
                """This has m<sub>2</sub> a subscript. Like H<sub>2</sub>O!""",
                styNormal))
        SA(
            Paragraph(
                """This has a font change to <font name=Helvetica>Helvetica</font>.""",
                styNormal))
        #This one fails:
        #SA(Paragraph("""This has a font change to <font name=Helvetica-Oblique>Helvetica-Oblique</font>.""", styNormal))
        SA(
            Paragraph(
                """This has a font change to <font name=Helvetica><i>Helvetica in italics</i></font>.""",
                styNormal))

        SA(
            Paragraph(
                '''This one uses upper case tags and has set caseSensitive=0: Here comes <FONT FACE="Helvetica" SIZE="14pt">Helvetica 14</FONT> with <STRONG>strong</STRONG> <EM>emphasis</EM>.''',
                styNormal,
                caseSensitive=0))
        SA(
            Paragraph(
                '''The same as before, but has set not set caseSensitive, thus the tags are ignored: Here comes <FONT FACE="Helvetica" SIZE="14pt">Helvetica 14</FONT> with <STRONG>strong</STRONG> <EM>emphasis</EM>.''',
                styNormal))
        SA(
            Paragraph(
                '''This one uses fonts with size "14pt" and also uses the em and strong tags: Here comes <font face="Helvetica" size="14pt">Helvetica 14</font> with <Strong>strong</Strong> <em>emphasis</em>.''',
                styNormal,
                caseSensitive=0))
        SA(
            Paragraph(
                '''This uses a font size of 3cm: Here comes <font face="Courier" size="3cm">Courier 3cm</font> and normal again.''',
                styNormal,
                caseSensitive=0))
        SA(
            Paragraph(
                '''This is just a very long silly text to see if the <FONT face="Courier">caseSensitive</FONT> flag also works if the paragraph is <EM>very</EM> long. '''
                * 20,
                styNormal,
                caseSensitive=0))

        SA(Indenter("1cm"))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2'>1.1</bullet>sample bullet default anchor</para>",
                styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2'>1.22</bullet>sample bullet default anchor</para>",
                styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2' anchor='start'>1.1</bullet>sample bullet start align</para>",
                styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2' anchor='start'>1.22</bullet>sample bullet start align</para>",
                styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2' anchor='middle'>1.1</bullet>sample bullet middle align</para>",
                styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2' anchor='middle'>1.22</bullet>sample bullet middle align</para>",
                styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2' anchor='end'>1.1</bullet>sample bullet end align</para>",
                styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2' anchor='end'>1.22</bullet>sample bullet end align</para>",
                styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2' anchor='numeric'>1.1</bullet>sample bullet numeric align</para>",
                styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2' anchor='numeric'>1.22</bullet>sample bullet numeric align</para>",
                styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-0.7cm' bulletOffsetY='2' anchor='numeric'><span color='red'>1</span><span color='green'>.</span><span color='blue'>3</span></bullet>sample bullet numeric align</para>",
                styNormal))

        SA(
            Paragraph(
                "<para><bullet bulletIndent='-1cm' bulletOffsetY='2'><seq id='s0'/>)</bullet>Indented list bulletOffsetY=2. %s</para>"
                % randomText(), styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>"
                % randomText(), styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>"
                % randomText(), styNormal))
        SA(Indenter("1cm"))
        SA(
            XPreformatted(
                "<para leftIndent='0.5cm' backcolor=pink><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list.</para>",
                styNormal))
        SA(
            XPreformatted(
                "<para leftIndent='0.5cm' backcolor=palegreen><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list.</para>",
                styNormal))
        SA(Indenter("-1cm"))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>"
                % randomText(), styNormal))
        SA(Indenter("-1cm"))
        SA(
            Paragraph(
                "<para>Indented list using seqChain/Format<seqChain order='s0 s1 s2 s3 s4'/><seqReset id='s0'/><seqFormat id='s0' value='1'/><seqFormat id='s1' value='a'/><seqFormat id='s2' value='i'/><seqFormat id='s3' value='A'/><seqFormat id='s4' value='I'/></para>",
                stySpaced))
        SA(Indenter("1cm"))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>"
                % randomText(), styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>"
                % randomText(), styNormal))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>"
                % randomText(), styNormal))
        SA(Indenter("1cm"))
        SA(
            XPreformatted(
                "<para backcolor=pink boffsety='-3'><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list bulletOffsetY=-3.</para>",
                styNormal))
        SA(
            XPreformatted(
                "<para backcolor=pink><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list.</para>",
                styNormal))
        SA(Indenter("-1cm"))
        SA(
            Paragraph(
                "<para><bullet bulletIndent='-1cm'><seq id='s0'/>)</bullet>Indented list. %s</para>"
                % randomText(), styNormal))
        SA(Indenter("1cm"))
        SA(
            XPreformatted(
                "<para backcolor=palegreen><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list.</para>",
                styNormal))
        SA(Indenter("1cm"))
        SA(
            XPreformatted(
                "<para><bullet bulletIndent='-1cm'><seq id='s2'/>)</bullet>Indented list. line1</para>",
                styNormal))
        SA(
            XPreformatted(
                "<para><bullet bulletIndent='-1cm'><seq id='s2'/>)</bullet>Indented list. line2</para>",
                styNormal))
        SA(Indenter("-1cm"))
        SA(
            XPreformatted(
                "<para backcolor=palegreen><bullet bulletIndent='-1cm'><seq id='s1'/>)</bullet>Indented list.</para>",
                styNormal))
        SA(Indenter("-1cm"))
        SA(Indenter("-1cm"))

        for i in range(2):
            SA(PageBreak())
            SA(
                Paragraph(
                    '''%s dotted paragraphs''' % (i and 'CJK' or 'Normal'),
                    styNormal))
            SA(
                Paragraph('''Simple paragraph with dots''', i and styDotsCJK
                          or styDots))
            SA(
                Paragraph('''Simple indented paragraph with dots''',
                          i and istyDotsCJK or istyDots))
            SA(
                Paragraph('''Simple centred paragraph with stars''',
                          i and styDotsCCJK or styDotsC))
            SA(
                Paragraph('''Simple centred indented paragraph with stars''',
                          i and istyDotsCCJK or istyDotsC))
            SA(
                Paragraph(
                    '''Simple right justified paragraph with pluses, but no pluses''',
                    i and styDotsRCJK or styDotsR))
            SA(
                Paragraph(
                    '''Simple right justified indented paragraph with pluses, but no pluses''',
                    i and istyDotsRCJK or istyDotsR))
            SA(
                Paragraph('''Simple justified paragraph with equals''',
                          i and styDotsJCJK or styDotsJ))
            SA(
                Paragraph(
                    '''Simple justified indented paragraph with equals''',
                    i and istyDotsJCJK or istyDotsJ))
            SA(
                Paragraph('''A longer simple paragraph with dots''',
                          i and styDotsCJK or styDots))
            SA(
                Paragraph('''A longer simple indented paragraph with dots''',
                          i and istyDotsCJK or istyDots))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' simple paragraph with dots', i and styDotsCJK
                    or styDots))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' simple indented paragraph with dots', i and istyDotsCJK
                    or istyDots))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' centred simple paragraph with stars', i and styDotsCCJK
                    or styDotsC))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' centred simple indented paragraph with stars',
                    i and istyDotsCCJK or istyDotsC))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' right justified simple paragraph with pluses, but no pluses',
                    i and styDotsRCJK or styDotsR))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' right justified simple indented paragraph with pluses, but no pluses',
                    i and istyDotsRCJK or istyDotsR))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' justified simple paragraph with equals',
                    i and styDotsJCJK or styDotsJ))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' justified simple indented paragraph with equals',
                    i and istyDotsJCJK or istyDotsJ))
            SA(
                Paragraph(
                    '''Simple paragraph with dashes that have a dy and a textColor.''',
                    i and styDots1CJK or styDots1))
            SA(
                Paragraph(
                    '''Simple indented paragraph with dashes that have a dy and a textColor.''',
                    i and istyDots1CJK or istyDots1))
            SA(
                Paragraph(
                    '''Complex <font color="green">paragraph</font> with dots''',
                    i and styDotsCJK or styDots))
            SA(
                Paragraph(
                    '''Complex <font color="green">indented paragraph</font> with dots''',
                    i and istyDotsCJK or istyDots))
            SA(
                Paragraph(
                    '''Complex centred <font color="green">paragraph</font> with stars''',
                    i and styDotsCCJK or styDotsC))
            SA(
                Paragraph(
                    '''Complex centred <font color="green">indented paragraph</font> with stars''',
                    i and istyDotsCCJK or istyDotsC))
            SA(
                Paragraph(
                    '''Complex right justfied <font color="green">paragraph</font> with pluses, but no pluses''',
                    i and styDotsRCJK or styDotsR))
            SA(
                Paragraph(
                    '''Complex right justfied <font color="green">indented paragraph</font> with pluses, but no pluses''',
                    i and istyDotsRCJK or istyDotsR))
            SA(
                Paragraph(
                    '''Complex justfied <font color="green">paragraph</font> with equals''',
                    i and styDotsJCJK or styDotsJ))
            SA(
                Paragraph(
                    '''Complex justfied <font color="green">indented paragraph</font> with equals''',
                    i and istyDotsJCJK or istyDotsJ))
            SA(
                Paragraph(
                    '''A longer complex <font color="green">paragraph</font> with dots''',
                    i and styDotsCJK or styDots))
            SA(
                Paragraph(
                    '''A longer complex <font color="green">indented paragraph</font> with dots''',
                    i and istyDotsCJK or istyDots))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' complex <font color="green">paragraph</font> with dots',
                    i and styDotsCJK or styDots))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' complex <font color="green">indented paragraph</font> with dots',
                    i and istyDotsCJK or istyDots))
            SA(
                Paragraph(
                    '''Complex <font color="green">paragraph</font> with dashes that have a dy and a textColor.''',
                    i and styDots1CJK or styDots1))
            SA(
                Paragraph(
                    '''Complex <font color="green">indented paragraph</font> with dashes that have a dy and a textColor.''',
                    i and istyDots1CJK or istyDots1))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' centred complex <font color="green">paragraph</font> with stars',
                    i and styDotsCCJK or styDotsC))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' centred complex <font color="green">indented paragraph</font> with stars',
                    i and istyDotsCCJK or istyDotsC))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' right justified <font color="green">complex</font> paragraph with pluses, but no pluses',
                    i and styDotsRCJK or styDotsR))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' right justified <font color="green">complex</font> indented paragraph with pluses, but no pluses',
                    i and istyDotsRCJK or istyDotsR))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' justified complex <font color="green">paragraph</font> with equals',
                    i and styDotsJCJK or styDotsJ))
            SA(
                Paragraph(
                    'A very much' + 50 * ' longer' +
                    ' justified complex <font color="green">indented paragraph</font> with equals',
                    i and istyDotsJCJK or istyDotsJ))

        template = SimpleDocTemplate(outputfile('test_paragraphs.pdf'),
                                     showBoundary=1)
        template.build(story,
                       onFirstPage=myFirstPage,
                       onLaterPages=myLaterPages)