示例#1
0
def test():
    r = Report(None)
    print r
    h1 = PS(name='Heading1', fontSize=14, leading=16)
    h2 = PS(name='Heading2', fontSize=12, leading=14, leftIndent=1 * cm)

    doc = ReportTemplate('mintoc.pdf')
    # Build story.
    story = []

    story.append(
        MasterInfo(
            fullname='Full Name',
            case_number='1234567',
            room_number='OPD',
            age='23',
            gender='F',
            date=datetime.datetime.today().date(),
            leftmargin=10,
            rightmargin=10,
        ))
    story.append(PageBreak())
    story.append(Paragraph('First heading', h1))
    story.append(Paragraph('Text in first heading', PS('body')))
    story.append(Paragraph('First sub heading', h2))
    story.append(Paragraph('Text in first sub heading', PS('body')))
    story.append(PageBreak())
    story.append(Paragraph('Second sub heading', h2))
    story.append(Paragraph('Text in second sub heading', PS('body')))
    story.append(Paragraph('Last heading', h1))
    # story.append(header)

    doc.multiBuild(story)
    def add_catalog_title(self, title):
        # self.obj.append(BookMark(title, level=0))
        self.obj.append(Paragraph('<b>' + title + '</b>', headstyle))

        toc = TableOfContents()
        toc.levelStyles = [
            PS(fontName='song',
               fontSize=10,
               name='TOCHeading1',
               leftIndent=10,
               firstLineIndent=-20,
               spaceBefore=0,
               leading=12),
            PS(fontName='song',
               fontSize=10,
               name='TOCHeading2',
               leftIndent=20,
               firstLineIndent=-20,
               spaceBefore=0,
               leading=12),
            PS(fontName='song',
               fontSize=10,
               name='TOCHeading3',
               leftIndent=30,
               firstLineIndent=-20,
               spaceBefore=0,
               leading=12),
        ]
        self.obj.append(toc)
示例#3
0
    def __init__(self, doc):
        self.docname = doc
        self.page_counter = 2
        self.w, self.h = letter
        self.doc = BaseDocTemplate(self.docname, pagesize=letter)
        self.landscape = Frame(self.doc.leftMargin,
                               self.doc.bottomMargin,
                               self.doc.height,
                               self.doc.width,
                               id="Normal")

        self.portrait = Frame(self.doc.leftMargin,
                              self.doc.bottomMargin,
                              self.doc.width,
                              self.doc.height,
                              id="Normal")

        self.tportrait = Frame(self.doc.leftMargin,
                               self.doc.bottomMargin,
                               self.doc.width,
                               self.doc.height,
                               id="Normal")
        ttemplate = PageTemplate(id='tportrait',
                                 frames=self.tportrait,
                                 onPage=self.make_title_page)
        ptemplate = PageTemplate(id='portrait',
                                 frames=self.portrait,
                                 onPage=self.make_portrait)
        ltemplate = PageTemplate(id='landscape',
                                 frames=self.landscape,
                                 onPage=self.make_landscape)
        self.doc.addPageTemplates([ttemplate, ptemplate, ltemplate])
        self.styles = getSampleStyleSheet()

        self.start = ""
        self.end = ""
        self.story = []
        self.pgType = "Letter"
        self.image = ""
        self.cimage = ""
        self.client = ""

        self.toc = TableOfContents()
        self.toc.levelStyles = [
            PS(fontName='Times-Bold',
               fontSize=10,
               name='TOCHeading1',
               leftIndent=20,
               firstLineIndent=-20,
               spaceBefore=10,
               leading=16),
            PS(fontSize=10,
               name='TOCHeading2',
               leftIndent=40,
               firstLineIndent=-20,
               spaceBefore=5,
               leading=12),
        ]
