示例#1
0
def insert_image(canvas, printzone, image_file, col, row):
    image = Image.open(image_file)
    # Image dimension in mm at printer's DPI
    width, height = [(float(dim)) / RESOLUTION * inch for dim in image.size]

    if width > LABEL_WIDTH or height > LABEL_HEIGHT:
        raise Exception(
            'Image "' + image_file +
            '" is bigger than paper\'s label at current resolution (' +
            str(RESOLUTION) + ').')

    if row >= LABEL_VCOUNT or col >= LABEL_HCOUNT:
        raise Exception('Label position (' + str(row) + ', ' + str(col) +
                        ') is outside the paper.')

    v_padding = LABEL_HEIGHT - height
    h_padding = LABEL_WIDTH - width

    lower_left_corner = (printzone.topleft[0] + col * LABEL_HPERIOD +
                         h_padding / 2, printzone.topleft[1] -
                         (row * LABEL_VPERIOD + v_padding / 2 + height))

    canvas.drawImage(image_file,
                     *lower_left_corner,
                     width=width,
                     height=height)
示例#2
0
def print_cards():
    #LETTER = (8.5, 11)
    LETTER = (11, 8.5)
    DPI = 72
    # Set print margins
    MARGIN = 0.5
    x_offset = int(MARGIN * DPI)
    y_offset = int(MARGIN * DPI)
    CARDSIZE = (int(2.49 * DPI), int(3.48 * DPI))
    #scale = CARDSIZE[0] / 375.0  # Default cardsize in px
    cards = convert_to_cards(session['cardtext'])
    byte_io = BytesIO()
    from reportlab.pdfgen import canvas
    canvas = canvas.Canvas(byte_io, pagesize=landscape(letter))
    WIDTH, HEIGHT = landscape(letter)
    #draw = ImageDraw.Draw(sheet)
    for card in cards:
        image = create_card_img(card,session["do_google"])
        image_reader = ImageReader(image)
        canvas.drawImage(image_reader,
                         x_offset,
                         y_offset,
                         width=CARDSIZE[0],
                         height=CARDSIZE[1])
        x_offset += CARDSIZE[0] + 5  # 5 px border around cards
        if x_offset + CARDSIZE[0] > LETTER[0] * DPI:
            x_offset = int(MARGIN * DPI)
            y_offset += CARDSIZE[1] + 5
        if y_offset + CARDSIZE[1] > LETTER[1] * DPI:
            x_offset = int(MARGIN * DPI)
            y_offset = int(MARGIN * DPI)
            canvas.showPage()
    canvas.save()
    byte_io.seek(0)
    return send_file(byte_io, mimetype='application/pdf')
示例#3
0
    def drawHeaderOnCanvas(self,canvas,doc):
        mainHeaderStyle = TableOptions.styleH
        mainHeaderStyle.fontSize = 14
        ### Base Paragraphs
        pgraphs = []
        p1 = Paragraph("Rock Creek Investment Guidelines Report",mainHeaderStyle)
        pgraphs.append(p1)

        p2 = Paragraph("Wells Fargo Alternative Strategies Fund",TableOptions.styleN)
        pgraphs.append(p2)

        p3 = Paragraph(self.date,TableOptions.styleN)
        pgraphs.append(p3)

        ### Header Logo
        logo = ImageReader(self.imageUrl)
        canvas.drawImage(logo, TableOptions.imageMarginX, TableOptions.pageHeight - 50, width=TableOptions.imageWidth, height=TableOptions.imageHeight,
                         mask='auto')

        cumHeight = 1.0 * inch
        for pgraph in pgraphs:
            w, h = pgraph.wrap(doc.width, doc.topMargin)
            cumHeight += h
            pgraph.drawOn(canvas, doc.leftMargin - TableOptions.marginXOffset, TableOptions.pageHeight - cumHeight-0.5)

        return cumHeight
示例#4
0
def simple_background(canvas, document):
    header_text = document.title
    sub_header_text = document.subject

    canvas.saveState()
    margin = 0.2 * inch
    if header_text:
        canvas.setFont('Helvetica-Bold', 16)
        canvas.drawString(margin, A4[1] - 0.15 * inch - margin, header_text)

    if sub_header_text:
        canvas.setFont('Helvetica-Bold', 32)
        canvas.drawString(margin, A4[1] - 0.15 * inch - margin - 0.45 * inch,
                          sub_header_text)

    w = 1.5 * inch
    h = w / 257.0 * 86.0
    canvas.drawImage(os.path.join(resource_dir, "logo_pl.JPG"),
                     A4[0] - w - margin,
                     A4[1] - h - margin,
                     width=w,
                     height=h)

    p = canvas.beginPath()
    p.moveTo(0, A4[1] - h - 2 * margin)
    p.lineTo(A4[0], A4[1] - h - 2 * margin)
    canvas.drawPath(p)

    canvas.restoreState()
示例#5
0
 def _header(canvas, doc, event, report_title, confidential=True, offset=0):
     canvas.saveState()
     styles = getSampleStyleSheet()
     canvas.drawImage(LOGO_PATH,
                      0.45 * inch,
                      PAGE_HEIGHT - inch * 1.119,
                      height=0.869 * inch,
                      width=1.875 * inch)
     canvas.setFont('Helvetica-Bold', 18)
     y_coord = PAGE_HEIGHT - inch * 0.45 - offset * inch
     canvas.drawString(2.75 * inch, y_coord, report_title)
     canvas.setFont('Helvetica', 16)
     event_title = str(event.number) + ' - ' + event.title
     y_coord -= 18
     canvas.drawString(2.75 * inch, y_coord, event_title)
     event_date = event.date_begins.strftime('%-d %B, %Y')
     y_coord -= 14
     canvas.setFont('Helvetica', 12)
     canvas.drawString(2.75 * inch, y_coord, event_date)
     event_venue = ''
     if event.hotel:
         event_venue += event.hotel.name + ': '
     event_venue += event.city + ', ' + event.state_prov
     y_coord -= 14
     canvas.drawString(2.75 * inch, y_coord, event_venue)
     if confidential:
         canvas.setFont('Helvetica', 16)
         y_coord -= 30
         canvas.drawString(2.75 * inch, y_coord,
                           'Do Not Copy or Distribute')
         canvas.restoreState()
示例#6
0
    def segunda_hoja_layout(self, canvas, doc):
        canvas.saveState()
        canvas.setPageSize(self.pagesize)

        logo = 'static/fondo2.jpg'
        canvas.drawImage(logo,
                         0 * cm,
                         0 * cm,
                         width=(8.5 * cm),
                         height=(5.28 * cm))

        firma = str(self.licencia.autoridad.firma_autoridad)
        canvas.drawImage(firma,
                         52 * mm,
                         0.7 * cm,
                         width=(2.6 * cm),
                         height=(1 * cm))

        size = 65.
        qr_code = qr.QrCodeWidget(self.licencia.persona.dni)
        bounds = qr_code.getBounds()
        width = bounds[2] - bounds[0]
        height = bounds[3] - bounds[1]
        d = Drawing(size,
                    size,
                    transform=[size / width, 0, 0, size / height, 0, 0])
        d.add(qr_code)
        renderPDF.draw(d, canvas, 54 * mm, 22 * mm)

        canvas.restoreState()
示例#7
0
    def header(self, canvas, doc, growing_year, cur_date):
        """Create the header of the document

        Parameters
        ----------
        canvas
        doc
        growing_year: int
        cur_date: str, with the current date

        """
        canvas.saveState()
        canvas.drawString(30, 750, self.tr('Simple report from GeoDataFarm'))
        canvas.drawString(
            30, 733,
            self.tr('For the growing season of ') + str(growing_year))
        canvas.drawImage(self.plugin_dir + '\\img\\icon.png',
                         500,
                         765,
                         width=50,
                         height=50)
        canvas.drawString(500, 750, 'Generated:')
        canvas.drawString(500, 733, cur_date)
        canvas.line(30, 723, 580, 723)
        #w, h = content.wrap(doc.width, doc.topMargin)
        #content.drawOn(canvas, doc.leftMargin, doc.height + doc.topMargin - h)
        canvas.restoreState()
 def draw_right_image(self,
                      canvas,
                      url,
                      x,
                      y,
                      w,
                      h,
                      x_padding=0,
                      y_padding=0,
                      title=''):
     try:
         canvas.drawImage(url,
                          x + x_padding,
                          y - h - y_padding,
                          w,
                          h,
                          preserveAspectRatio=True)
     except:
         canvas.roundRect(x + x_padding,
                          y - y_padding - h,
                          w,
                          h,
                          0,
                          stroke=1,
                          fill=0)
         canvas.line(x + x_padding, y - y_padding + h - h,
                     x + x_padding + w, y - y_padding - h)
         canvas.line(x + x_padding, y - y_padding - h, x + x_padding + w,
                     y - y_padding + h - h)
示例#9
0
def header(canvas, doc):
    # Save the state of our canvas so we can draw on it
    canvas.saveState()
    canvas.setFont("Times-Roman", 12)
    left = 0.98 * inch
    right = 600 - 0.59 * inch
    y = 731
    canvas.setTitle("documento_oficial_webCGAE")
    fn = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                      'static/Atividades/icon_ifc2.jpg')
    canvas.drawImage(fn, 10.2 * cm, 770, width=40, height=40)
    canvas.drawCentredString(11.0 * cm, 760, "Ministério da Educação")
    canvas.drawCentredString(
        11.0 * cm, 747, "Secretaria de Educação Profissional e Tecnológica")
    canvas.drawCentredString(11.0 * cm, 735, "Instituto Federal Catarinense")
    canvas.line(left, y, right, y)

    canvas.setFont("Times-Roman", 10)
    canvas.line(left, y - 24.4 * cm, right, y - 24.4 * cm)
    fn = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                      'static/Atividades/icon_ifc.png')
    canvas.drawImage(fn, left + 10, y - 25.7 * cm, width=140, height=35)
    canvas.drawRightString(550, y - 24.8 * cm,
                           "Rua das Missões, 100 - Ponta Aguda")
    canvas.drawRightString(550, y - 25.2 * cm, "Blumenau/SC - CEP: 89.051-000")
    canvas.drawRightString(550, y - 25.6 * cm,
                           "(47) 3331-7800 / [email protected]")

    # Release the canvas
    canvas.restoreState()
示例#10
0
文件: rlab.py 项目: wiz21b/koi
def funcy(canvas, document):
    global header_text
    global sub_header_text

    canvas.saveState()
    margin = 0.2 * inch
    canvas.setFont('Helvetica-Bold', 16)
    canvas.drawString(margin, A4[1] - 0.2 * inch - margin, header_text)

    canvas.setFont('Helvetica-Bold', 32)
    canvas.drawString(margin, A4[1] - 0.2 * inch - margin - 0.40 * inch,
                      sub_header_text)

    w = 1.5 * inch
    h = w / 257.0 * 86.0
    canvas.drawImage(os.path.join(resource_dir, "logo_pl.JPG"),
                     A4[0] - w - margin,
                     A4[1] - h - margin,
                     width=w,
                     height=h)

    p = canvas.beginPath()
    p.moveTo(0, A4[1] - h - 2 * margin)
    p.lineTo(A4[0], A4[1] - h - 2 * margin)
    canvas.drawPath(p)

    canvas.restoreState()
