def makertf(): import gluon.contrib.pyrtf as q doc = q.Document() section = q.Section() doc.Sections.append(section) section.append('Section Title') section.append('web2py is great. ' * 100) response.headers['Content-Type'] = 'text/rtf' return q.dumps(doc)
def series_export_word(widget_list, lang_dict, title, logo): """ Export a Series in RTF Format @ToDo: rewrite as S3Method handler """ import gluon.contrib.pyrtf as pyrtf from io import BytesIO output = BytesIO() doc = pyrtf.Document(default_language=pyrtf.Languages.EnglishUK) section = pyrtf.Section() ss = doc.StyleSheet ps = ss.ParagraphStyles.Normal.Copy() ps.SetName("NormalGrey") ps.SetShadingPropertySet( pyrtf.ShadingPropertySet(pattern=1, background=pyrtf.Colour( "grey light", 224, 224, 224))) ss.ParagraphStyles.append(ps) ps = ss.ParagraphStyles.Normal.Copy() ps.SetName("NormalCentre") ps.SetParagraphPropertySet(pyrtf.ParagraphPropertySet(alignment=3)) ss.ParagraphStyles.append(ps) doc.Sections.append(section) heading = pyrtf.Paragraph(ss.ParagraphStyles.Heading1) if logo: image = pyrtf.Image(logo) heading.append(image) heading.append(title) section.append(heading) col = [2800, 6500] table = pyrtf.Table(*col) AddRow = table.AddRow sorted_widget_list = sorted(widget_list.values(), key=lambda widget: widget.question.posn) for widget in sorted_widget_list: line = widget.writeQuestionToRTF(ss, lang_dict) try: AddRow(*line) except: if settings.base.debug: raise pass section.append(table) renderer = pyrtf.Renderer() renderer.Write(doc, output) return output