示例#4
0
def fun(details, data):
    doc = SimpleDocTemplate("Report.pdf", pagesize=letter)

    h3 = PS(name='Heading1',
            fontSize=24,
            leading=230,
            leftIndent=150,
            textColor="white",
            fontName="Helvetica-BoldOblique")

    h1 = PS(
        name='Heading1',
        fontSize=36,
        leading=290,
        leftIndent=100,
        textColor="red",
    )

    h2 = PS(name='Heading2', fontSize=12, leading=24, leftIndent=10)

    h4 = PS(name='Heading2',
            fontSize=12,
            leading=14,
            leftIndent=10,
            fontName="Helvetica-BoldOblique")

    elements = []
    elements.append(Paragraph('', h1))
    elements.append(Paragraph('x', h3))
    elements.append(Paragraph('Plagiarism Report', h1))
    elements.append(
        Paragraph(
            '__________________________________________________________________',
            h2))
    elements.append(Paragraph('SUBMISSION BY: ' + details['sub_by'], h4))
    elements.append(
        Paragraph('SUBMISSION DATE: ' + str(details['sub_date']), h4))
    elements.append(Paragraph('SUBMISSION ID: ' + details['sub_id'], h4))
    elements.append(Paragraph('ASSIGNMENT NAME: ' + details['sub_name'], h4))
    elements.append(Paragraph('COURSE NAME: ' + details['sub_course'], h4))
    elements.append(Paragraph('TOTAL FILES: ' + str(details['sub_files']), h4))

    elements.append(PageBreak())
    sList = [('BOX', (0, 0), (-1, -1), 0.25, colors.black),
             ('INNERGRID', (0, 0), (-1, -1), 0.25, colors.black),
             ('TEXTCOLOR', (0, 0), (-1, 0), colors.blue)]

    for i in range(1, len(data)):
        if data[i][-1] >= 60:
            sList.append(('BACKGROUND', (0, i), (-1, i), colors.red))
            sList.append(('TEXTCOLOR', (0, i), (-1, i), colors.white))

    t = Table(data)
    t.setStyle(TableStyle(sList))
    elements.append(t)
    doc.build(elements)
    os.system('xdg-open /home/dexter/Desktop/Projects/plague/Report.pdf')
示例#5
0
def add_toc():
    toc = TableOfContents()
    toc.levelStyles = [
        PS(fontName='Times-Bold', fontSize=20, name='TOCHeading1', leftIndent=20, firstLineIndent=-20, spaceBefore=10,
           leading=16),
        PS(fontSize=18, name='TOCHeading2', leftIndent=40, firstLineIndent=-20, spaceBefore=5, leading=12),
    ]
    story.append(toc)
    story.append(Paragraph('<b>Table of contents</b>', centered))
    story.append(PageBreak())
示例#6
0
    def __init__(self, buffer, pagesize):
        self.main_answer = {}
        self.question = {}
        self.data = []
        self.buffer = buffer
        if pagesize == 'A4':
            self.pagesize = A4
        elif pagesize == 'Letter':
            self.pagesize = letter
        self.width, self.height = self.pagesize
        self.base_url = ''
        self.media_folder = ''
        self.project_name = ''
        self.project_logo = ''

        self.centered = PS(name='centered',
                           fontSize=14,
                           leading=16,
                           alignment=1,
                           spaceAfter=20,
                           fontName='arialuni')

        self.h1 = PS(
            name='Heading1',
            fontSize=16,
            leading=16,
            fontName='arialuni',
            spaceAfter=20,
        )

        self.h2 = PS(name='Heading2',
                     fontSize=14,
                     leading=14,
                     fontName='arialuni',
                     spaceAfter=20)
        self.h3 = PS(
            name='Heading3',
            fontSize=12,
            leading=12,
            fontName='arialuni',
            spaceAfter=20,
        )
        self.ts1 = TableStyle([
            ('ALIGN', (0, 0), (-1, 0), 'RIGHT'),
            ('BACKGROUND', (0, 0), (-1, 0), colors.white),
            ('VALIGN', (0, 0), (-1, -1), 'TOP'),
            ('GRID', (0, 0), (-1, -1), 0.1, colors.lightgrey),
        ])
        buffer = self.buffer
        self.doc = MyDocTemplate(buffer,
                                 rightMargin=72,
                                 leftMargin=72,
                                 topMargin=72,
                                 bottomMargin=72,
                                 pagesize=self.pagesize)
示例#7
0
def getTabelOfContents():
    """
    returns toc with 3 customized headings
    """
    toc = TableOfContents()
    toc.levelStyles = [
        PS(fontSize=12, name='TOCHeading1', leftIndent=20, firstLineIndent=-20, spaceBefore=6, leading=14), #fontName='Times-Bold', 
        PS(fontSize=10, name='TOCHeading2', leftIndent=40, firstLineIndent=-20, spaceBefore=4, leading=12),
        PS(fontSize=8, name='TOCHeading3', leftIndent=50, firstLineIndent=-20, spaceBefore=2, leading=10),
        ]
    return toc