示例#11
0
def createPDF(canvas, files):

    logo = "UQRlogo.png"
    
    partNo = str(entry['Part Number'])
    creator = entry['Creators Name']

    while len(partNo) < 4:
        partNo = '0'+partNo
    
    canvas = canvas.Canvas("PartNo"+ partNo +".pdf", pagesize=letter)
    canvas.setLineWidth(.3)
    canvas.setFont('Helvetica', 12)
     
    canvas.drawString(30,750,'OFFICIAL PART')
    canvas.drawString(30,735,'OF UQ RACING')
    canvas.drawString(500,750, str(datetime.date.today()))
    canvas.line(480,747,580,747)
     
    canvas.drawString(275,725,'PART OF CAR:')
    canvas.drawString(500,725, 'EV42 2017' )
    canvas.line(378,723,580,723)
     
    canvas.drawString(30,703,'PART CREATED BY:')
    canvas.line(150,700,580,700)
    canvas.drawString(160,703, creator.upper() )

    canvas.drawImage(logo, 512, -15)
     
    canvas.save()
示例#12
0
def drawHnecLogo(canvas, doc):
    # draws the greyscale hnec logo
    # on the canvas directly, so we don't have to deal with flowables
    canvas.saveState()
    canvas.drawImage(ImageReader(hnec_logo(greyscale=True)), 3.5*cm, A4[1]-3.8*cm, width=4*cm,
                     height=1*cm)
    canvas.restoreState()
示例#13
0
 def _imageDrawCanvas(self,
                      image,
                      canvas,
                      n,
                      page_size=DEFAULT_IMAGE_PAGE_SIZE):
     """
     Вывести отсканированую страницу на PDF холст.
     @param image: Объект образа отсканированной страницы.
     @param canvas: Объект PDF холста.
     @param n: Номер страницы.
     @param page_size: Размер страницы в точках,
         к которому будут приводиться все отсканированные страницы.
     @return: True/False.
     """
     if image:
         img_filename = os.path.join(ic_file.getHomeDir(),
                                     MULTISCAN_PAGE_FILENAME % n)
         width, height = page_size
         image = image.resize((int(width), int(height)))
         image.save(img_filename)
         canvas.drawImage(img_filename, 0, 0)
         canvas.showPage()
         return True
     else:
         log.warning(
             u'Ошибка записи сканированой страницы [%d] в PDF файл' % n)
     return False
示例#14
0
 def _add_page_outline(self, canvas):
     start_posn = self.start_posn
     canvas.setLineWidth(2)
     canvas.rect(cm, cm, PAGE_WIDTH - 2 * cm, PAGE_HEIGHT - 2 * cm)
     canvas.drawImage(LOGO_PATH,
                      0.5 * inch,
                      start_posn,
                      height=0.5 * inch,
                      width=1.875 * inch)
     canvas.setFont('Helvetica-Bold', 24)
     canvas.drawRightString(PAGE_WIDTH - (0.5 * inch),
                            start_posn + 0.15 * inch, 'REGISTRATION FORM')
     footer_text = 'This form created on '
     footer_text += datetime.now().strftime('%Y-%m-%d %I:%M:%S %p')
     canvas.setFont('Helvetica', 9)
     canvas.drawRightString(PAGE_WIDTH - (0.5 * inch), 0.5 * inch,
                            footer_text)
     self.start_posn = start_posn - 0.4 * inch
     sales_rep_text = 'BOOKING REP: '
     if self.user.first_name or self.user.last_name:
         sales_rep_text += self.user.first_name + ' ' + self.user.last_name
     else:
         sales_rep_text += self.user.username
     canvas.setFont('Helvetica-Bold', 9.5)
     canvas.drawString(0.5 * inch, 0.5 * inch, sales_rep_text)
 def myFirstPage(self, canvas, doc):
     canvas.saveState()
     canvas.drawImage("Logo.png", 10, 24 * cm)
     canvas.setFont('Times-Bold', 20)
     canvas.drawCentredString(1 * self.PageWidth / 2, self.PageHeight - 30,
                              self.Title)
     canvas.setFont('Helvetica', 9)
     canvas.drawString(inch, 0.75 * inch, "Page 1 / %s" % self.pageinfo)
     canvas.setFont("Helvetica", 12)
     x = 3 * cm
     y = self.PageHeight - 8 * cm
     canvas.drawString(x, y, "Professeur : " + self.rapport.prof)
     canvas.drawString(x, y - 2 * cm, "Lieu : " + self.rapport.lieu)
     canvas.drawString(x, y - 1 * cm, "Matière : " + self.rapport.matiere)
     canvas.drawString(
         x, y - 3 * cm, "Date : " + str(self.rapport.hoy.day) + "/" +
         str(self.rapport.hoy.month) + "/" + str(self.rapport.hoy.year) +
         " à " + str(self.rapport.hour) + "h" + str(self.rapport.minute))
     canvas.drawRightString(
         20 * cm, y,
         "Eleve : " + self.rapport.prenom + " " + self.rapport.nom)
     canvas.drawRightString(20 * cm, y - 1 * cm,
                            "Classe : " + self.rapport.classe)
     canvas.drawString(
         x, y - 4 * cm,
         "Punition demandée par l'enseignant : " + self.rapport.punition)
     canvas.drawString(
         x, y - 5 * cm,
         "Sanction demandée par l'enseignant : " + self.rapport.sanction)
     canvas.drawString(x, y - 6 * cm,
                       "Décision de la Direction, ou du CPE : ")
     canvas.drawString(x, y - 8 * cm, "Motifs : ")
     canvas.restoreState()
示例#16
0
    def myFirstSummaryPage(self, canvas, doc):
        pagesize = portrait(letter)
        [PAGE_WIDTH, PAGE_HEIGHT] = pagesize[:2]
        PAGE_WIDTH = int(PAGE_WIDTH)
        PAGE_HEIGHT = int(PAGE_HEIGHT)

        canvas.saveState()
        canvas.setFont('Helvetica', 9)
        canvas.drawImage(cfg.secondPic, 0, 0, PAGE_WIDTH, PAGE_HEIGHT)
        canvas.drawString(
            54, 690,
            "Listed below, please find the results of our search for historic fire insurance maps from our in-house collection, performed in"
        )
        canvas.drawString(54, 678, "conjuction with your ERIS report.")
        canvas.drawString(
            54, 110,
            "Individual Fire Insurance Maps for the subject property and/or adjacent sites are included with the ERIS environmental database "
        )
        canvas.drawString(
            54, 98,
            "report to be used for research purposes only and cannot be resold for any other commercial uses other than for use in a Phase I"
        )
        canvas.drawString(54, 86, "environmental assessment.")
        canvas.restoreState()
        del canvas
示例#17
0
    def header(self, canvas, doc):
        # Logos
        canvas.saveState()
        canvas.drawImage(LOGO_EPC,
                         doc.leftMargin,
                         doc.height - 1.5 * cm,
                         5 * cm,
                         3 * cm,
                         preserveAspectRatio=True)
        canvas.drawImage(LOGO_ESNE,
                         doc.width - 2.5 * cm,
                         doc.height - 1.2 * cm,
                         5 * cm,
                         3 * cm,
                         preserveAspectRatio=True)

        # Section and subject
        x = doc.leftMargin
        y = doc.height - 2.5 * cm
        canvas.setFont('Helvetica-Bold', 10)
        canvas.line(x, y, x + doc.width, y)
        y -= 0.4 * cm
        canvas.drawString(x, y, self.section)
        canvas.drawRightString(x + doc.width, y, self.subject)
        y -= 0.2 * cm
        canvas.line(x, y, x + doc.width, y)

        # Footer
        canvas.line(doc.leftMargin, 1 * cm, doc.width + doc.leftMargin, 1 * cm)
        footer = Paragraph(settings.PDF_FOOTER_TEXT, style_footer)
        w, h = footer.wrap(doc.width, doc.bottomMargin)
        footer.drawOn(canvas, doc.leftMargin, h)
        canvas.restoreState()
示例#18
0
文件: gen.py 项目: rbadin/cwg
def prefill_character(working_dir, canvas, x, y, filename):
    size = SQUARE_SIZE - 2 * SQUARE_PADDING
    canvas.drawImage(os.path.join(working_dir, filename), \
            x, \
            y - size, \
            size, \
            size, mask='auto')
示例#19
0
 def draw_tube(self, canvas):
     ypos = 650 - self.tube * 2 * self.shrinkfactor
     canvas.drawImage(
         'static/PROFILE_leer_100.png', self.left, ypos,
         width=self.tubewidth, height=self.tube*2*self.shrinkfactor,
         mask='auto')
     self.tubebottom = ypos
示例#20
0
def title(canvas, doc):
    canvas.saveState()

    lemma_img = 'L:/resources/code/models/accuracy_assessment/report/images/'
    lemma_img += 'lemma_logo.gif'

    # Page background
    canvas.setStrokeColor(colors.black)
    canvas.setLineWidth(1)
    canvas.setFillColor('#e6ded5')
    canvas.roundRect(0.5 * u.inch,
                     0.5 * u.inch,
                     7.5 * u.inch,
                     10.0 * u.inch,
                     0.15 * u.inch,
                     stroke=1,
                     fill=1)

    # Page banner - image
    canvas.drawImage(lemma_img,
                     0.5 * u.inch,
                     7.5 * u.inch,
                     width=7.5 * u.inch,
                     height=3 * u.inch,
                     mask='auto')

    canvas.restoreState()
示例#21
0
    def footer(self, canvas, doc):
        footer_style = ParagraphStyle("footer_style",
                                      alignment=TA_CENTER,
                                      fontSize=7)
        footer_text = f"<br/><br/><br/> "\
                      f"<b>{self.client.contact.billing_address.firma} | {self.client.contact.billing_address.strasse} "\
                      f"{self.client.contact.billing_address.hausnummer} | {self.client.contact.billing_address.zip} "\
                      f"{self.client.contact.billing_address.place}</b><br/>"\
                      f"tel {self.client.contact.telefon} | fax {self.client.contact.fax} | " \
                      f"{self.client.contact.email} | {self.client.contact.website}"\
                      f"<br/>"\
                      f"{self.client.contact.bank.first().bank} | BIC: {self.client.contact.bank.first().bic} | "\
                      f"IBAN: {self.client.contact.bank.first().iban}"\
                      f"<br/>"\
                      f"{self.client.contact.commercial_register} | St.Nr. {self.client.contact.tax_number} | "\
                      f"Ust-IdNr. {self.client.contact.sales_tax_identification_number}"\
                      f"<br/>"\

        if self.client.contact.billing_address.vorname and self.client.contact.billing_address.nachname:
            footer_text += f"Geschäftsführer: {self.client.contact.billing_address.vorname} " \
                           f"{self.client.contact.billing_address.nachname}"
        footer_text += f"<br/>"
        footer_paragraph = Paragraph(footer_text, footer_style)
        canvas.saveState()
        w, h = footer_paragraph.wrap(doc.width, doc.bottomMargin)
        footer_paragraph.drawOn(canvas, doc.leftMargin + 18, h - 70)

        if self.qr_code_url is not None:
            qr_code = ImageReader(self.qr_code_url)
            canvas.drawImage(qr_code,
                             doc.leftMargin,
                             h - 74,
                             width=1 * inch,
                             height=1 * inch)
        canvas.restoreState()
