// Size Font Item Name //$pdf->Cell(96,$height*2,$data->m_item_name,1,0,'C'); // Item Name $pdf->MultiCell(96, $height, $data->m_item_name, 0, 'C'); $pdf->SetXY(96 + 10, $height * 8 - 2); $pdf->Cell(32, $height * 2, baking($data->m_item_baking), 1, 0, 'C'); // BAKING $pdf->Ln($height * 2); $pdf->SetFont($font, 'B', $size - 1); $pdf->Cell(25, $height, 'No. COIL', 1, 0, 'L'); $pdf->Cell(39, $height, '', 1, 0, 'C'); $pdf->SetFont($font, '', $size * 0.75); $pdf->Cell(32, $height * 2, $data->t_prod_id, 1, 0, 'C'); //ID Kartu $qrcode = new QRcode($data->t_prod_id, 'H'); // error level : L, M, Q, H $qrcode->displayFPDF($pdf, 115, 68, 14); $pdf->Cell(32, $height * 2, '', 1, 0, 'C'); //bARCODE $pdf->Ln($height); $pdf->SetFont($font, 'B', $size - 1); $pdf->Cell(25, $height, 'TYPE WIRE', 1, 0, 'L'); $pdf->SetFont($font, '', $size); $pdf->Cell(39, $height, $data->m_item_bom_name, 1, 0, 'C'); // Tipe Wire $pdf->Ln($height); $pdf->SetFont($font, 'B', $size - 1); $pdf->Cell(32, $height, 'TOTAL WIRE(Kg)', 1, 0, 'L'); $pdf->SetFont($font, '', $size); $pdf->Cell(32, $height, number_format(round_up($data->t_po_detail_prod * $data->m_bom_qty / 1000, 2), 0, ',', '.'), 1, 0, 'C'); // Total Wire $pdf->SetFont($font, 'B', $size - 1);
protected function qrcode() { $qr = new \QRcode($this->entity->getUrl(), 'L'); $qr->disableBorder(); $w = 17; $x = $this->xPos + self::$WIDTH - 1 - $w; $y = $this->yPos + self::$HEIGHT - 3 - $w; $qr->displayFPDF($this->pdf, $x, $y, $w); }
/** * balise : QRCODE * mode : OUVERTURE * * @param array paramètres de l'élément de parsing * @return null */ function o_QRCODE($param) { if ($this->DEBUG_actif) { $this->DEBUG_add('QRCODE', true); } if (!isset($param['value'])) { $param['value'] = ''; } if (!isset($param['ec'])) { $param['ec'] = 'H'; } if (!isset($param['size'])) { $param['size'] = '0.6mm'; } if (!isset($param['style']['color'])) { $param['style']['color'] = '#000000'; } if (!isset($param['style']['background-color'])) { $param['style']['background-color'] = '#FFFFFF'; } if ($param['value'] === '') { return true; } $this->style->save(); $this->style->analyse('qrcode', $param); $this->style->setPosition($this->pdf->x, $this->pdf->y); $this->style->FontSet(); $x = $this->pdf->getX(); $y = $this->pdf->getY(); $s = $this->style->ConvertToMM($param['size']); $ec = $param['ec']; if (!in_array($ec, array('L', 'M', 'Q', 'H'))) { $ec = 'H'; } $color = $this->style->value['color']; $background = $this->style->value['background']['color']; require_once dirname(__FILE__) . '/qrcode/qrcode.class.php'; $qrcode = new QRcode($param['value'], $ec); $size = $s * $qrcode->getQrSize(); if (!$this->sub_part && !$this->isSubPart) { $qrcode->displayFPDF($this->pdf, $x, $y, $s, $background, $color); } unset($qrcode); // position maximale globale $this->maxX = max($this->maxX, $x + $size); $this->maxY = max($this->maxY, $y + $size); $this->maxH = max($this->maxH, $size); $this->pdf->setX($x + $size); $this->style->load(); $this->style->FontSet(); return true; }
<?php $msg = isset($_GET['msg']) ? $_GET['msg'] : ''; if (!$msg) { $msg = ""; } $err = isset($_GET['err']) ? $_GET['err'] : ''; if (!in_array($err, array('L', 'M', 'Q', 'H'))) { $err = 'L'; } require_once 'qrcode.class.php'; $qrcode = new QRcode(utf8_encode($msg), $err); # $qrcode->disableBorder(); $qrcode->displayPNG(300); $qrcode->displayFPDF($fpdf, $x, $y, $w, $background, $color);
protected function pQRDANFE($x = 0, $y = 0, $h = 0) { // CONFIGURAÇÃO DE POSIÇÃO $margemInterna = $this->margemInterna; $maxW = $this->wPrint; $w = $maxW * 1; $hLinha = $this->hLinha; $hBoxLinha = $this->hBoxLinha; $aFontTit = array('font' => $this->fontePadrao, 'size' => 8, 'style' => 'B'); $aFontTex = array('font' => $this->fontePadrao, 'size' => 8, 'style' => ''); $dhRecbto = ''; $nProt = ''; if (isset($this->nfeProc)) { $nProt = $this->pSimpleGetValue($this->nfeProc, "nProt"); $dhRecbto = $this->pSimpleGetValue($this->nfeProc, "dhRecbto"); } $qrcode = new QRcode($this->qrCode, 'M'); $wQr = 50; $hQr = 50; $yQr = $y + $margemInterna; $xQr = $w / 2 - $wQr / 2; $qrcode->displayFPDF($this->pdf, $xQr, $yQr, $wQr); $yQr = $yQr + $hQr + $margemInterna; $this->pTextBox($x, $yQr, $w, $hBoxLinha, "Protocolo de Autorização: " . $nProt . "\n" . $dhRecbto, $aFontTex, 'C', 'C', 0, '', false); }
/** * Generate and save or stream a PDF file for this product voucher * * @since 1.0 * @param string $path optional absolute path to the voucher directory, if * not supplied the PDF will be streamed as a downloadable file (used * for admin previewing of the PDF) * * @return mixed nothing if a $path is supplied, otherwise a PDF download * @throws Exception if the voucher image is not available */ public function generate_pdf($path = '') { // include the pdf library define('FPDF_FONTPATH', wc_pdf_product_vouchers()->get_plugin_path() . '/lib/fpdf/font'); require_once wc_pdf_product_vouchers()->get_plugin_path() . '/lib/fpdf/fpdf.php'; $upload_dir = wp_upload_dir(); $image = wp_get_attachment_metadata($this->get_image_id()); // make sure the image hasn't been deleted through the media editor if (!$image) { throw new Exception(__("Voucher image not found", WC_PDF_Product_Vouchers::TEXT_DOMAIN)); } // make sure the file exists and is readable if (!is_readable($upload_dir['basedir'] . '/' . $image['file'])) { throw new Exception(sprintf(__("Voucher image file missing or not readable: %s", WC_PDF_Product_Vouchers::TEXT_DOMAIN), $upload_dir['basedir'] . '/' . $image['file'])); } // determine orientation: landscape or portrait if ($image['width'] > $image['height']) { $orientation = 'L'; } else { $orientation = "P"; } // get the width and height in points $width_pt = $this->convert_pixels_to_points($image['width']); $height_pt = $this->convert_pixels_to_points($image['height']); // Create the pdf // When writing text to a Cell, the text is vertically-aligned in the middle $fpdf = new FPDF($orientation, 'pt', array($width_pt, $height_pt)); $fpdf->AddPage(); $fpdf->SetAutoPageBreak(false); // set the voucher image $fpdf->Image($upload_dir['basedir'] . '/' . $image['file'], 0, 0, $width_pt, $height_pt); // this is useful for displaying the text cell borders when debugging the PDF layout, // though keep in mind that we translate the box position to align the text to bottom // edge of what the user selected, so if you want to see the originally selected box, // display that prior to the translation $show_border = 0; foreach ($this->voucher_fields as $field_name => $field) { switch ($field_name) { case 'message': // voucher message text, this is multi-line, so it's handled specially $this->textarea_field($fpdf, 'message', $this->get_message(), $show_border, isset($field['text_align']) && $field['text_align'] ? $field['text_align'] : $this->voucher_text_align); break; case 'product_name': // product name (allow optional wrapping) if (apply_filters('wc_pdf_product_vouchers_product_name_multi_line', false, $this)) { $this->textarea_field($fpdf, 'product_name', strtoupper($this->get_product_name()), $show_border, isset($field['text_align']) && $field['text_align'] ? $field['text_align'] : $this->voucher_text_align); } else { $this->text_field($fpdf, 'product_name', strtoupper($this->get_product_name()), $show_border, isset($field['text_align']) && $field['text_align'] ? $field['text_align'] : $this->voucher_text_align); } break; case 'product_sku': // product sku $this->text_field($fpdf, 'product_sku', $this->get_product_sku(), $show_border, isset($field['text_align']) && $field['text_align'] ? $field['text_align'] : $this->voucher_text_align); break; case 'recipient_name': // recepient name $this->text_field($fpdf, 'recipient_name', $this->get_recipient_name(), $show_border, isset($field['text_align']) && $field['text_align'] ? $field['text_align'] : $this->voucher_text_align); break; case 'recipient_email': // recepient email $this->text_field($fpdf, 'recipient_email', $this->get_recipient_email(), $show_border, isset($field['text_align']) && $field['text_align'] ? $field['text_align'] : $this->voucher_text_align); break; case 'expiration_date': // expiry date $this->text_field($fpdf, 'expiration_date', $this->get_formatted_expiration_date(), $show_border, isset($field['text_align']) && $field['text_align'] ? $field['text_align'] : $this->voucher_text_align); break; case 'voucher_number': // voucher number $this->text_field($fpdf, 'voucher_number', $this->get_voucher_number(), $show_border, isset($field['text_align']) && $field['text_align'] ? $field['text_align'] : $this->voucher_text_align); break; case 'voucher_product_price': // voucher number $this->text_field($fpdf, 'voucher_product_price', $this->wc_price($this->get_product_price()), $show_border, isset($field['text_align']) && $field['text_align'] ? $field['text_align'] : $this->voucher_text_align); break; case 'qr-code': case 'qrcode': case 'qr': // Voucher QR-code require_once wc_pdf_product_vouchers()->get_plugin_path() . '/lib/fpdf/qrcode/qrcode.class.php'; $qrcode = new QRcode(str_replace("{X}", $this->get_voucher_number(), $this->voucher_fields[strtolower($this->{$field_name})]["label"]), 'L'); // error level : L, M, Q, H $qrcode->disableBorder(); //header("Content-type: text/plain"); //print_r($this->voucher_fields[strtolower($this->$field_name)]["position"]["color"]); //exit(); //$qrcode->displayPNG(); //exit(); $qrcode->displayFPDF($fpdf, $this->voucher_fields[strtolower($this->{$field_name})]["position"]["x"], $this->voucher_fields[strtolower($this->{$field_name})]["position"]["y"], $this->voucher_fields[strtolower($this->{$field_name})]["position"]["width"], $this->voucher_fields[strtolower($this->{$field_name})]["position"]["background"], $this->voucher_fields[strtolower($this->{$field_name})]["position"]["color"]); break; default: //header("Content-type: text/plain"); //print $this->$field_name . ":\n"; //print_r($this->voucher_fields); //print "\n\n"; //exit(); // TODO: allowing custom fields in this manner could lead to name clashes if they use a reserved field name. have to deal with that later if (isset($field['multiline']) && $field['multiline']) { $this->textarea_field($fpdf, $field_name, apply_filters('wc_pdf_product_vouchers_voucher_field_value', $this->voucher_fields[strtolower($this->{$field_name})]["label"], $this, $field_name, $field), $show_border, isset($field['text_align']) ? $field['text_align'] : $this->voucher_text_align); } else { $this->text_field($fpdf, $field_name, apply_filters('wc_pdf_product_vouchers_voucher_field_value', $this->voucher_fields[strtolower($this->{$field_name})]["label"], $this, $field_name, $field), $show_border, isset($field['text_align']) ? $field['text_align'] : $this->voucher_text_align); } break; } } // has additional pages? foreach ($this->additional_image_ids as $additional_image_id) { $fpdf->AddPage(); $additional_image = wp_get_attachment_metadata($additional_image_id); $fpdf->Image($upload_dir['basedir'] . '/' . $additional_image['file'], 0, 0, $this->convert_pixels_to_points($additional_image['width'] < $image['width'] ? $additional_image['width'] : $image['width']), $this->convert_pixels_to_points($additional_image['height'] < $image['height'] ? $additional_image['height'] : $image['height'])); } if ($path) { // save the pdf as a file $fpdf->Output($this->get_voucher_full_filename($path), 'F'); } else { // download file $fpdf->Output('voucher-preview-' . $this->id . '.pdf', 'I'); } }
/** * balise : QRCODE * mode : OUVERTURE * * @param array paramètres de l'élément de parsing * @return null */ function o_QRCODE($param) { if ($this->testIsDeprecated && (isset($param['size']) || isset($param['noborder']))) { HTML2PDF::makeError(9, __FILE__, __LINE__, array('QRCODE', 'size, noborder')); } $msg = ' <h1>QRCODE Tag</h1> <pre> <b>ATTENTION :</b> Vous devez télécharger la librairie "QR-code generator >=0.99" (sous licence LGPL) a cette adresse : <a href="http://prgm.spipu.net/php_qrcode" target="_blank">http://prgm.spipu.net/php_qrcode</a> et mettre tout son contenu dans ce repertoire : ' . str_replace('\\', '/', dirname(__FILE__)) . '/qrcode <b>WARNING:</b> You have to download the librairy "QR-code generator >=0.99" (under LGPL licence) at this url : <a href="http://prgm.spipu.net/php_qrcode" target="_blank">http://prgm.spipu.net/php_qrcode</a> and to put all his contents in this folder ' . str_replace('\\', '/', dirname(__FILE__)) . '/qrcode </pre>'; $file_class = dirname(__FILE__) . '/qrcode/qrcode.class.php'; if (!is_file($file_class)) { echo $msg; exit; } require_once $file_class; if (__CLASS_QRCODE__ < '0.99') { echo $msg; exit; } if ($this->DEBUG_actif) { $this->DEBUG_add('QRCODE', true); } if (!isset($param['value'])) { $param['value'] = ''; } if (!isset($param['ec'])) { $param['ec'] = 'H'; } if (!isset($param['style']['color'])) { $param['style']['color'] = '#000000'; } if (!isset($param['style']['background-color'])) { $param['style']['background-color'] = '#FFFFFF'; } if (isset($param['style']['border'])) { $borders = $param['style']['border'] != 'none'; unset($param['style']['border']); } else { $borders = true; } if ($param['value'] === '') { return true; } if (!in_array($param['ec'], array('L', 'M', 'Q', 'H'))) { $param['ec'] = 'H'; } $this->style->save(); $this->style->analyse('qrcode', $param); $this->style->setPosition(); $this->style->FontSet(); $x = $this->pdf->getX(); $y = $this->pdf->getY(); $w = $this->style->value['width']; $h = $this->style->value['height']; $size = max($w, $h); if (!$size) { $size = $this->style->ConvertToMM('50mm'); } $color = $this->style->value['color']; if (count($color) == 4) { $color = array(0, 0, 0); } $color[0] = floor($color[0] * 255.0); $color[1] = floor($color[1] * 255.0); $color[2] = floor($color[2] * 255.0); $background = $this->style->value['background']['color']; if (count($background) == 4) { $background = array(0, 0, 0); } $background[0] = floor($background[0] * 255.0); $background[1] = floor($background[1] * 255.0); $background[2] = floor($background[2] * 255.0); if (!$this->sub_part && !$this->isSubPart) { $qrcode = new QRcode($param['value'], $param['ec']); if (!$borders) { $qrcode->disableBorder(); } $qrcode->displayFPDF($this->pdf, $x, $y, $size, $background, $color); unset($qrcode); } // position maximale globale $this->maxX = max($this->maxX, $x + $size); $this->maxY = max($this->maxY, $y + $size); $this->maxH = max($this->maxH, $size); $this->pdf->setX($x + $size); $this->style->load(); $this->style->FontSet(); return true; }
function Footer() { global $data; $this->SetFont('Arial', 'B', 9); $this->SetXY(1, 170); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(143, 5, 'Cantidad con letra:', 1, 1, 'L', true); $this->Ln(10); //Colonia $this->SetFont('Arial', 'B', 9); $this->SetXY(1, 175); $this->SetDrawColor(225, 225, 225); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(1); $this->MultiCell(143, 5, "( " . num2letras($data['Comprobante']['total']) . " )", 0, 'L', true); //RFC $this->Ln(10); global $data; $this->SetFont('Arial', 'B', 9); $this->SetXY(1, 180); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(143, 5, @$data['Comprobante']['formaDePago'], 1, 1, 'L', true); $this->Ln(10); //Colonia $this->SetFont('Arial', 'B', 9); $this->SetXY(1, 185); $this->SetDrawColor(225, 225, 225); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(1); $this->MultiCell(143, 5, "Metodo de Pago: " . @$data['Comprobante']['metodoDePago'], 0, 'L', true); //RFC $this->Ln(10); //Colonia $this->SetFont('Arial', 'B', 9); $this->SetXY(1, 185); $this->SetDrawColor(225, 225, 225); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(1); $this->MultiCell(143, 5, "Metodo de Pago: " . @$data['Comprobante']['metodoDePago'], 0, 'L', true); //RFC $this->Ln(10); $this->SetFont('Arial', 'B', 9); $this->SetXY(145, 170); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(30, 5, 'Subtotal:', 1, 1, 'R', true); $this->Ln(10); //Colonia $this->SetFont('Arial', 'B', 9); $this->SetXY(175, 170); $this->SetDrawColor(225, 225, 225); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(1); $this->Cell(30, 5, money_format('$%i', @$data['Comprobante']['subTotal']), 0, 1, 'R', true); //RFC $this->Ln(10); $this->SetFont('Arial', 'B', 9); $this->SetXY(145, 175); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(30, 5, 'Descuento:', 1, 1, 'R', true); $this->Ln(10); //Colonia $this->SetFont('Arial', 'B', 9); $this->SetXY(175, 175); $this->SetDrawColor(225, 225, 225); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(1); $this->Cell(30, 5, money_format('$%i', @$data['Comprobante']['descuento']), 0, 1, 'R', true); //RFC $this->Ln(10); $this->SetFont('Arial', 'B', 9); $this->SetXY(145, 180); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(30, 5, 'IVA (' . number_format(@$data['Traslado']['tasa'], 0) . '%):', 1, 1, 'R', true); $this->Ln(10); //Colonia $this->SetFont('Arial', 'B', 9); $this->SetXY(175, 180); $this->SetDrawColor(225, 225, 225); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(1); $this->Cell(30, 5, money_format('$%i', @$data['Traslado']['importe']), 0, 1, 'R', true); //RFC $this->Ln(10); $this->SetFont('Arial', 'B', 9); $this->SetXY(145, 185); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(30, 5, 'ISR Retenido:', 1, 1, 'R', true); $this->Ln(10); //Colonia $this->SetFont('Arial', 'B', 9); $this->SetXY(175, 185); $this->SetDrawColor(225, 225, 225); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(1); $this->Cell(30, 5, money_format('$%i', "0"), 0, 1, 'R', true); //RFC $this->Ln(10); $this->SetFont('Arial', 'B', 9); $this->SetXY(145, 190); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(30, 5, 'IVA Retenido:', 1, 1, 'R', true); $this->Ln(10); //Colonia $this->SetFont('Arial', 'B', 9); $this->SetXY(175, 190); $this->SetDrawColor(225, 225, 225); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(1); $this->Cell(30, 5, money_format('$%i', "0"), 0, 1, 'R', true); //RFC $this->Ln(10); $this->SetFont('Arial', 'B', 9); $this->SetXY(145, 195); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(30, 5, 'Total:', 1, 1, 'R', true); $this->Ln(10); //Colonia $this->SetFont('Arial', 'B', 9); $this->SetXY(175, 195); $this->SetDrawColor(225, 225, 225); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(1); $this->Cell(30, 5, money_format('$%i', @$data['Comprobante']['total']), 0, 1, 'R', true); //RFC $this->Ln(10); $this->SetFont('Arial', 'B', 9); $this->SetXY(43, 200); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(215.5, 5, 'Sello Digital del CFDI:', 1, 1, 'L', true); $this->Ln(10); //Colonia $this->SetFont('Arial', '', 8); $this->SetXY(45, 205); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(0); $this->MultiCell(0, 4, @$data['sellocfd'], 0, 'T', 'C', true); //RFC $this->Ln(10); $this->SetFont('Arial', 'B', 9); $this->SetXY(43, 215); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(215.5, 5, 'Sello SAT:', 1, 1, 'L', true); $this->Ln(10); //Colonia $this->SetFont('Arial', '', 8); $this->SetXY(45, 220); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(0); $this->MultiCell(0, 4, @$data['sellocfd'], 0, 'T', 'C', true); //RFC $this->Ln(10); $this->SetFont('Arial', 'B', 9); $this->SetXY(43, 230); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(215.5, 5, utf8_decode('Cadena Original del complemento de certificación digital del SAT:'), 1, 1, 'L', true); $this->Ln(10); $original = "||1.0|9B090610-3F15-417A-A1B0-6CF83939DA53|2015-02-08T11:23:40|KnjqSjLIt4M/BM6GgqgXn/IitYnrP6jP3843o5zFTl47C53daZd279Wx42WcyKYpD1G3cnOEcBQpn8khSdFwMLFSaqVIS/Olu4KlgtR5Ii70yXfDB/6Pzx1GHL7kjYAjHa8Les3GQGaBpZQMs1UM6aL8zkh7IVrUIZplAZEGbNA=|00001000000202865018||"; //Colonia $this->SetFont('Arial', '', 8); $this->SetXY(45, 235); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(0); $this->MultiCell(0, 4, "{$original}", 0, 'T', 'C', true); //RFC $this->Ln(10); $this->SetFont('Arial', 'B', 9); $this->SetXY(0, 250); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(225, 225, 225); $this->SetTextColor(191, 81, 80); $this->SetLineWidth(0); $this->Cell(215.5, 5, utf8_decode('Este documento es una representación impresa de un cfdi'), 1, 1, 'C', false); $this->Ln(10); $qrcode = new QRcode($original, 'L'); // error level : L, M, Q, H $qrcode->displayFPDF($this, 1, 205, 40); //RECEPTOR $this->SetDrawColor(191, 81, 80); $this->SetLineWidth(1); $this->Line(1, 200, 215, 200); // Información del receptor //RECEPTOR $this->SetDrawColor(191, 81, 80); $this->SetLineWidth(1); $this->Line(1, 258, 215, 258); //Colonia $this->SetFont('Arial', 'B', 6); $this->SetXY(0, 260); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(0); $this->Cell(0, 4, "HERRAMIENTASCONTABLES.COM | CUITLAHUAC NO. 537 INT. 12 | COL. ANALCO | GUADALAJARA, JALISCO | MEXICO", 1, 1, 'C', true); //RFC $this->Ln(10); //Colonia $this->SetFont('Arial', 'B', 6); $this->SetXY(0, 263); $this->SetDrawColor(255, 255, 255); $this->SetFillColor(255, 255, 255); $this->SetTextColor(0, 0, 0); $this->SetLineWidth(0); $this->Cell(0, 4, "TEL. (33) 12 10 1985 | E-MAIL: CONTACTO@HERRAMIENTASCONTABLES.COM", 1, 1, 'C', true); //RFC $this->Ln(10); // Pie de página $this->SetY(-15); $this->SetFont('Arial', 'I', 8); $this->SetTextColor(128); $this->Cell(0, 10, utf8_decode('Página ' . $this->PageNo()), 0, 0, 'C'); }