def main():
    try:
        path_omd = Path("%s/git/check_mk/omd/" % Path.home())
        path_license_texts = path_omd / "license_sources/license_texts/"
        path_pdf = path_omd / "License_texts.pdf"
        path_cover = path_omd / "license_sources/licenses_cover.pdf"
    except:
        raise OSError

    registerFont(TTFont('Calibri', 'Calibri.ttf'))
    doc = SimpleDocTemplate(
        str(path_pdf),
        pagesize=letter,
        bottomMargin=.4 * inch,
        topMargin=.6 * inch,
        rightMargin=.8 * inch,
        leftMargin=.8 * inch)
    toc = TableOfContents()
    toc.levelStyles = [
        PS(fontName='Calibri',
           fontSize=14,
           name='TOCHeading1',
           leftIndent=20,
           firstLineIndent=-20,
           spaceBefore=5,
           leading=16),
        PS(fontSize=12, name='TOCHeading2', leftIndent=40, firstLineIndent=-20, leading=12),
    ]
    title = PS(name='Title', fontSize=24, leading=16)
    h1 = PS(name='Heading1', fontSize=16, leading=16)
    normal = PS(name='Normal', fontSize=8)
    spacer = Spacer(width=0, height=2 * cm)

    story = []
    story.append(Paragraph('<b>Content</b>', title))
    story.append(spacer)
    story.append(toc)

    for file_path in sorted(path_license_texts.iterdir()):
        with file_path.open(encoding="utf-8") as txt_file:
            headline = "<b>%s</b>" % txt_file.readline().replace("\n", "<br /><br />\n")
            text_content = txt_file.read().replace("\n", "<br />\n")
        story.append(PageBreak())
        story.append(heading(headline, h1))
        story.append(Paragraph(text_content, normal))

    doc = MyDocTemplate(str(path_pdf))
    doc.multiBuild(story)

    pdf_merger = PdfFileMerger()
    pdf_merger.append(PdfFileReader(str(path_cover)))
    pdf_merger.append(PdfFileReader(str(path_pdf)))
    pdf_merger.write(str(path_pdf))
示例#9
0
def add_chapter(chapter):
    make_heading('Chapter 1', h1)
    story.append(Paragraph('This is the chapter subject', PS('body')))
    make_heading('Section 1.1', h2)
    story.append(Paragraph('This is the section', PS('body')))

    for i in range(5):
        story.append(
            Image("/home/eric/.slader/9780321982384/chapter_6/u.png", width=5 * inch, height=6 * inch, kind='proportional'))
        story.append(PageBreak())

    add_section_toc()
示例#10
0
    def add_table_of_contents(self):
        """

        :param self:
        :return TOC :
        """
        self.add_heading('Table of Contents', htmltag='centered-bold')
        toc = TableOfContents()
        toc.levelStyles = [
            PS(fontName='Times-Bold', fontSize=18, name='TOCHeading1', leftIndent=10, firstLineIndent=-15, spaceBefore=10, leading=16),
            PS(fontName='Times-Italic',fontSize=16, name='TOCHeading2', leftIndent=22, firstLineIndent=-15, spaceBefore=5, leading=12),
            PS(fontName='Times-Italic',fontSize=14, name='TOCHeading3', leftIndent=34, firstLineIndent=-15, spaceBefore=5, leading=12),
            PS(fontName='Times-Italic',fontSize=12, name='TOCHeading4', leftIndent=46, firstLineIndent=-15, spaceBefore=5, leading=12)
        ]
        self.flowables.append(toc)
示例#11
0
 def set_toc(self):
     # Create an instance of TableOfContents. Override the level styles (optional)
     # and add the object to the story
     toc = TableOfContents()
     toc.levelStyles = [
         PS(fontSize=12, name='TOCHeading1', leftIndent=0, firstLineIndent=-20,  spaceBefore=0, leading=10),
         PS(fontSize=11, name='TOCHeading2', leftIndent=10, firstLineIndent=-20, spaceBefore=0, leading=10),
         PS(fontSize=10, name='TOCHeading3', leftIndent=20, firstLineIndent=-20, spaceBefore=0, leading=10),
         PS(fontSize=9, name='TOCHeading4', leftIndent=30, firstLineIndent=-20, spaceBefore=0, leading=10),
         PS(fontSize=8, name='TOCHeading5', leftIndent=40, firstLineIndent=-20, spaceBefore=0, leading=10),
     ]
     self.elements.append(Paragraph(self.title, self.style['centered']))
     #self.elements.append(Paragraph(_("Organization: <b>%s</b>") % self.org.name, self.style[1]))
     self.elements.append(toc)
     self.elements.append(PageBreak())
示例#12
0
    def create_disclosures_pdf(
        output_filename,
        excel_filename=StaticFileParameters.DISCLOSURES_FILENAME,
        excel_tab_name="Disclosure",
        page_layout=landscape(letter)):
        """

        Args:
            output_filename:
            page_size:

        Returns:

        """
        a = pd.read_excel(io=excel_filename, sheet_name=excel_tab_name)

        disclosures_txt = 'Disclosures: \n'
        for i in range(len(a)):
            disclosures_txt = disclosures_txt + a.loc[i][0] + '\n'

        f1 = PS(name='Footer 1', fontSize=7)
        doc = SimpleDocTemplate(output_filename,
                                pagesize=page_layout,
                                rightMargin=inch,
                                leftMargin=inch,
                                topMargin=inch,
                                bottomMargin=inch)

        doc.build([
            Paragraph(text=disclosures_txt.replace('\n', '<br />\n'), style=f1)
        ])