示例#22
0
    def _imageDrawCanvas(self,
                         image,
                         canvas,
                         n,
                         page_size=DEFAULT_IMAGE_PAGE_SIZE):
        """
        Output the scanned page to a PDF canvas.

        :param image: Image object of the scanned page.
        :param canvas: PDF canvas object.
        :param n: Page number.
        :param page_size: Page size in dots,
             to which all scanned pages will be brought.
        :return: True/False.
        """
        if image:
            img_filename = os.path.join(file_func.getHomePath(),
                                        MULTISCAN_PAGE_FILENAME % n)
            width, height = page_size
            image = image.resize((int(width), int(height)))
            image.save(img_filename)
            canvas.drawImage(img_filename, 0, 0)
            canvas.showPage()
            return True
        else:
            log_func.warning(u'Error writing scanned page [%d] to PDF file' %
                             n)
        return False
示例#23
0
    def myLaterPages(canvas, doc):

        PAGE_HEIGHT,PAGE_WIDTH = letter
        canvas.saveState()
        canvas.setPageSize(landscape(letter))

        canvas.drawImage(frunt_pag2, 0,0, PAGE_WIDTH,PAGE_HEIGHT )

        canvas.setStrokeColorRGB(0,1,1,alpha=0.1)

        ficha_no = doc.page-1
        #canvas.setStrokeColorRGB(0.7,0.7,0.7)
        canvas.setFillColorRGB(0,0,0)

        SHOW_GRID = False

        if SHOW_GRID:
            n = 5
            s = 200
            canvas.setFillColorRGB(0,0,1)
            canvas.setFont('Helvetica',1)
            for x in range(s):
               for y in range(s):
                  canvas.rect(x*n,y*n, width=n, height=n, stroke=1)
                  canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) )

            # for i in range(s):
            #     x= i*n
            #     y=x
            #     canvas.drawString(x,0,"%s" % (x)) #horizontal
            #     canvas.drawString(0,y+1,"%s" % (x)) # vertical
            #     canvas.drawString(x,600,"%s" % (x)) #horizontal
            #     canvas.drawString(990,y,"%s" % (x)) # vertical
            #
            #     canvas.setStrokeColorRGB(0,0,1,alpha=0.7)
            #     canvas.setFont('Helvetica',1)
            #     for i in range(610):
            #         #canvas.rect(35,i*2, width=0.5, height=0.5, stroke=1)
            #         canvas.drawString(35,i,"%s -" % (i,) )

        canvas.setFont('Helvetica',7)
        LINE_1 = 508

        #fecha_elaboracion = doc.fecha_elaboracion
        #if not fecha_elaboracion:
        #    fecha_elaboracion = datetime.today()

        canvas.drawCentredString(137,LINE_1,str(fecha_elaboracion.year))
        canvas.drawCentredString(162,LINE_1,str(fecha_elaboracion.month))
        canvas.drawCentredString(180,LINE_1,str(fecha_elaboracion.day))

        canvas.drawCentredString(290,LINE_1,"VALLE DEL CAUCA")

        canvas.drawCentredString(740,LINE_1,"Ficha No. %s" % (int(ficha_no)+int(no_ficha_inicial)-1))

        canvas.setFont('Helvetica',5)
        canvas.drawString(75,115, "Elaboro: %s" % elaboro)
        canvas.drawString(215,115, "Reviso: %s" % reviso)

        canvas.restoreState()
示例#24
0
def encabezado(canvas, doc):
    canvas.saveState()
    canvas.setFont('Times-Roman', 9)
    canvas.drawImage(this_path + '/static/images/aok/logo.png',
                     inch,
                     A4[1] - 90,
                     55,
                     60,
                     mask='auto')  # imagen logo
    canvas.setStrokeColorRGB(121 / 256, 128 / 256,
                             129 / 256)  # choose your line color
    canvas.line(133, A4[1] - 90, 133, A4[1] - 45)  # linea
    canvas.setFont('Helvetica', 12)
    canvas.setFillGray(0.3)
    canvas.drawString(140, A4[1] - 64, 'Universidad')
    canvas.setFont('Helvetica-Bold', 14)
    canvas.drawString(140, A4[1] - 79, 'Técnica Estatal de Quevedo')
    canvas.setFont('Helvetica-Bold', 8)
    canvas.drawString(140, A4[1] - 90,
                      'La primera Universidad Agropecuaria del País')
    canvas.setFillColorRGB(250 / 256, 210 / 256, 1 / 256)
    canvas.setStrokeColorRGB(250 / 256, 210 / 256, 1 / 256)
    canvas.rect(50, 742, 500, 3, fill=1)
    canvas.setFillColorRGB(76 / 256, 145 / 256, 65 / 256)
    canvas.setStrokeColorRGB(76 / 256, 145 / 256, 65 / 256)
    canvas.rect(50, 742, 500, 1, fill=1)
    canvas.restoreState()
def create_page(canvas, canvas_size, paths_iterator, image_size, margin):
    """
    Create one page of templates. This function will throw a StopIteration exception
     when paths_iterator runs out.
    """

    padded_image_size = image_size + (2 * margin)
    width, height = canvas_size

    columns = int(width / padded_image_size)
    rows = int(height / padded_image_size)

    y = margin

    for _ in range(rows):

        x = margin

        for _ in range(columns):

            canvas.drawImage(
                next(paths_iterator), x=x, y=y, height=image_size, width=image_size)

            x += padded_image_size

        y += padded_image_size
示例#26
0
    def _draw_single_background(self, canvas, x, margins, width, height):
        canvas.saveState()

        clipping_mask = canvas.beginPath()
        clipping_mask.roundRect(
            x + margins[Border.LEFT], margins[Border.BOTTOM],
            width - margins[Border.RIGHT] - margins[Border.LEFT],
            height - margins[Border.TOP] - margins[Border.BOTTOM],
            self.BACKGROUND_CORNER_DIAMETER)
        canvas.clipPath(clipping_mask, stroke=0, fill=0)

        # get optimum background orientation
        background_orientation = best_orientation(self.background_image_path,
                                                  width, height)
        if background_orientation == Orientation.TURN90:
            canvas.rotate(90)
            canvas.translate(0, -self.WIDTH * 2)
            canvas.drawImage(self.background_image_path,
                             0,
                             0,
                             width=height,
                             height=width,
                             mask=None)
        else:
            canvas.drawImage(self.background_image_path,
                             x,
                             0,
                             width=width,
                             height=height,
                             mask=None)

        canvas.restoreState()
def create_page(canvas, canvas_size, paths_iterator, image_size, margin):
    """
    Create one page of templates. This function will throw a StopIteration exception
     when paths_iterator runs out.
    """

    padded_image_size = image_size + (2 * margin)
    width, height = canvas_size

    columns = int(width / padded_image_size)
    rows = int(height / padded_image_size)

    y = margin

    for _ in range(rows):

        x = margin

        for _ in range(columns):

            canvas.drawImage(next(paths_iterator),
                             x=x,
                             y=y,
                             height=image_size,
                             width=image_size)

            x += padded_image_size

        y += padded_image_size
示例#28
0
def simple_customer_background(canvas, document):
    header_text = document.title
    sub_header_text = document.subject

    canvas.saveState()
    # canvas.drawImage("background.jpg", 0,0, A4[0], A4[1])

    canvas.drawImage(os.path.join(resource_dir, "letter_header.png"),
                     (A4[0] - 18.924 * cm) / 2, A4[1] - 3.294 * cm - 0.5 * cm,
                     18.924 * cm, 3.294 * cm)
    canvas.drawImage(os.path.join(resource_dir, "letter_footer.png"),
                     (A4[0] - 18.911 * cm) / 2, 0.8 * cm, 18.911 * cm,
                     1.532 * cm)

    canvas.setLineWidth(0.1)
    canvas.setFillColorRGB(0.8, 0.8, 0.8)
    # canvas.rect(1*cm,23*cm, A4[0]-2*cm,1*cm,stroke=True,fill=True)

    # canvas.setFillColorRGB(1,0,0)
    # canvas.rect(1*cm,3*cm, (A4[0]-2*cm)/2,5*cm,stroke=True,fill=False)
    # canvas.rect(1*cm+ (A4[0]-2*cm)/2, 3*cm, (A4[0]-2*cm)/2,5*cm,stroke=True,fill=False)

    # if header_text:
    #     canvas.setFont('Helvetica-Bold', 16)
    #     canvas.setFillColorRGB(0,0,0)
    #     canvas.drawString(1.25*cm,23.3*cm,header_text)

    # if sub_header_text:
    #     canvas.setFont('Helvetica', 14)
    #     canvas.setFillColorRGB(0,0,0)
    #     canvas.drawRightString(A4[0] - 1.2*cm,23.3*cm,sub_header_text)

    canvas.restoreState()
    def header(self, canvas, doc):
        # Header

        data = self.page_header_data

        header_list_left = ["essenza lubricants", "b>" + data['title'].upper(),
                            "b>" + data['depot'].upper()]

        header_list_right = ["LUBRICANTS", "b>" + "MADE IN " + data['made_in'].upper(),
                             "VALIDITY " + data['valid_from'].upper()]

        canvas.saveState()

        x = 12 * mm
        y = 200 * mm

        for t in header_list_left:

            if 'b>' in t:
                font = "Helvetica-Bold"
                t = t.split('>')[1]
            else:
                font = "Helvetica"

            textobject = canvas.beginText()
            textobject.setFont(font, 10)
            textobject.setTextOrigin(
                x,
                y
            )
            textobject.textLine(t)
            canvas.drawText(textobject)

            y -= 15

        y = 200 * mm

        canvas.drawImage("logo.jpg", x=(A4[1] / 2) - 15 * mm, y=A4[0] - 23 * mm, width=15 * mm, height=15 * mm)

        for t in header_list_right:

            if 'b>' in t:
                font = "Helvetica-Bold"
                t = t.split('>')[1]
            else:
                font = "Helvetica"

            textobject = canvas.beginText()
            textobject.setFont(font, 10)
            textobject.setTextOrigin(
                A4[1] - 12 * mm - stringWidth(t, font, 10),
                y
            )
            textobject.textLine(t)
            canvas.drawText(textobject)

            y -= 15

        canvas.restoreState()
    def _draw_front(self, canvas):
        canvas.saveState()

        # Set card orientation
        if self.front_orientation == Orientation.TURN90:
            canvas.rotate(90)
            canvas.translate(0, -self.WIDTH)
            width = self.HEIGHT
            height = self.WIDTH
        else:
            width = self.WIDTH
            height = self.HEIGHT


        # Draw red border
        self._draw_single_border(canvas, 0, width, height)
        
        # Parchment background
        self._draw_single_background(canvas, 0, self.BORDER_FRONT, width, height)
        
        # D&D logo
        dnd_logo = svg2rlg("logo.svg")
        if dnd_logo is not None:
            factor = self.LOGO_WIDTH/dnd_logo.width
            dnd_logo.width *= factor
            dnd_logo.height *= factor
            dnd_logo.scale(factor, factor)
            logo_margin = (self.BORDER_FRONT[Border.TOP]-dnd_logo.height)/2
            renderPDF.draw(dnd_logo, canvas,
                           (width-self.LOGO_WIDTH)/2,
                           height - self.BORDER_FRONT[Border.TOP] + logo_margin,
                          )

        # Titles
        canvas.setFillColor("black")
        title_height = self.fonts.set_font(canvas, "title")
        canvas.drawCentredString(width * 0.5, self.FRONT_MARGINS[Border.BOTTOM], self.title.upper())

        # Artist
        if self.artist:
            canvas.setFillColor("white")
            artist_font_height = self.fonts.set_font(canvas, "artist")
            canvas.drawCentredString(width/2,
                            self.BORDER_FRONT[Border.BOTTOM] - artist_font_height - 1*mm,
                            "Artist: {}".format(self.artist))

        # Image
        image_bottom = self.FRONT_MARGINS[Border.BOTTOM] + title_height + 1*mm
        canvas.drawImage(self.front_image_path, 
                         self.FRONT_MARGINS[Border.LEFT], image_bottom, 
                         width=width \
                             - self.FRONT_MARGINS[Border.LEFT] \
                             - self.FRONT_MARGINS[Border.RIGHT],
                         height=height \
                             - image_bottom \
                             - self.FRONT_MARGINS[Border.TOP],
                         preserveAspectRatio=True, mask='auto')

        canvas.restoreState()
