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)
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')
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
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()
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()
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()
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)
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()
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()
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()
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()
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
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()
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
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()
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')
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
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()
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()
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
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()
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
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
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()
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)
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()
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()
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()
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()
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()
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()
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()
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()
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."
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()
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()
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
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()
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()
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")
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()
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)
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
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
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(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()
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()
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()
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()
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()