示例#13
0
def generatepdf(win, event):
    s = "static/pdf/" + event
    filename = s + "-shortlisted.pdf"
    data = [['EXCELID', 'NAME', 'PHONE']]
    doc = SimpleDocTemplate(filename, pagesize=A4)
    elements = []
    centered = PS(
        name='centered',
        fontSize=25,
        leading=16,
        alignment=1,
        spaceAfter=30,
    )
    for obj in win:
        data.append(["EX" + obj.excelid, obj.name, obj.phone])

    t = Table(data, 2 * [2 * inch], len(data) * [0.3 * inch])
    t.setStyle(
        TableStyle([
            ('INNERGRID', (0, 0), (-1, -1), 0.25, colors.black),
            ('BOX', (0, 0), (-1, -1), 0.25, colors.black),
            ('TEXTCOLOR', (0, 0), (-1, 0), colors.green),
        ]))
    k = "<b>"
    k = k + event + "-SHORTLIST"
    k = k + "</b>"
    elements.append(Paragraph(k, centered))
    elements.append(t)
    doc.build(elements)
示例#14
0
def generatepdfwinners(win, event):
    s = "static/pdf/winners" + event
    filename = s + "-winners.pdf"

    data = [[
        'POSITION',
        'EXCELID',
        'NAME',
        'COLLEGE',
    ]]
    doc = SimpleDocTemplate(filename, pagesize=A4)
    elements = []
    centered = PS(
        name='centered',
        fontSize=25,
        leading=16,
        alignment=1,
        spaceAfter=30,
    )
    for obj in win:
        data.append([obj.position, "EX" + obj.excelid, obj.name, obj.college])
    t = Table(data, 2 * [2 * inch], len(data) * [0.3 * inch])
    t.setStyle(
        TableStyle([
            ('INNERGRID', (0, 0), (-1, -1), 0.25, colors.black),
            ('BOX', (0, 0), (-1, -1), 0.25, colors.black),
            ('TEXTCOLOR', (0, 0), (-1, 0), colors.green),
        ]))
    k = "<b>"
    k = k + event + "-WINNERS"
    k = k + "</b>"
    elements.append(Paragraph(k, centered))
    elements.append(t)
    doc.build(elements)
示例#15
0
 def pdformat(self):
     with con:
         items = []
         cur = con.cursor()
         qpaper = str(self.ui.lineEdit.text())
         with open(qpaper) as fp:
             for line in fp:
                 words = line.split()
                 for word in words:
                     cur.execute('SELECT * from kywrds WHERE kywrd like ?',
                                 [word])
                     result = cur.fetchall()
                     if result:
                         for row in result:
                             result1 = row[0]
                             result2 = row[1]
                             result3 = row[2]
                             address = 'Level: ' + str(
                                 result1
                             ) + ' ' + ' ' + ' ' + ' ' + 'Percentage: ' + str(
                                 result3
                             ) + '%' + '    ' + 'Keyword: ' + result2
                             items.append(
                                 platypus.Paragraph(address, PS('body')))
                         doc = SimpleDocTemplate('report1.pdf')
                         doc.multiBuild(items)