示例#31
0
    def _create_header(self, canvas, doc):
        #Draw the logo in the upper left
        if self.company.lower() == 'dellarobbia thailand':
            path = """https://s3-ap-southeast-1.amazonaws.com/media.dellarobbiathailand.com/logo/form_logo.jpg"""
        else:
            path = "https://s3-ap-southeast-1.amazonaws.com/media.dellarobbiathailand.com/logo/Alinea-Logo_Master.jpg"
        
        # Read image from link
        img = utils.ImageReader(path)
        
        # Get Size
        img_width, img_height = img.getSize()
        new_width = (img_width * logo_height) / img_height
        canvas.drawImage(path, 42, 760, height=logo_height, width=new_width)

        canvas.setFont('Helvetica', 8)
        canvas.setFillColorCMYK(0, 0, 0, 60)
        #Add Company Information in under the logo if dellarobbia
        if self.company.lower() == 'dellarobbia thailand':
            canvas.drawString(42, 760,
                            "78/448 Moo.6 Lam Lukka Rd. Bueng Kham Phroi, Lam Lukka")
            canvas.drawString(42, 750, "Pathum Thani, Thailand, 12150")
            canvas.drawString(42, 740, "+66 2 508 8681")
        else:
            canvas.drawString(42, 760,
                            "78/448 Moo.6 Lam Lukka Rd. Bueng Kham Phroi, Lam Lukka")
            canvas.drawString(42, 750, "Pathum Thani, Thailand, 12150")
            canvas.drawString(42, 740, "+66 2 508 8681")
        #canvas.drawString(42, 730, "www.dellarobbiathailand.com")

        # Create The document type and document number
        canvas.setFont("Helvetica", 16)
        canvas.drawRightString(550, 800, 'Purchase Order')
        canvas.setFont("Helvetica", 12)
        canvas.drawRightString(550, 780, 'PO# : {0}'.format(self.id))

        # Create a barcode from the id
        canvas.setFillColorCMYK(0, 0, 0, 1)
        code = 'PO-{0}'.format(self.id)
        barcode = code128.Code128(code, barHeight=20, barWidth=0.5 * mm)
        x_position = 570 - barcode.width
        # drawOn puts the barcode on the canvas at the specified coordinates
        barcode.drawOn(canvas, x_position, 750)
        
        # Create the revision
        if self.revision:
            if self.revision_date:
                msg = u"Revision: {0}, # {1}"
                revision_str = msg.format(self.revision_date.strftime('%B %d, %Y'),
                                          self.revision)
            else:
                msg = u'Revision: # {0}'
                revision_str = msg.format(self.revision)
                
            canvas.setFillColorCMYK(0, 0, 0, 1)
            canvas.setFont("Helvetica", 12)
            canvas.drawRightString(550, 730, revision_str)
示例#32
0
文件: views.py 项目: Axelio/Umail
def encabezado_constancia(canvas, doc):
    canvas.saveState()
    canvas.drawImage(settings.STATIC_ROOT+'images/institucion.jpg', 2.0*cm, PAGE_HEIGHT-4.5*cm, width = 100, height = 38)
    canvas.setFont("Helvetica-Bold",10)
    canvas.drawCentredString(PAGE_WIDTH-9.5*cm, PAGE_HEIGHT-3.6*cm, u'REPÚBLICA BOLIVARIANA DE VENEZUELA')
    canvas.drawCentredString(PAGE_WIDTH-9.5*cm, PAGE_HEIGHT-4.0*cm, u'MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN SUPERIOR')
    canvas.drawCentredString(PAGE_WIDTH-9.5*cm, PAGE_HEIGHT-4.4*cm, u'UNIVERSIDAD NACIONAL EXPERIMENTAL RÓMULO GALLEGOS')
    canvas.restoreState()
    canvas.saveState()
示例#33
0
 def create_backpdf(image_name):
 
     from reportlab.pdfgen import canvas
     from reportlab.lib.units import inch
     
     canvas = canvas.Canvas('PC_back.pdf')
     canvas.setPageSize((6*inch, 4*inch))
     canvas.drawImage(image_name, 0.1*inch, 0.1*inch, 5.9*inch, 3.9*inch)
     canvas.showPage()
     canvas.save()
示例#34
0
 def create_mug_pdf(image_name):
 
     from reportlab.pdfgen import canvas
     from reportlab.lib.units import inch
     
     canvas = canvas.Canvas('mug.pdf')
     canvas.setPageSize((8.58*inch, 3.7*inch))
     canvas.drawImage(image_name, 0.1*inch, 0.1*inch, 5.9*inch, 3.9*inch)
     canvas.showPage()
     canvas.save()
示例#35
0
	def laterPages(canvas, doc):
		canvas.saveState()
		if img:
			path = os.path.join(pdfsettings.MEDIA_ROOT, 'img/{0}'.format(img.name))
			canvas.drawImage(path,0,0,width=mainTextMargin-12,height=792)
		else:
			path = os.path.join(pdfsettings.MEDIA_ROOT, 'img/default.jpg')
			canvas.drawImage(path,0,0,width=mainTextMargin-12,height=792)
		contactleftLaterPages(canvas)
		canvas.restoreState()
示例#36
0
 def convert_pdf(image_name, width, height):
 
     from reportlab.pdfgen import canvas
     from reportlab.lib.units import inch
     
     canvas = canvas.Canvas('output.pdf')
     canvas.setPageSize((width*inch, height*inch))
     canvas.drawImage(image_name, 0.1*inch, 0.1*inch, (width-0.1)*inch, (height-0.1)*inch)
     canvas.showPage()
     canvas.save()
示例#37
0
    def AllPageSetup(canvas, doc):

        canvas.saveState()
        logo_marca_agua = ImageReader('http://www.inmegen.gob.mx/tema/photologue/photos/logo_20_transparente.png')
        canvas.drawImage(logo_marca_agua, 130, 250, width=350, height=380, mask='auto')

        logo_header = ImageReader('http://www.inmegen.gob.mx/tema/photologue/photos/inmegen_logo_color01.png')
        canvas.drawImage(logo_header, 30, 717, width=151, height=70, mask='auto')
#        canvas.setFillGray(gray) 
        canvas.restoreState()
示例#38
0
def header(canvas, doc, content):
    logo_image = '../imagenes/descarga.png'
    logo_image2 = '../imagenes/logo2.png'
    canvas.saveState()
    content.wrap(doc.width, doc.topMargin)
    canvas.drawImage(logo_image, 45, 750, width=100, preserveAspectRatio=True)
    canvas.drawImage(logo_image2, 420, 770, width=150, height=50, mask='auto')
    content.drawOn(canvas, doc.leftMargin, doc.height + doc.topMargin + 10)
    # canvas.drawString(inch, 0.75 * inch, "Page %d" % doc.page)
    canvas.restoreState()
示例#39
0
def hello(c):
    c.drawString(100, 100, "Hello World")
    canvas.drawImage(
        self,
        "/home/julio/Documents/Estacionamiento/QR/10:05:32 PM.png",
        50,
        50,
        width=None,
        height=None,
        mask=None)
def header(canvas, DOC, MAPHEADERTEXT):
    """Draws the page header"""
    arcpy.AddMessage("Drawing Header...")
    canvas.saveState()
    header_top_padding = 1 * cm
    logo_image_height = 50
    logo_header_gap = 0.75 * cm
    indent_right = 40
    docy = PAGE_HEIGHT - 60

    style_header = getSampleStyleSheet()
    style_header.add(
        ParagraphStyle(name='BodyT',
                       alignment=TA_LEFT,
                       borderPadding=(5, 10, 10),
                       fontName='Vera',
                       fontSize=14,
                       spaceAfter=6,
                       backColor=Color(0, 0.2627450980392157,
                                       0.42745098039215684, 1),
                       textColor=Color(1, 1, 1, 1)))
    para = Paragraph(MAPHEADERTEXT, style_header["BodyT"])

    logo_image_width, imageheight = ImageReader(IMAGE).getSize()

    aspect_ratio = imageheight / (float(logo_image_width))
    reduceby = 0.1

    while logo_image_height <= imageheight:
        logo_image_width = logo_image_width - reduceby
        imageheight = logo_image_width * aspect_ratio
        reduceby += 0.1

    para_width_total, para_height = para.wrap(
        DOC.width + 0.70 * inch - logo_image_width - logo_header_gap,
        DOC.topMargin + 0.5 * inch)

    logo_y = ((para_height + imageheight) / 2) + header_top_padding
    canvas.drawImage(ImageReader(IMAGE),
                     indent_right,
                     PAGE_HEIGHT - logo_y,
                     logo_image_width,
                     imageheight,
                     mask='auto')

    para_y = para_height + header_top_padding

    para.drawOn(canvas,
                (indent_right + 0.1 * cm + logo_image_width + logo_header_gap),
                (PAGE_HEIGHT - para_y))

    canvas.setLineWidth(1.0)
    canvas.setStrokeColor(Color(0, 0.2627450980392157, 0.42745098039215684, 1))
    canvas.line(indent_right, docy, (PAGE_WIDTH - indent_right), docy)
    canvas.restoreState()
示例#41
0
 def render(self, canvas):
     if os.path.isfile(self.link):
         im = ImageReader(self.link)
         #pdb.set_trace()
         size = int(self.height/mm*2.8)
         hh = size
         ww = int(im.getSize()[0]*hh/im.getSize()[1])
         #im.thumbnail((size, size))
         canvas.drawImage(im, self.position[0], self.position[1], ww, hh)
     else:
         print "File", self.link, "not found."
示例#42
0
    def myFirstPage(canvas, doc):
        Title = ""
        pageinfo = "Secretaria de Desarrollo Territorial y Bienestar Social - Eje Adulto Mayor"
        canvas.saveState()
        canvas.drawImage(logoAlcaldiaSDTBS, 65, 680, 100, 100)
        canvas.drawImage(logoDubs, 480, 695, 70, 70)

        #canvas.drawCentredString(PAGE_WIDTH/2.0, PAGE_HEIGHT-108, Title)
        canvas.setFont('Helvetica',8)
        canvas.drawString(inch, 0.5 * inch,"{0} / {1}".format(pageinfo,datetime.now().strftime('%d-%m-%Y %H:%M:%S')))

        canvas.restoreState()
示例#43
0
    def myFirstPage(canvas, doc):
        PAGE_HEIGHT,PAGE_WIDTH = letter
        canvas.saveState()
        canvas.drawImage(fondo, 0,0, PAGE_HEIGHT, PAGE_WIDTH )
        canvas.setStrokeColorRGB(1,0,1,alpha=0.1)
        #canvas.setPageSize(landscape(letter))
        canvas.setFont('Arial', 10)
        canvas.drawString(150, 579, cuenta_cobro.nombre_dependencia)
        canvas.drawString(215, 558, cuenta_cobro.fecha_transaccion)
        canvas.drawString(284, 538, cuenta_cobro.nombre_adquiriente)
        canvas.drawString(90, 513,  cuenta_cobro.nit_adquiriente)
        canvas.drawString(230, 513, cuenta_cobro.direccion_adquiriente)
        canvas.drawString(492, 513, cuenta_cobro.telefono_adquiriente)
        canvas.drawString(120, 488, cuenta_cobro.ciudad_adquiriente)
        #
        canvas.drawString(285, 474, cuenta_cobro.nombre_beneficiario)
        canvas.drawString(140, 448, cuenta_cobro.documento_beneficiario)
        canvas.drawString(365, 448, cuenta_cobro.direccion_beneficiario)
        canvas.drawString(120, 425, cuenta_cobro.telefono_beneficiario)
        canvas.drawString(360, 425, cuenta_cobro.email_beneficiario)
        canvas.drawString(115, 410, cuenta_cobro.ciudad_beneficiario)

        cuenta_cobro.objeto_contrato = textwrap.fill(cuenta_cobro.objeto_contrato, 80)

        textobject = canvas.beginText()
        textobject.setTextOrigin(63, 365)
        textobject.textLines(cuenta_cobro.objeto_contrato)
        canvas.drawText(textobject)

        canvas.drawString(117, 297, cuenta_cobro.no_rpc)
        canvas.drawString(242, 297, cuenta_cobro.no_cdp)
        canvas.drawString(392, 297, cuenta_cobro.valor_contrato)

        canvas.drawString(127, 282, cuenta_cobro.concepto)
        canvas.drawString(127, 268, cuenta_cobro.valor_concepto)
        canvas.drawString(95, 255, cuenta_cobro.valor_concepto_letras)

        SHOW_GRID = False
        if SHOW_GRID:
             n = 5
             s = 200
             #canvas.setStrokeGray(0.90)
             #canvas.setFillGray(0.90)
             canvas.setStrokeColorRGB(0,1,1,alpha=0.1)

             canvas.setFillColorRGB(1,0,1)
             canvas.setFont('Arial',1)
             for x in range(s):
                for y in range(s):
                   canvas.rect(x*n,y*n, width=n, height=n, stroke=1)
                   canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) )
        canvas.restoreState()
示例#44
0
def place_images(canvas, config, page, caption_height):
    file_path = download_image(page['image']['url'])

    image = Image.open(file_path)
    #print image.format, image.size, image.mode

    margin   = config['margin']
    box_w = config['pagesize']['width']  - margin['left'] - margin['right']
    box_h = config['pagesize']['height'] - margin['top'] - margin['bottom'] - caption_height

    num_images = page['image'].get('number', 1)
    layout = config['layouts'][num_images-1]

    num_rows = len(layout)
    num_cols = 1
    for row in layout:
        if len(row) > num_cols:
            num_cols = len(row)

    box_w_split = box_w / num_cols
    box_h_split = box_h / num_rows

    percent_w = float(image.size[0]) / box_w_split
    percent_h = float(image.size[1]) / box_h_split

    if percent_w < percent_h:
        fit_percent = percent_h
    else:
        fit_percent = percent_w

    rescale_w = float(image.size[0]) / fit_percent
    rescale_h = float(image.size[1]) / fit_percent

    #print 'percent', percent_w, percent_h
    #print 'box', box_w, box_h
    #print 'w, h', rescale_w, rescale_h

    bottom_adjust = (box_h - rescale_h*num_rows) * 0.5
    bottom = margin['bottom'] + caption_height + bottom_adjust

    i=num_rows-1
    for row in layout:
        j=0
        for col in row:
            left_adjust = (box_w - rescale_w*len(row)) * 0.5
            left   = margin['left'] + left_adjust
            #print 'x,y', left+(box_w_split*j), bottom+(box_h_split*i)

            #need mask='auto' or transparent png will show up all black
            canvas.drawImage(file_path, left+(rescale_w*j), bottom+(rescale_h*i), width=rescale_w, height=rescale_h, mask='auto')
            j+=1
        i-=1
示例#45
0
    def myFirstPage(canvas, doc):
        PAGE_HEIGHT,PAGE_WIDTH = letter
        canvas.saveState()
        canvas.drawImage(fondo, 0,0, PAGE_HEIGHT, PAGE_WIDTH )
        canvas.setStrokeColorRGB(1,0,1,alpha=0.1)
        #canvas.setPageSize(landscape(letter))
        canvas.setFont('Arial', 8)
        canvas.drawString(132,670, cuenta_cobro.periodo)
        canvas.drawString(475, 670, cuenta_cobro.num_cuota)
        canvas.drawString(132, 653, cuenta_cobro.fecha_transaccion)
        canvas.drawString(132, 633,  cuenta_cobro.no_contrato)

        seguridad_social = "Adjunto planilla de pago de Seguridad social No %s " % (cuenta_cobro.num_planilla_ss,)
        seguridad_social = seguridad_social + " correspondiente a los aportes del mes de %s, en los terminos legales." % (cuenta_cobro.mes_planilla_ss)
        #canvas.drawString(132, 300,textwrap.fill(seguridad_social, 90)  )
        cuenta_cobro.informe_actividades_periodo = textwrap.fill(cuenta_cobro.informe_actividades_periodo, 105)

        textobject = canvas.beginText()
        textobject.setTextOrigin(132, 609)
        textobject.textLines(cuenta_cobro.informe_actividades_periodo)
        canvas.drawText(textobject)

        textobject = canvas.beginText()
        textobject.setTextOrigin(132, 240)
        textobject.textLines(textwrap.fill(seguridad_social, 105))
        canvas.drawText(textobject)

        #canvas.drawString(132, 292,  "correspondiente a los aportes del mes de %s, en los terminos legales." % (cuenta_cobro.mes_planilla_ss))

        canvas.drawCentredString(170, 90, cuenta_cobro.nombre_interventor)
        canvas.drawCentredString(170, 81, "INTERVENTOR/SUPERVISOR %s" % (cuenta_cobro.cargo_interventor,))

        canvas.drawCentredString(415, 90, cuenta_cobro.nombre_beneficiario)
        canvas.drawCentredString(415, 81, "C.C. No. %s de %s" % (cuenta_cobro.documento_beneficiario, cuenta_cobro.lugar_exp_doc_beneficiario))


        SHOW_GRID = False
        if SHOW_GRID:
             n = 5
             s = 200
             #canvas.setStrokeGray(0.90)
             #canvas.setFillGray(0.90)
             canvas.setStrokeColorRGB(0,1,1,alpha=0.1)

             canvas.setFillColorRGB(1,0,1)
             canvas.setFont('Arial',1)
             for x in range(s):
                for y in range(s):
                   canvas.rect(x*n,y*n, width=n, height=n, stroke=1)
                   canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) )
        canvas.restoreState()
示例#46
0
文件: topdf.py 项目: atlefren/tilepdf
def print_image(canvas, image, name):
    w, h = A4
    canvas.drawImage(
        pil_to_rl(image, name),
        0,
        0,
        height=w * 0.95,
        width=w * 0.95,
        preserveAspectRatio=True,
        anchor='sw'
    )
    canvas.drawCentredString(w / 2, 600, name)
    canvas.showPage()
    canvas.save()
示例#47
0
	def myFirstPage(self,canvas, doc):
		canvas.saveState()
		canvas.drawImage(STATICFILES_DIRS[0]+'escudo_transito.jpg',35, PAGE_HEIGHT-115)
		canvas.setLineWidth(1)
		canvas.line(10, 723, 600,723)
		canvas.setFont('Times-Roman',8)
		canvas.drawString(10,PAGE_HEIGHT-130, "MUNICIPIO DE LEON GUANAJUATO")
		canvas.drawString(10,PAGE_HEIGHT-142, "SECRETARIA DE SEGURIDAD PUBLICA")
		canvas.drawString(420,PAGE_HEIGHT-142, "INFORME DE CAPTURA DE INFRACCIONES")
		canvas.setFillColorRGB(1,0,0)
		canvas.setFontSize(18)
		canvas.setFontSize(10)
		canvas.setFillColorRGB(0,0,0)
		canvas.drawString(10,PAGE_HEIGHT-154, "DIRECCION GENERAL DE TRANSITO MUNICIPAL")
		
示例#48
0
def header(canvas, DOC, MAPHEADERTEXT):
    """Draws the page header"""
    arcpy.AddMessage("Drawing Header...")
    canvas.saveState()
    header_top_padding = 1*cm
    logo_image_height = 50
    logo_header_gap = 0.75*cm
    indent_right = 40
    docy = PAGE_HEIGHT-60

    style_header = getSampleStyleSheet()
    style_header.add(ParagraphStyle(name='BodyT', alignment=TA_LEFT,
                                    borderPadding=(5, 10, 10), fontName='Vera',
                                    fontSize=14, spaceAfter=6,
                                    backColor=Color(0, 0.2627450980392157,
                                                    0.42745098039215684, 1),
                                    textColor=Color(1, 1, 1, 1)))
    para = Paragraph(MAPHEADERTEXT, style_header["BodyT"])

    logo_image_width, imageheight = ImageReader(IMAGE).getSize()

    aspect_ratio = imageheight/(float(logo_image_width))
    reduceby = 0.1

    while logo_image_height <= imageheight:
        logo_image_width = logo_image_width - reduceby
        imageheight = logo_image_width*aspect_ratio
        reduceby += 0.1

    para_width_total, para_height = para.wrap(DOC.width + 0.70*inch
                                              - logo_image_width
                                              - logo_header_gap,
                                              DOC.topMargin + 0.5 *inch)

    logo_y = ((para_height + imageheight) / 2) + header_top_padding
    canvas.drawImage(ImageReader(IMAGE), indent_right, PAGE_HEIGHT-logo_y,
                     logo_image_width, imageheight, mask='auto')

    para_y = para_height + header_top_padding

    para.drawOn(canvas,
                (indent_right+ 0.1*cm + logo_image_width + logo_header_gap),
                (PAGE_HEIGHT - para_y))

    canvas.setLineWidth(1.0)
    canvas.setStrokeColor(Color(0, 0.2627450980392157, 0.42745098039215684, 1))
    canvas.line(indent_right, docy, (PAGE_WIDTH - indent_right), docy)
    canvas.restoreState()
示例#49
0
文件: views.py 项目: efornal/mollys
def write_header(canvas, x, y, ancho, alto):
    from django.conf import settings
    from reportlab.platypus import Paragraph
    from reportlab.lib.units import cm
    # header
    fecha = datetime.now().strftime("%d/%m/%y %H:%M")
    if settings.STATIC_ROOT:
        img_path = "%s/images/logo_conduct_header.png" % settings.STATIC_ROOT
    else:
        img_path = "%s%simages/logo_conduct_header.png" % (settings.BASE_DIR,settings.STATIC_URL)
    canvas.drawImage(img_path, x, y, 1.5*cm, 1.5*cm)
    canvas.line(x,y-0.1*cm,ancho,y-0.1*cm)
    parag = Paragraph( _("header_code"),parag_style())
    parag.wrapOn(canvas,ancho-x,500)
    parag.drawOn(canvas, x + 1.6*cm, y)
    canvas.drawString(ancho-3*cm, y, fecha)