示例#16
0
  def getdetails(self):

      with con:
    
          cur = con.cursor()
          pid = str(self.ui.lineEdit_3.text())
          cur.execute('SELECT count(*) FROM ptestresults where pid like ? AND (ptestresults.t1 = "P" OR ptestresults.t2 = "P")',['%'+ pid + '%']); 
          result = cur.fetchall()
          for row in result:
            tcount = row[0]
            # print tcount
          cur.execute('SELECT s1,s2,s3,s4,s5,s6,s7,s8,s9,s10 FROM psymptoms where pid like ? ',['%'+ pid + '%']); 
          result1 = cur.fetchall()
          cnt1 = 0
          result2 = str(" ")
          for row in result1:
              if row[0] != 'N': 
                 cnt1 = cnt1+1
                 result2 = result2 + str("___________________ You have Pain in Throat Region while taking the food ________________________") 
              if row[1] != 'N': 
                 cnt1 = cnt1+1
                 result2 = result2 + str("____________________ You have Pain in chest to abdomen Region_________________________") 
              if row[2] != 'N': 
                 cnt1 = cnt1+1
                 result2 = result2 + str("_____________ Your pain is lasting for several hours ______________") 
              if row[3] != 'N': 
                 cnt1 = cnt1+1
                 result2 = result2 + str(" You have difficulty in swallowing food ")
              if row[4] != 'N': 
                 cnt1 = cnt1+1
                 result2 = result2 + str(" You are unable to swallow food")
              if row[5] != 'N': 
                 cnt1 = cnt1+1
                 result2 = result2 + str(" Food is stucking in throat and chest region")
              if row[6] != 'N': 
                 cnt1 = cnt1+1
                 result2 = result2 + str(" You have a feeling of fullness without taking food ")
              if row[7] != 'N': 
                 cnt1 = cnt1+1
                 result2 = result2 + str(" You are suffering from low to high fever ")
              if row[8] != 'N': 
                 cnt1 = cnt1+1
                 result2 = result2 + str(" You are shaking with chills")
              if row[9] != 'N': 
                 cnt1 = cnt1+1
                 result2 = result2 + str(" You are suffering from chroniic cough ")
              # print cnt1
          if (tcount > 0):
	    # print "Consult Specialist immediately as +ve test results are there"
            result2 = result2 + str("Consult Specialist immediately as +ve test results are there")
          if ((tcount == 0) and (cnt1 > 5)):
	    # print "Consult Specialist immediately as above mentioned +ve symptoms are there"
            result2 = result2 + str("Consult Specialist immediately as above mentioned +ve symptoms are there")
          if ((tcount == 0) and (cnt1 <= 5)):
	    # print "Consult Specialist as above mentioned +ve symptoms are there"
            result2 = result2 + str("Consult Specialist as above mentioned +ve symptoms are there")
          items = []
          items.append(platypus.Paragraph(result2,PS('body')))
          doc = SimpleDocTemplate('medrep1.pdf')
          doc.multiBuild(items)
示例#17
0
文件: views.py 项目: G1one/DiaryBlog
def download_file_pdf(request, slug):
    """
   Функция для скачивания пдв файла в посте
   Для конвертирования текста из поля content в pdf , нужна специальная библеотека,
    в которую передаются параметры для обработки
   :param slug:  url текущего поста
   :return: возвращает ссылку на скачивания файла,
   для пользователя это выглядит как всплывающее окно с продложенем сохранить файл
   """
    # С помощью генератора берётся поле из можеди, поста на котором пользователь нажал скачать,
    # и поле переводится в стрингу для обработки
    your_string = '-'.join([str(i) for i in Post.objects.filter(slug=slug)])
    #  Добавление и настройка шрифтов
    pdfmetrics.registerFont(TTFont('FreeSans', 'static/FreeSans.ttf'))
    style = PS(name='NormalFreeSans', fontName='FreeSans', fontSize=12)
    # Настройка отступов и создание файля для хранения пдф на сервере
    doc = SimpleDocTemplate('blog/files/post.pdf',
                            pagesize=letter,
                            rightMargin=25 * mm,
                            leftMargin=25 * mm,
                            topMargin=20 * mm,
                            bottomMargin=20 * mm)
    # Сопоставление текстовой стринги с телом поста и параметров настройки файла пдф
    content = []
    content.append(Paragraph(your_string, style))
    content.append(Spacer(1, 18))
    doc.build(content)
    the_file = 'blog/files/post.pdf'
    # Формирование ссылки на скачивание пдф файла с текущей страницы
    response = download(the_file, slug)
    return response
示例#18
0
    def add(self, text, style):
        """

        :param self:
        :param text:
        :param style:
        :return:
        """
        self.flowables.append(Paragraph(text, PS(style)))
示例#19
0
    def __init__(self, link):
        self.url = link
        self.link = "<a href='" + self.url + "' color='blue'>News Web Easy</a>"
        self.bd = []
        self.bdni = []
        self.bdsan = []
        self.bdyon = {}
        self.elementos = []
        self.fonte = PS(name='fonte1',
                        fontSize=14,
                        fontName='HeiseiMin-W3',
                        spaceBefore=8,
                        spaceAfter=8,
                        leading=16)
        with open('newsartigo.txt', 'r') as self.arquivo_txt:
            self.artigo = self.arquivo_txt.readlines()

        self.elementos.append(Paragraph(self.link, self.fonte))
        for line in self.artigo:
            self.elementos.append(Paragraph(line, self.fonte))

        with open('palavraspdf.csv', 'r') as self.arquivo_csv:
            self.leitor = csv.DictReader(self.arquivo_csv, delimiter=',')
            for coluna in self.leitor:
                self.bd.append(coluna['listaportugues'])
                self.bdni.append(coluna['furigana;kanji'])
        self.tamanhobd = len(self.bd)
        self.tamanhobdni = len(self.bdni)
        self.valor = 1
        #print(self.tamanhobdni)
        for x in range(1, self.tamanhobdni):
            self.bdyon[self.bdni[x]] = self.bd[x]

        self.estilo = getSampleStyleSheet()

        for kanji, portugues in self.bdyon.items():
            self.elementos.append(
                Paragraph('{} : {}'.format(kanji, portugues), self.fonte))

        self.docpdf = SimpleDocTemplate("nwe.pdf",
                                        pagesize=letter,
                                        title='nwe',
                                        author='narutoolavo')
        self.docpdf.build(self.elementos)

        self.fedit = ''
        self.fedit += self.link
        self.fedit += '\n'
        for x in self.artigo:
            self.fedit += x
        self.fedit += '\n'

        for kanji, portugues in self.bdyon.items():
            self.fedit += '{} : {} \n'.format(kanji, portugues)
        with open("nwe_editar.txt", "w") as self.fileedit:
            self.fileedit.write(str(self.fedit))