示例#50
0
 def draw_elements(self, canvas):
     imagedict = {
         'probe':
         {
             'image': 'static/probe.png',
             'displayheight': 38,
             'height': 20
         },
         'spacer10':
         {
             'image': 'static/spacer10.png',
             'displayheight': 18,
             'height': 10
         },
         'spacer30':
         {
             'image': 'static/spacer30.png',
             'displayheight': 58,
             'height': 30
         },
         'spacer80':
         {
             'image': 'static/spacer80.png',
             'displayheight': 158,
             'height': 80
         }
     }
     depthindex = len(self.summary) - 1
     y = self.tubebottom
     for i in (self.configuration):
         image = imagedict[i]['image']
         canvas.drawImage(
             image, self.leftelement, y, width=20,
             height=imagedict[i]['displayheight']*self.shrinkfactor)
         self.add_length_legend(
             canvas, y + (imagedict[i]['displayheight']/3),
             imagedict[i]['height'])
         if i == 'probe':
             self.add_depth_legend(
                 canvas, y + (imagedict[i]['displayheight']/2),
                 self.summary[depthindex])
             depthindex -= 1
         y += 2
         y += imagedict[i]['displayheight']*self.shrinkfactor
示例#51
0
def header(canvas, y):

    canvas.setFont("Arabic-bold", 40)  
    canvas.setFillColor(red)
    solutions_text = arabic_reshaper.reshape(u'المعلومات')
    canvas.drawString(620, y + 25, solutions_text[::-1])
    canvas.setFillColor(black)
    it_text = arabic_reshaper.reshape(u'لحلول تقنية')
    canvas.drawString(750, y + 25, it_text[::-1])
    canvas.setFillColor(green)
    indusco_text = arabic_reshaper.reshape(u'اندسكو')
    canvas.drawString(880, y + 25, indusco_text[::-1])

    canvas.setFont("Helvetica", 40)  
    canvas.setFillColor(green)
    canvas.drawString(50, y + 21, 'Indusco')
    canvas.setFillColor(black)
    canvas.drawString(200, y + 21, 'IT')
    canvas.setFillColor(red)
    canvas.drawString(250, y + 21, 'Solutions')
    canvas.setFillColor(black)
    canvas.drawImage(path, 50, y, width=33*cm, height=3*cm, preserveAspectRatio=True)

    canvas.setFont("Helvetica", 14)  
    canvas.drawString(50, y - 15, 'P.O Box: 7307, Abu Dhabi - United Arab Emirates')
    canvas.drawString(50, y - 35, 'Tel: +97125507474, Fax: +97126777009')

    canvas.setFont('Arabic-normal', 18)
    po_box_place_text = arabic_reshaper.reshape(u'صندوق بريد : ۷۰۳۷ أبوظبي الإمارات العربية المتحدة')
    canvas.drawString(700, y - 15, po_box_place_text[::-1])

    fax_text = arabic_reshaper.reshape(u'فاكس')
    canvas.drawString(795, y - 35, fax_text[::-1])
    fax_no = arabic_reshaper.reshape(u'+۹۷۱۲ ٦۷۷۷۰۰۹: ')
    canvas.drawString(710, y - 35, fax_no)
    tel_text = arabic_reshaper.reshape(u'الهاتف')
    canvas.drawString(920, y - 35, tel_text[::-1])
    tel_no = arabic_reshaper.reshape(u', +۹۷۱۲ ۵۵۰۷٤۷٤: ')
    canvas.drawString(825, y - 35, tel_no)

    return canvas
示例#52
0
 def _add_page_outline(self, canvas):
     start_posn = self.start_posn
     canvas.setLineWidth(2)
     canvas.rect(cm, cm, PAGE_WIDTH-2*cm, PAGE_HEIGHT-2*cm)
     canvas.drawImage(LOGO_PATH, 0.5*inch, start_posn,
                    height=0.5*inch, width=1.875*inch)
     canvas.setFont('Helvetica-Bold', 24)
     canvas.drawRightString(PAGE_WIDTH-(0.5*inch), start_posn + 0.15*inch,
                            'REGISTRATION FORM')
     footer_text = 'This form created on '
     footer_text += datetime.now().strftime('%Y-%m-%d %I:%M:%S %p')
     canvas.setFont('Helvetica', 9)
     canvas.drawRightString(PAGE_WIDTH-(0.5*inch), 0.5*inch, footer_text)
     self.start_posn = start_posn - 0.4 * inch
     sales_rep_text = 'BOOKING REP: '
     if self.user.first_name or self.user.last_name:
         sales_rep_text += self.user.first_name + ' ' + self.user.last_name
     else:
         sales_rep_text += self.user.username
     canvas.setFont('Helvetica-Bold', 9.5)
     canvas.drawString(0.5*inch, 0.5*inch, sales_rep_text)
示例#53
0
    def myFirstPage(canvas, doc):
        PAGE_HEIGHT,PAGE_WIDTH = letter
        canvas.saveState()
        canvas.drawImage(fondo, 0,0, PAGE_HEIGHT, PAGE_WIDTH )
        canvas.setStrokeColorRGB(1,0,1,alpha=0.1)
        #canvas.setPageSize(landscape(letter))
        canvas.setFont('Arial', 10)
        canvas.drawString(150, 579, "-")

        SHOW_GRID = True
        if SHOW_GRID:
             n = 5
             s = 200
             #canvas.setStrokeGray(0.90)
             #canvas.setFillGray(0.90)
             canvas.setStrokeColorRGB(0,1,1,alpha=0.1)
             canvas.setFillColorRGB(1,0,1)
             canvas.setFont('Arial',1)
             for x in range(s):
                for y in range(s):
                   canvas.rect(x*n,y*n, width=n, height=n, stroke=1)
                   canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) )
        canvas.restoreState()
示例#54
0
    def myFirstPage(canvas, doc):
        Title = ""
        pageinfo = ""
        canvas.saveState()

        #VNEXT logo
        canvas.drawImage(logoAlcaldiaSDTBS, 65, 880, 100, 100)

        #canvas.drawImage(logoAlcaldiaSDTBS, 65, 680, 100, 100) PAGE_HEIGHT

        canvas.drawImage(firma_radicado_orfeo, 400, 880, 164, 91)

        canvas.drawImage(firma_lucelly, 65, 80, 310, 91)

        canvas.setFont('Helvetica-Bold',10)
        canvas.drawCentredString(PAGE_WIDTH/2.0, PAGE_HEIGHT-108, Title)
        #canvas.setFont('Helvetica-Bold',9)
        #canvas.drawString(inch, 0.75 * inch,"{0} / {1}".format(pageinfo,datetime.now().strftime('%d-%m-%Y %H:%M:%S')))
        canvas.restoreState()
def pdfFunctionLoop(author="Jon Barnes", lab="Cascade Meteorite Lab", savedFileName="pdfTestLoop1"):

    ####Import in Libraries
    #
    from reportlab.pdfgen import canvas

    #
    from reportlab.lib.pagesizes import letter
    from reportlab.lib.pagesizes import landscape

    #
    from reportlab.platypus import Image

    #
    from reportlab.lib.units import cm

    #
    import time

    global imageFileName
    global n_clusters

    print "start"

    ####Canvas stuff
    canvas = canvas.Canvas(savedFileName + ".pdf", pagesize=letter)
    #
    canvas.setLineWidth(0.3)
    #
    canvas.setFont("Helvetica", 12)

    ########################
    # Page 1
    ## Header Info : Meteorite lab, Thin Section, User, Date
    ##Lab the Data is From
    canvas.drawString(30, 750, lab)
    canvas.drawString(30, 735, "Scanning Electron Microscope Analysis")
    #
    canvas.drawString(400, 730, "Created by " + author)
    canvas.line(380, 727, 580, 727)
    #
    canvas.drawString(400, 710, "Created on " + time.asctime(time.localtime(time.time())))
    canvas.line(380, 707, 580, 707)
    #
    #### BSE Tiff Image
    # Image of BSE Tiff
    bseMainFile = "/home/jon/Desktop/gsoc2014/CML0615(13).tif"
    canvas.drawImage(bseMainFile, 50, 100, width=15 * cm, height=15 * cm, preserveAspectRatio=True)
    canvas.drawString(100, 100, "Back Scatter Electron (BSE) Image of Metorite thin section CML0615 ;")
    canvas.drawString(100, 80, "mosaic image 13, CML0615(13). Grey scale shows average density.")
    canvas.drawString(100, 60, "Lighter spots are heavier then darker spots.")
    #
    ##Save the Page, make new page
    canvas.showPage()
    print "writing page 1"

    bsePNGpath = "/home/jon/Desktop/gsoc2014/"

    bsePNGfile = "croppedImageForCML0615(13)BOX"
    bsePNG = bsePNGpath + bsePNGfile

    bseCROPpngFile = "output"
    bseCROPpng = bsePNGpath + bseCROPpngFile

    bseNumber = 1

    fileExt = ".png"

    for i in range(62):
        canvas.drawString(400, 400, "this is page 1+" + str(i))

        #### BSE Tiff Image
        # Image of BSE Tiff
        bseWholeFile = bsePNG + str(bseNumber) + fileExt
        canvas.drawImage(bseWholeFile, 50, 400, width=10 * cm, height=10 * cm, preserveAspectRatio=True)

        # Label Image
        bsePNGfileWhole = bsePNGfile + str(bseNumber)
        canvas.drawString(50, 400, "BSE Image of " + bsePNGfileWhole)

        #### BSE Crop Tiff Image
        # Image of BSE Tiff
        bseCROPWholeFile = bseCROPpng + str(bseNumber) + fileExt
        canvas.drawImage(bseCROPWholeFile, 400, 400, width=5 * cm, height=5 * cm, preserveAspectRatio=True)

        # Label Image
        bsePNGfileWhole = bsePNGfile + str(bseNumber)
        canvas.drawString(400, 400, "Crop Location in BSE Image of " + bseCROPWholeFile)

        bseNumber += 1

        print "writting page " + str(i)
        canvas.showPage()

    print "done"
    ####Save the PDF
    canvas.save()