示例#20
0
    def add_text(self, text, style, tag):
        """

        :param self:
        :param text:
        :param style:
        :param tag:
        :return a flowable with tags:
        """
        x = '<%s>%s</%s>' % (tag, text, tag)
        self.flowables.append(Paragraph(x, PS(style)))
示例#21
0
 def add_colored_text(self, text, fontname='times', color='black', style='body'):
     """
     :param self:
     :param text:
     :param fontname:
     :param color:
     :param style:
     :return a flowable :
     """
     x = "<font fontname = '%s' color='%s'>%s</font>" % (fontname, color, text)
     self.flowables.append(Paragraph(x, PS(style)))
示例#22
0
文件: Receipt.py 项目: fyc0707/COTS
 def printLabel(self, cqc_num, qty, code, ship, cqe, pe, pem, part_name,
                ins, rcv, prp, time):
     try:
         style = PS('style',
                    fontName="Helvetica-Bold",
                    fontSize=8,
                    leading=9,
                    alignment=0)
         story = canvas.Canvas('log/label.pdf', (6 * cm, 4 * cm))
         story.setFont('Helvetica-Bold', 8)
         story.drawRightString(6 * cm, 3.7 * cm, cqc_num)
         story.drawString(0 * cm, 3.7 * cm, 'Product:')
         story.drawString(0 * cm, 3.7 * cm - 9, part_name)
         story.drawString(0 * cm, 3.7 * cm - 22, 'CQE:')
         p = Paragraph(cqe, style)
         x, y = p.wrap(3.2 * cm, 18)
         p.drawOn(story, 0 * cm, 3.7 * cm - 22 - y)
         z = 3.7 * cm - 33 - y
         story.drawString(0 * cm, z, 'PE:')
         p = Paragraph(pe, style)
         x, y = p.wrap(3.2 * cm, 18)
         p.drawOn(story, 0 * cm, z - y)
         p = Paragraph('Instruction: ' + ins, style)
         x, y = p.wrap(6 * cm, 18)
         p.drawOn(story, 0 * cm, 0)
         data = [
             cqc_num, qty, code, ship, cqe, pe, pem, part_name, ins,
             str(rcv),
             str(prp),
             str(datetime.timestamp(time))
         ]
         qrcode = qr.QRCode(box_size=10, border=1)
         qrcode.add_data('/\\'.join(data))
         print('/\\'.join(data))
         qrcode.make(fit=True)
         qrcode = qrcode.make_image(fill_color="black", back_color="white")
         story.drawImage(ImageReader(qrcode.get_image()),
                         3.3 * cm,
                         1 * cm,
                         width=2.7 * cm,
                         height=2.7 * cm,
                         preserveAspectRatio=True)
         story.save()
         args = 'gswin32c -dPrinted -dNOPAUSE -dBATCH -dNOSAFER -q -dNOPROMPT -dNumCopies=1 -dFitPage -sDEVICE=mswinpr2 ' \
             '-dDEVICEWIDTHPOINTS=170 ' \
             '-dDEVICEHEIGHTPOINTS=113 ' \
             '-sOutputFile="%printer%Deli DL-886A" ' \
             '"log/label.pdf"'
         subprocess.call(args, shell=True)
         os.remove('log/label.pdf')
         return True
     except Exception as err:
         print(err)
         return False
示例#23
0
    def font_tags(self, text, style, fontname='times', fontsize=12, color='black'):
        """

        :param self:
        :param text:
        :param style:
        :param fontname:
        :param fontsize:
        :param color:
        :return a flowable with tags:
        """
        x = "<font fontname = '%s' size = %d color='%s'>%s</font>" % (fontname, fontsize, color, text)
        self.flowables.append(Paragraph(x, PS(style)))
示例#24
0
 def __init__(self, org, margin=3 * cm, sep=0.2 * cm):
     self.title = _("<b>GDPR Registry of Processing Activities</b>")
     self.org = org
     self.margin = margin
     self.pdf = None
     self.elements = []
     self.pagesize = A4
     self.sep = sep
     self.section = Counter()
     self.style = {
         'centered':
         PS(name='centered',
            fontSize=16,
            leading=15,
            alignment=1,
            spaceAfter=20),
         'Normal':
         PS(name='Normal', fontSize=8),
         1:
         PS(name='Heading1',
            fontSize=12,
            leading=14,
            spaceBefore=10,
            spaceAfter=15),
         2:
         PS(
             name='Heading2',
             fontSize=11,
             leading=13,
             spaceBefore=10,
             spaceAfter=14,
         ),
         3:
         PS(name='Heading3',
            fontSize=10,
            leading=12,
            spaceBefore=10,
            spaceAfter=13),
         4:
         PS(name='Heading4',
            fontSize=9,
            leading=11,
            spaceBefore=10,
            spaceAfter=12),
         5:
         PS(name='Heading5',
            fontSize=8,
            leading=10,
            spaceBefore=10,
            spaceAfter=11)
     }
示例#25
0
 def test_issue181(self):
     '''issue #181 rasied by Daniel Turecek'''
     from reportlab.lib.styles import ParagraphStyle as PS
     from reportlab.platypus import Paragraph, SimpleDocTemplate, PageBreak
     style = PS(fontname='Helvetica', name='Title', fontSize=10, leading=12, alignment=1)
     add = [].append
     add(Paragraph('<a name="top"/>Top', style))
     add(Paragraph('<a href="#test">Local Link</a>', style))
     add(Paragraph('<a href="document:test">Document Link</a>', style))
     add(Paragraph('<a href="www.reportlab.com">website</a>', style))
     add(PageBreak())
     add(Paragraph('<a name="test"/>Anchor', style))
     add(Paragraph('<a href="#top">top</a>', style))
     doc = SimpleDocTemplate(outputfile("test_issue181.pdf"))
     doc.build(add.__self__)
示例#26
0
    def get_footer_text_formatted(footer_text,
                                  footer_font_size=6,
                                  footer_space_before=10,
                                  footer_space_after=5):
        """
        Helper method to get the Reportlab Paragraph formatting on the footer
        text

        :param footer_text:
        :param footer_font_size:
        :param footer_space_before:
        :param footer_space_after:
        :return:
        """
        f1 = PS(name='Footer 1',
                fontSize=footer_font_size,
                spaceBefore=footer_space_before,
                spaceAfter=footer_space_after)
        return Paragraph(footer_text.replace('\n', '<br />\n'), f1)
示例#27
0
    def __init__(self, filename, cfgparser, **kw):
        self.allowSplitting = 0
        # Inch graph size (width, height)
        self.graph_size = (float(cfgparser.get("page", "graph_width")),
                           float(cfgparser.get("page", "graph_height")))
        self.x_axis = ('Time', 12, '%m-%d %H:%M', 20)
        self.tablestyle = [
            ('ROWBACKGROUNDS', (0, 0), (-1, -1), (colors.lightgrey, colors.white)),
            ('GRID', (0, 0), (-1, -1), 1, colors.toColor(cfgparser.get("string_table", "color"))),
            ('ALIGN', (0, 0), (-1, -1), cfgparser.get("string_table", "align")),
            ('LEFTPADDING', (0, 0), (-1, -1), int(cfgparser.get("string_table", "leftPadding"))),
            ('RIGHTPADDING', (0, 0), (-1, -1), int(cfgparser.get("string_table", "rightPadding"))),
            ('FONTSIZE', (0, 0), (-1, -1), int(cfgparser.get("string_table", "fontSize"))),
            ('FONTNAME', (0, 0), (-1, 0), cfgparser.get("string_table", "font")), ]
        BaseDocTemplate.__init__(self, filename, **kw)
        template = PageTemplate('normal', [Frame(
            float(cfgparser.get("page", "x1")) * inch,
            float(cfgparser.get("page", "y1")) * inch,
            float(cfgparser.get("page", "width")) * inch,
            float(cfgparser.get("page", "height")) * inch,
            id='F1')])
        self.addPageTemplates(template)

        font_list = ["centered", "centered_index", "small_centered",
                     "heading1", "heading1_centered", "heading1_invisible",
                     "heading2", "heading2_centered", "heading2_invisible",
                     "mono", "mono_centered", "normal", "front_title", "axes"]
        int_fields = ["fontSize", "leading", "alignment", "spaceAfter"]
        self.fonts = {}
        for font in font_list:
            sheet = getSampleStyleSheet()
            text = sheet['BodyText']
            section = "font_%s" % font
            items = dict(cfgparser.items(section))
            for i in int_fields:
                if i in items:
                    items[i] = int(items[i])

            tmp_ps = PS(font, parent=text)
            tmp_ps.__dict__.update(items)
            self.fonts[font] = tmp_ps