示例#56
0
	def myFirstPage(self,canvas, doc):
		canvas.saveState()
		canvas.drawImage(STATICFILES_DIRS[0]+'escudo_transito.jpg',35, PAGE_HEIGHT-115)
		canvas.setLineWidth(1)
		canvas.line(10, 723, 600,723)
		canvas.setFont('Times-Roman',8)
		canvas.drawString(10,PAGE_HEIGHT-130, "MUNICIPIO DE LEON GUANAJUATO")
		canvas.drawString(10,PAGE_HEIGHT-142, "SECRETARIA DE SEGURIDAD PUBLICA")
		canvas.drawString(420,PAGE_HEIGHT-142, "ACTA DE INFRACCION No T.")
		
		canvas.setFillColorRGB(1,0,0)
		canvas.setFontSize(18)
		
		folio=self.data.get('folio_infraccion',"")
		
		canvas.drawString(530,PAGE_HEIGHT-142, folio)
		canvas.setFontSize(10)
		canvas.setFillColorRGB(0,0,0)
		

		canvas.drawString(10,PAGE_HEIGHT-154, "DIRECCION GENERAL DE TRANSITO MUNICIPAL")
		canvas.setFont('Times-Roman',7.5)
		fundamento='Con fundamento en los artículos 16 de la  Constitución Política de los Estados Unidos '
		fundamento=fundamento + '  Mexicanos 4 de la Ley Orgánica Municipal para el Estado de Guanajuato1,2,3,4,fracción 1X 42,44 y 47 del'
		canvas.drawString(10,PAGE_HEIGHT-178, fundamento)
		canvas.drawString(10,PAGE_HEIGHT-190, "reglamento de Tránsito Municipal de Léon,  Guanajuato se procede a levantar la presente.")
		canvas.drawString(330,PAGE_HEIGHT-190, "ACTA DE INFRACCION")
		#canvas.setFillColorRGB(0,0,0)
		#canvas.setFillColorCMYK(1,1,0,0)
		canvas.rect(10, 600, 583, 35)
		canvas.drawString(12,PAGE_HEIGHT -213, "EN LEON. Guanajuato, el suscrito")
		canvas.setFont('Times-Bold',7)

		canvas.drawString(170,PAGE_HEIGHT -213, "AGENTE")
		canvas.setFont('Times-Roman',7.5)																																																																																																																																																																																																																																																										
		canvas.drawString(250,PAGE_HEIGHT -213, "de nombre")
		canvas.setStrokeColorRGB(0,0,0)
		canvas.setLineWidth(1)
		canvas.line(300, 627, 430,627)
		canvas.setFont('Times-Bold',7)
		nombre=self.data.get('nombreAgente',"")
		canvas.drawString(300,PAGE_HEIGHT -213, nombre)
		canvas.setFont('Times-Roman',7.5)
		canvas.drawString(525,PAGE_HEIGHT -213, "adscrito a la")
		canvas.setFont('Times-Bold',7.5)

		canvas.drawString(12,PAGE_HEIGHT -222, "PRIMERA COMANDANCIA")
		canvas.drawString(130,PAGE_HEIGHT -222, "TURNO A")
		canvas.drawString(180,PAGE_HEIGHT -222, "DELEGACION PONIENTE")
		canvas.setFont('Times-Roman',7.5)

		canvas.drawString(280,PAGE_HEIGHT -222, " de la Direccion de Transito municipal de Leon  Guanajuato como consta en la ")
		canvas.setFont('Times-Bold',7.5)
		
		canvas.drawString(525,PAGE_HEIGHT -222, "CREDENCIAL")
		cobro=self.data.get('noCobro',"")
		canvas.drawString(12,PAGE_HEIGHT -231, str(cobro))
		canvas.setLineWidth(1)
		canvas.line(12, 609, 40,609)
		canvas.setFont('Times-Roman',7.5)

		canvas.drawString(45,PAGE_HEIGHT -231, "expedida por el titular de la Dependencia Municipal. con la cual me identifica. Siendo las")
		canvas.setFont('Times-Bold',7.5)
		hora=self.data.get('hora_infrac',"")

		canvas.drawString(318,PAGE_HEIGHT -231, hora)
		canvas.setLineWidth(1)
		canvas.line(318, 609, 337,609)
		canvas.setFont('Times-Roman',7.5)

		canvas.drawString(350,PAGE_HEIGHT -231, "Horas del dia")
		canvas.setFont('Times-Bold',7.5)
		canvas.drawString(398,PAGE_HEIGHT -231, "24")
		canvas.setLineWidth(1)
		canvas.line(395, 609, 407,609)
		canvas.setFont('Times-Roman',7)

		canvas.drawString(413,PAGE_HEIGHT -231, "del mes de")
		canvas.setFont('Times-Bold',7)

		canvas.drawString(453,PAGE_HEIGHT -231, "OCTUBRE")
		canvas.setLineWidth(1)
		canvas.line(450, 609, 493,609)
		canvas.setFont('Times-Roman',7.5)

		canvas.drawString(495,PAGE_HEIGHT -231, "Del año")
		canvas.setFont('Times-Bold',7.5)

		canvas.drawString(525,PAGE_HEIGHT -231, "2013")
		canvas.setFont('Times-Roman',7.5)

		canvas.drawString(12,PAGE_HEIGHT -240, "Hago constar que el conductor de vehiculo cuyos  datos se especifican a continuacion:")
		canvas.rect(10, 575, 585, 10)
		canvas.rect(10, 495, 585, 80)
		canvas.setLineWidth(1)
		canvas.line(10, 565, 595,565)
		canvas.line(10, 555, 595,555)
		canvas.line(10, 545, 595,545)
		canvas.line(10, 535, 595,535)
		canvas.line(10, 525, 595,525)
		canvas.line(10, 515, 595,515)
		canvas.line(10, 505, 595,505)
		canvas.line(295, 495, 295,585)
		canvas.drawString(135,PAGE_HEIGHT -265, "Datos Personales")
		canvas.drawString(395,PAGE_HEIGHT -265, "Caracteristicas de Vehiculo")
		canvas.drawString(300,PAGE_HEIGHT -275, "Marca:")
		canvas.setFont('Times-Bold',7)
		

		self.LabelVehiculo(canvas)
		self.LabelConductor(canvas)
		vehiculo=self.data.get('vehiculo',"")
		if vehiculo !="":
			mar=vehiculo.get('marca',"")
			canvas.drawString(330,PAGE_HEIGHT -275,  mar)
			vehiculo=self.data.get('vehiculo',"")
			sub=vehiculo.get('submarca',"")
			canvas.drawString(500,PAGE_HEIGHT -275, sub)
			#canvas.drawString(500,PAGE_HEIGHT -275, "PICK UP")
			canvas.setFont('Times-Roman',7)
			#canvas.drawString(500,PAGE_HEIGHT -275, "Camioneta")
			canvas.setFont('Times-Bold',7)
			modelo=vehiculo.get('modelo',"")
			canvas.drawString(340,PAGE_HEIGHT -285, modelo)
			canvas.setFont('Times-Roman',7)

			canvas.setFont('Times-Bold',7)
			color=vehiculo.get('color',"")
			canvas.drawString(470,PAGE_HEIGHT -285, color)
			canvas.setFont('Times-Roman',7)

			canvas.setFont('Times-Bold',7)
			placas=vehiculo.get('placas',"")
			canvas.drawString(340,PAGE_HEIGHT -295, placas)
			canvas.setFont('Times-Roman',7)

			
			canvas.setFont('Times-Bold',7)
			serie=vehiculo.get('serie',"")
			canvas.drawString(470,PAGE_HEIGHT -295, serie)
			canvas.setFont('Times-Roman',7)

			
			canvas.setFont('Times-Bold',7)
			empresa=vehiculo.get('empresa',"")
			canvas.drawString(360,PAGE_HEIGHT -305, empresa)
			canvas.setFont('Times-Roman',7)

			
			canvas.setFont('Times-Bold',7)
			tipo_vehiculo=vehiculo.get('tipo_vehiculo',"")
			canvas.drawString(500,PAGE_HEIGHT -305, tipo_vehiculo)
			canvas.setFont('Times-Roman',7)

			
			canvas.setFont('Times-Bold',7)
			estado=vehiculo.get('estado',"")
			canvas.drawString(53,PAGE_HEIGHT -325, estado)

			
			canvas.setFont('Times-Bold',7)
			empresa=vehiculo.get('empresa',"")
			canvas.drawString(360,PAGE_HEIGHT -325, empresa)
			
			canvas.setFont('Times-Roman',7)
			
			canvas.setFont('Times-Bold',7)
			ruta=vehiculo.get('ruta','')
			canvas.drawString(500,PAGE_HEIGHT -325, ruta)

			canvas.setFont('Times-Roman',7)
			
			canvas.setFont('Times-Bold',7)
			sub=vehiculo.get('no_economico',"")
			canvas.drawString(370,PAGE_HEIGHT -335, sub)

			canvas.setFont('Times-Roman',7)
			
			canvas.setFont('Times-Bold',7)
			no_tarjeton=vehiculo.get('no_tarjeton',"")
			canvas.drawString(400,PAGE_HEIGHT -345, no_tarjeton)


		infractor=self.data.get('infractor',"")
		if infractor !="":
			
			canvas.setFont('Times-Bold',7)
			nombre=infractor.get('nombre',"")
			canvas.drawString(57,PAGE_HEIGHT -285, nombre)
			canvas.setFont('Times-Roman',7)

			
			canvas.setFont('Times-Bold',7)
			edad=infractor.get('edad',"")
			canvas.drawString(57,PAGE_HEIGHT -295, edad)

			canvas.setFont('Times-Roman',7)
			
			canvas.setFont('Times-Bold',7)
			sexo=infractor.get('sexo',"")
			canvas.drawString(170,PAGE_HEIGHT -295, sexo)

			
			canvas.setFont('Times-Bold',7)
			domicilio=infractor.get('domicilio',"")
			canvas.drawString(53,PAGE_HEIGHT -305, domicilio)
			canvas.setFont('Times-Roman',7)

			
			canvas.setFont('Times-Bold',7)
			sub=infractor.get('colonia',"")
			canvas.drawString(53,PAGE_HEIGHT -315, sub)

			canvas.setFont('Times-Roman',7)
			
			canvas.setFont('Times-Bold',7)

			ciudad=infractor.get('ciudad',"")
			canvas.drawString(170,PAGE_HEIGHT -325, ciudad)
			canvas.setFont('Times-Roman',7)
			
			canvas.setFont('Times-Bold',7)
			no_licencia=infractor.get('no_licencia',"")
			canvas.drawString(120,PAGE_HEIGHT -335, no_licencia)
		
		

		
		

		
		"""
	

		## ESTO DEBE DE ESTAR EN ALGUN LADO
		tipo_servicio=self.data.get('tipo_servicio',"")
		canvas.drawString(395,PAGE_HEIGHT -315, tipo_servicio)
		canvas.setFont('Times-Roman',7)

		canvas.setFont('Times-Roman',7)
		canvas.drawString(12,PAGE_HEIGHT -345, "Tipo de Operativo:")
		canvas.setFont('Times-Bold',7)
		sub=self.data.get('tipo_operativo',"")
		canvas.drawString(100,PAGE_HEIGHT -345, sub)

		canvas.setFont('Times-Roman',7)
		canvas.drawString(12,PAGE_HEIGHT -355, "Quien en estos Momentos")
		canvas.setFont('Times-Bold',7)
		sub=self.data.get('firmo',"")
		canvas.drawString(100,PAGE_HEIGHT -355, sub)

		canvas.setFont('Times-Roman',7)
		canvas.drawString(116,PAGE_HEIGHT -355, "se encuentra presente, cometio flagrantemente infraccion a los articulo(s) que se detalla(n) a continuacion")
		canvas.setLineWidth(2)
		##canvas.rect(10, 440, 585, 35)
		canvas.setLineWidth(1)
		
		canvas.line(180, 440, 180,476)
		canvas.drawString(12,PAGE_HEIGHT -374, "Reglamento de Transito para")
		canvas.drawString(12,PAGE_HEIGHT -380, "el municipio de Leon, Guanajuato")
		canvas.drawString(190,PAGE_HEIGHT -378, "Descripcion de los Motivos de la infraccion")
		canvas.setFont('Times-Roman',7)
		
		canvas.setFont('Times-Bold',7)
		dy=585

		canvas.rect(10, dy, 585, 45)

		canvas.drawString(12,PAGE_HEIGHT -dy, " Hechos que ocurrieron en:")
		canvas.setFont('Times-Bold',7)
		
		calle=self.data.get('calle1',"")
		canvas.drawString(200,PAGE_HEIGHT -dy, calle)
		
		canvas.line(190, dy-1, 315,dy-1)
		canvas.setFont('Times-Roman',7)

		canvas.drawString(395,PAGE_HEIGHT -dy, "Con circulacion de:")
		canvas.setFont('Times-Bold',7)
		bar=self.data.get('circulacion',"")
		canvas.drawString(475,PAGE_HEIGHT -dy, bar)

		canvas.setFont('Times-Roman',7)

		canvas.drawString(200,PAGE_HEIGHT -(dy+9), " Calle BOULEVARD / AVENIDA")

		canvas.setFont('Times-Bold',7)
		bar=self.data.get('colonia',"")
		dy=dy+19

		canvas.drawString(73,PAGE_HEIGHT -dy, bar)
		canvas.line(29, dy-40, 150,dy-40)
		canvas.setFont('Times-Roman',7)

		canvas.drawString(190,PAGE_HEIGHT -dy, "Referencia")
		canvas.setFont('Times-Bold',7)
		bar=self.data.get('referencia',"")

		canvas.drawString(320,PAGE_HEIGHT -dy, bar)

		canvas.line(250, dy-40, 400,dy-40)
		canvas.setFont('Times-Roman',7)

		canvas.drawString(23,PAGE_HEIGHT-450, "FRACCIONAMIENTO COLONIA COMUNIDAD")
		canvas.drawString(250,PAGE_HEIGHT-450, "SENALAR FRENTE A QUE NUMERO ENTRE QUE CALLE U OTRO PUNTO DE REFERENCIA")
		canvas.drawString(12,PAGE_HEIGHT-455, "Ubicacion de senalamiento vial (en los casos que proceda)")
		
		
		canvas.drawString(12,PAGE_HEIGHT-480, "Con fundamento en lo dispuesto por el articulo 44 del reglamento de Transito Municipalde Leon Guanajuato para garantizar el cumplimiento de la sancion administrativa que")
		
		canvas.drawString(12,PAGE_HEIGHT -490, "en su caso se proceda, SE RETIENE AL INFRACTOR:")
		se_recoje=self.data.get('se_recoje',"")
		if se_recoje.get('tipo',"") == 'PLACAS':
			canvas.drawString(45,PAGE_HEIGHT -498, "X")	
		canvas.drawString(12,PAGE_HEIGHT -498, "PLACAS  (  )")

		if se_recoje.get('tipo',"") == 'TARJETA DE CIRCULACION':
			canvas.drawString(190,PAGE_HEIGHT -498, "X")
		canvas.drawString(95,PAGE_HEIGHT -498, "TARJETA DE CIRCULACION (    )")

		if se_recoje.get('tipo',"") == 'LICENCIA':
			canvas.drawString(253,PAGE_HEIGHT -498, "X")
		canvas.drawString (215,PAGE_HEIGHT -498,"LICENCIA (     )")

		if se_recoje.get('tipo',"") == 'VEHICULO':
			canvas.drawString(360,PAGE_HEIGHT -498, "X")
		canvas.drawString(320,PAGE_HEIGHT -498, "VEHICULO (    )")

		if se_recoje.get('tipo',"") == 'CORTESIA':
			canvas.drawString(460,PAGE_HEIGHT -498, "X")
		canvas.drawString(420,PAGE_HEIGHT -498, "CORTESIA  (    )")

		
		if se_recoje.get('tipo',"") == 'PAGO MOVIL':
			canvas.drawString(570,PAGE_HEIGHT -498, "X")
		canvas.drawString(520,PAGE_HEIGHT -498, "PAGO MOVIL  (    )")


		canvas.rect(10, 266, 585, 45)
		canvas.drawString(12,PAGE_HEIGHT -538, "En caso de violacion al articulo 36 del Reglamento de Transito Municipal deLeon, Guanajuato se remitio al conductor ante el Medico legista qien a traves del CERTIFICADO MEDICO")
		canvas.drawString(12,PAGE_HEIGHT -546, "NUMERO determino que ")
		print  self.data
		## LA CERTIFICACION NO ESTA EN ESTE MOMENTO
		certificado=self.data.get('certificado',"")
		if certificado['ebriedad_incompleta'] == 'si':
		 	canvas.drawString(105,PAGE_HEIGHT -554, "X" )
		canvas.drawString(15,PAGE_HEIGHT -554, "EBRIEDAD INCOMPLETA (     )" )

		 
		if certificado['ebriedad_completa'] == 'si':
			canvas.drawString(200,PAGE_HEIGHT -554, "X" )
		canvas.drawString(120,PAGE_HEIGHT -554, "EBRIEDAD COMPLETA (     )" )

		 
		if certificado['influjo_droga'] == 'si':
			canvas.drawString(315,PAGE_HEIGHT -554, "X")
		canvas.drawString(220,PAGE_HEIGHT -554, "BAJO INFLUJO DE DROGAS (    )")

		 
		if certificado['aliento_alcoholico'] == 'si':
			canvas.drawString(423,PAGE_HEIGHT -554, "X")
		canvas.drawString(340,PAGE_HEIGHT -554, "ALIENTO ALCOHOLICO (    )")

		## certificado=self.data.get('certificado',"")
		if certificado['normal'] == 'si':
			canvas.drawString(512,PAGE_HEIGHT -554, "X")
		canvas.drawString(450,PAGE_HEIGHT -554, "ESTADO NORMAL(    )")
		
		
		canvas.drawString(12,PAGE_HEIGHT -562, "Se recoje el vehiculo infraccionado y se deposita en la pension autorizada que corresponda de conformidad a los(articulos) del reglamento de Transito Municipal de Leon Guanajuato.")
		canvas.drawString(12,PAGE_HEIGHT -570, "15 Ultimo parrafo(   )")
		canvas.drawString(120,PAGE_HEIGHT -570, "18 Tercer y Cuarto Parrafo(   )")
		canvas.drawString(300,PAGE_HEIGHT -570, "36 Ultimo Parrafo")
		canvas.drawString(395,PAGE_HEIGHT -570, "44 (   )")
		canvas.drawString(470,PAGE_HEIGHT -570, "45 (   )")
		tam= PAGE_WIDTH/3
		"""
		canvas.restoreState()
示例#57
0
    def myFirstPage(canvas, doc):
        PAGE_HEIGHT,PAGE_WIDTH = letter
        canvas.saveState()
        canvas.drawImage(fondo, 0,0, PAGE_HEIGHT, PAGE_WIDTH )
        canvas.setStrokeColorRGB(1,0,1,alpha=0.1)
        #canvas.setPageSize(landscape(letter))
        canvas.setFont('Tahoma-Bold', 8)

        cuenta_cobro.tipo_contrato = textwrap.fill(cuenta_cobro.tipo_contrato, 22)
        textobject = canvas.beginText()
        textobject.setTextOrigin(205, 638)
        textobject.textLines(cuenta_cobro.tipo_contrato)
        canvas.drawText(textobject)

        #canvas.drawCentredString(260,638, cuenta_cobro.tipo_contrato)

        canvas.drawString(205,607, cuenta_cobro.no_contrato)
        canvas.drawString(202,661, cuenta_cobro.fecha_transaccion)
        canvas.drawCentredString(445, 274, cuenta_cobro.saldo_pendiente_fecha)
        canvas.drawCentredString(497,523, cuenta_cobro.no_bp)
        canvas.drawCentredString(262,522, cuenta_cobro.vigencia_presupuestal)
        canvas.drawCentredString(497, 491, cuenta_cobro.documento_beneficiario)
        canvas.drawCentredString(267, 300, cuenta_cobro.valor_contrato)
        canvas.drawCentredString(500, 300, cuenta_cobro.valor_concepto)

        canvas.drawCentredString(263, 360, cuenta_cobro.no_cdp)
        canvas.drawCentredString(497, 360, cuenta_cobro.no_rpc)
        canvas.drawCentredString(260, 400, cuenta_cobro.fecha_inicio)
        canvas.drawCentredString(495, 400, cuenta_cobro.fecha_fin)
        canvas.drawCentredString(432, 460, cuenta_cobro.fecha_fin)
        canvas.drawCentredString(432, 430, cuenta_cobro.nombre_interventor)
        canvas.drawCentredString(432, 328, cuenta_cobro.periodo_facturado)
        #canvas.drawCentredString(432, 327, cuenta_cobro.periodo) # "SEGUNDA CUOTA
        #canvas.drawCentredString(495, 621, cuenta_cobro.num_cuota)

        canvas.drawString(326, 84, cuenta_cobro.nombre_interventor)
        canvas.drawString(326, 73, "C.C. %s" %  cuenta_cobro.documento_interventor)

        canvas.drawString(81, 84, cuenta_cobro.nombre_beneficiario)
        canvas.drawString(81, 73, "C.C. %s" % cuenta_cobro.documento_beneficiario)

        cuenta_cobro.nombre_beneficiario = textwrap.fill(cuenta_cobro.nombre_beneficiario, 20)
        textobject = canvas.beginText()
        textobject.setTextOrigin(210, 500)
        textobject.textLines(cuenta_cobro.nombre_beneficiario)
        canvas.drawText(textobject)

        s = '''
         EL DIA {} SE REUNIERON EL INTERVENTOR Y/O SUPERVISOR DEL CONTRATO {} {}
         DE LA SECRETARIA DE DESARROLLO TERRITORIAL Y BIENESTAR SOCIAL, Y EL CONTRATISTA {},
         IDENTIFICADO CON CEDULA DE CIUDADANIA NUMERO {} CON EL FIN DE FIRMAR EL ACTA
         FINAL QUE AUTORIZA EL PAGO CORRESPONDIENTE AL CONTRATO NUMERO {} Y DEJAR CONSTANCIA DEL
         CUMPLIMIENTO DEL OBJETO DEL CONTRATO HASTA LA FECHA.
        '''.format(cuenta_cobro.fecha_transaccion, cuenta_cobro.nombre_interventor,
                   cuenta_cobro.cargo_interventor, cuenta_cobro.nombre_beneficiario,
                   cuenta_cobro.documento_beneficiario, cuenta_cobro.no_contrato )

        s = textwrap.fill(s, 110)

        textobject = canvas.beginText()
        textobject.setFont("Tahoma", 8)
        textobject.setTextOrigin(82, 249)
        textobject.textLines(s)
        canvas.drawText(textobject)

        cuenta_cobro.objeto_contrato = textwrap.fill(cuenta_cobro.objeto_contrato, 100)

        textobject = canvas.beginText()
        textobject.setTextOrigin(83, 588)
        textobject.textLines(cuenta_cobro.objeto_contrato)
        canvas.drawText(textobject)


        SHOW_GRID = False
        if SHOW_GRID:
             n = 5
             s = 200
             #canvas.setStrokeGray(0.90)
             #canvas.setFillGray(0.90)
             canvas.setStrokeColorRGB(0,1,1,alpha=0.1)

             canvas.setFillColorRGB(1,0,1)
             canvas.setFont('Arial',1)
             for x in range(s):
                for y in range(s):
                   canvas.rect(x*n,y*n, width=n, height=n, stroke=1)
                   canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) )
        canvas.restoreState()
from reportlab.pdfgen import canvas

"""
Canvas imagem

canvas.drawImage(self, image, x, y, width=None, height=None, mask=None)
canvas.drawInlineImage(self, image, x, y, width=None, height=None)

There are two similar-sounding ways to draw images. The preferred one is the drawImage method. This implements 
a caching system so you can define an image once and draw it many times; it will only be stored once in the PDF 
file. `drawImage` also exposes one advanced parameter, a transparency mask, and will expose more in future. 
The older technique, `drawInlineImage`, stores bitmaps within the page stream and is thus very inefficient if you
use the same image more than once in a document; but can result in PDFs which render faster if the images are 
very small and not repeated.
"""

canvas = canvas.Canvas("pdfs/extra-011.pdf")

canvas.drawImage("static/python-logo.png", 100,400, width=150, height=150, mask='auto')

canvas.drawInlineImage("static/python-logo.png", 100, 700)

canvas.showPage()

canvas.save()
示例#59
0
def ticketPage(canvas, doc ):
    canvas.saveState()
    H = 1.5 * inch
    W = 1.5 * .69 * inch
    canvas.drawImage('boliche.png', 6 * inch, PAGE_HEIGHT - (1.75 * inch), width = W, height = H)
    canvas.restoreState()