示例#28
0
def get_template(args):
    Story = []

    # Variables
    url = 'https://github.com/securestate/king-phisher'
    now = datetime.datetime.now()
    formatted_time = now.strftime("%B %Y")
    sender = 'Ellen Ripley'

    #Link Building
    click_me = 'Click Here to acknowledge you understand the new changes to the policy.'
    link = '<font color=blue><link href="' + url + '">' + click_me + '</link></font>'

    if args.image:
        logo = args.image
        im = Image(logo, 2 * inch, 1 * inch)
        Story.append(im)

    styles = getSampleStyleSheet()
    styles.add(PS(name='Justify', alignment=TA_JUSTIFY))

    ptext = '<font size=10>%s</font>' % formatted_time
    Story.append(Paragraph(ptext, styles["Normal"]))
    Story.append(Spacer(1, 12))

    #input from template text
    with open(args.template, 'r') as t:
        for line in t:
            Story.append(Paragraph(line, styles["Normal"]))

    # add link
    Story.append(Spacer(1, 8))
    Story.append(platypus.Paragraph(link, styles["Justify"]))
    Story.append(Spacer(1, 12))
    ptext = '<font size=10>Sincerely,</font>'
    Story.append(Paragraph(ptext, styles["Normal"]))

    Story.append(Spacer(1, 12))
    ptext = '<font size=10>' + sender + '</font>'
    Story.append(Paragraph(ptext, styles["Normal"]))
    return Story
示例#29
0
def paperApa(nombreDocumento, titulo, autores, autoresC, lugar, mail,
             resumenpdf, intro, cuerpopdf, recomendaciones, conclusiones,
             referencias):
    miPaperApa = []
    miPaperApa.append(Paragraph(titulo, h3))
    miPaperApa.append(Paragraph(autores, h5))
    miPaperApa.append(Paragraph(autoresC, h5))
    miPaperApa.append(Paragraph(lugar, h5))
    miPaperApa.append(Paragraph(mail, h5))
    miPaperApa.append(PageBreak())
    miPaperApa.append(toc)
    miPaperApa.append(PageBreak())
    miPaperApa.append(Paragraph("Abstract(Resumen).", h1))
    miPaperApa.append(Paragraph("    ", PS('body')))
    for i in range(len(resumenpdf)):
        miPaperApa.append(Paragraph(resumenpdf[i], h7))
    miPaperApa.append(PageBreak())
    miPaperApa.append(Paragraph("Introduccion", h1))
    for i in range(len(intro)):
        miPaperApa.append(Paragraph(intro[i], h8))
    miPaperApa.append(PageBreak())
    miPaperApa.append(Paragraph("Estado del arte", h1))
    for i in range(len(cuerpopdf)):
        miPaperApa.append(Paragraph(cuerpopdf[i], h8))

    miPaperApa.append(Paragraph("Recomendaciones", h1))
    for i in range(len(recomendaciones)):
        miPaperApa.append(Paragraph(recomendaciones[i], h8))

    miPaperApa.append(Paragraph("Conclusiones", h1))
    for i in range(len(conclusiones)):
        miPaperApa.append(Paragraph(conclusiones[i], h8))
    miPaperApa.append(PageBreak())
    miPaperApa.append(Paragraph("Referencias", h1))
    for i in range(len(referencias)):
        miPaperApa.append(
            Paragraph("[" + str(i + 1) + "] " + referencias[i], h8))
    doc = MyDocTemplate(nombreDocumento)
    doc.multiBuild(miPaperApa)
示例#30
0
def generate_pdf():

    m = ResultMaster.objects.first()
    # p = m.patient

    buff = BytesIO()
    try:
        doc = ReportTemplate(buff)

        styles = getSampleStyleSheet()
        style_list = list(styles.byName.items())
        story = []
        story.append(MasterInfo(
            # patient=p,
            # date=datetime.datetime.now(),
            # room_no='OPD',
            # case_no='1234567890',
            # physician='Dr. Doctor',
            master=m,
            # fullname='blue cuenca',
        ))
        story.append(Paragraph(m.title, styles['Title']))
        story.append(Paragraph('Text in first heading', PS('body')))

        story.append(BR())

        story.append(MasterInfo(master=m))

        for stylename, style in style_list:
            story.append(Paragraph(stylename, style))

        doc.multiBuild(story)

        buff.flush()
        raw_value = buff.getvalue()
    finally:
        buff.close()

    return raw_value