[PHP] come stampare un Qr-code in FPDF

maxbar

Nuovo Utente
5 Giu 2017
5
0
1
47
Buongiorno a tutti, sono nuovo di questa chat anche se la visito spesso per confrontarmi con i preziosi consigli che giornalmente pubblicate.

In ogni caso ho un quesito da porvi e che magari sapete risolvere:
Dovrei stampare con FPDF un'image, e fin qua sembra facile, ma il punto è che devo stampare un qr-code che lo estraggo a video tramite il tag <img>.

ES: <img src='qr-code/php/qr_img.php?d=testo del qr-code' width='150' height='150'>

Qualcuno di voi saprebbe come potrei salvare l'immagine per poi mandarla in stampa su FPDF?
Oppure magari avete un modo per l'output dell'immagine del qr-code che mi permette anche di inserirla in "image()" di FPDF?

Grazie mille a tutti
 

maxbar

Nuovo Utente
5 Giu 2017
5
0
1
47
Grazie mille Marino51, ho guardato ma non è specificato come fare il collegamento. Ho fatto un paio di tentativi ma sembra che
vadano in conflitto l'uno con l'altro.

Magari ci sarà una strada più diretta
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
nel file leggimi (_lisez_moi.txt) trovo,
PHP:
 - il existe également une methode de sortie spécifique pour FPDF :
    $qrcode->displayFPDF($fpdf, $x, $y, $w, $background, $color);

prova a postare un esempio che rispecchi ciò che hai sviluppato

il link che ti ho postato è presente nella pagina degli esempi del sito FPDF ......
 
Ultima modifica:

maxbar

Nuovo Utente
5 Giu 2017
5
0
1
47
ok vedendolo così penso:
Codice:
php:
$qrcode->displayFPDF($fpdf

Quindi apro la classe FPDF e la chiamo:

Codice:
php:
include("fpdf.php");
$fpdf = new FPDF();

per la rimanenza:
Codice:
php:
, $x, $y, $w, $background, $color);

dammi le coordinate $x, $y, $w ( grandezza immagine )

per il $background, e il $color, se controllo la funzione che loro inseriscono le vedo dichiarate,
ma comunque mi chiede di dichiararle:

Codice:
php:
public function displayFPDF(&$fpdf, $x, $y, $w, $background=array(255,255,255), $color=array(0,0,0))
        {
            $size = $w;
            $s = $size/$this->getQrSize();

            $fpdf->SetDrawColor($color[0], $color[1], $color[2]);
            $fpdf->SetFillColor($background[0], $background[1], $background[2]);
            
            // rectangle de fond
            if ($this->disable_border)
            {
                $s_min = 4;
                $s_max = $this->qr_size-4;
                $fpdf->Rect($x, $y, $size, $size, 'F');
            }
            else
            {
                $s_min = 0;
                $s_max = $this->qr_size;
                $fpdf->Rect($x, $y, $size, $size, 'FD');
            }
            
            $fpdf->SetFillColor($color[0], $color[1], $color[2]);
            for($j=$s_min; $j<$s_max; $j++)
                for($i=$s_min; $i<$s_max; $i++)
                    if ($this->final[$i + $j*$this->qr_size+1])
                        $fpdf->Rect($x+($i-$s_min)*$s, $y+($j-$s_min)*$s, $s, $s, 'F');
            
            return true;
        }

In ogni caso inserisco i dati come spiegati da loro in questo modo:

Codice:
php:
<?php
require_once('qrcode.class.php');
include("fpdf.php");
$fpdf = new FPDF();
$x = 100;
$y = 200;
$s = 50;
$background = array(250,250,250);
$color = array(0,0,0);
$fpdf->AddPage();
$fpdf->SetFont('Times','',12);

//dovrei inserire anche una cella per la stampa:

$pdf->Cell(40,10,'ma qua cosa ci metto?',1,1);

$qrcode = new QRcode(utf8_encode($msg), $err);
$qrcode->displayFPDF($fpdf, $x, $y, $s, $background, $color);

$fpdf->Output();

?>

L'errore è il seguente:

Fatal error: Uncaught exception 'Exception' with message 'FPDF error: Some data has already been output, can't send PDF file' in C:\xampp\htdocs\php\qrcode\fpdf.php:271 Stack trace: #0 C:\xampp\htdocs\php\qrcode\fpdf.php(1063): FPDF->Error('Some data has a...') #1 C:\xampp\htdocs\php\qrcode\fpdf.php(999): FPDF->_checkoutput() #2 C:\xampp\htdocs\php\qrcode\index.php(74): FPDF->Output() #3 {main} thrown in C:\xampp\htdocs\php\qrcode\fpdf.php on line 271

E' chiaro che sto capendo male io, ma
secondo voi come dovrei fare?

Grazie
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
sicuramente hai uno script che genera il pdf,
nello script, in un punto che non crea fastidio, per generare il QRcode, inserisci
PHP:
$msg = "Le site du spipu\r\nhttp://spipu.net/";
$err = 'L';
require_once('qrcode.class.php');
$qrcode = new QRcode(utf8_encode($msg), $err);
$qrcode->disableBorder();
poi dove serve il QRcode inserisci
PHP:
$qrcode->displayFPDF($pdf, 120, 60, 20);
e vedi l'effetto che fa
per me è un bijoux
ora aggiusta i parametri
 

maxbar

Nuovo Utente
5 Giu 2017
5
0
1
47
Ho provato ma non mi dice che non posso usare una classe che è inserita in FPDF...
anche perchè poi nella variabile $pdf cosa inserisco?

Poi ho dato un 'altra occhiata ed ho provato così:
PHP:
include("fpdf.php");
$pdf = new FPDF();
$msg = "Le site du spipu\r\nhttp://spipu.net/";
$err = 'L';
require_once('qrcode.class.php');
$qrcode = new QRcode(utf8_encode($msg), $err);
$qrcode->disableBorder();

$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
//$pdf->Cell(40,10,$qrcode->displayFPDF($pdf, 120, 60, 20),1,1);
$qrcode->displayFPDF($pdf, 120, 60, 20);
//$pdf->Output();

In questo modo non mi da errori, ma non mi da nemmeno in stampa il QR-code inserito nel PDF.
Se attivo l'output mi da questo errore:

Fatal error: Uncaught exception 'Exception' with message 'FPDF error: Some data has already been output, can't send PDF file' in C:\xampp\htdocs\php\qrcode\fpdf.php:271 Stack trace: #0 C:\xampp\htdocs\php\qrcode\fpdf.php(1063): FPDF->Error('Some data has a...') #1 C:\xampp\htdocs\php\qrcode\fpdf.php(999): FPDF->_checkoutput() #2 C:\xampp\htdocs\php\qrcode\index.php(38): FPDF->Output() #3 {main} thrown in C:\xampp\htdocs\php\qrcode\fpdf.php on line 271


Non ho proprio idee...

 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
PHP:
<?php

$msg = "Le site du spipu\r\nhttp://spipu.net/";
$err = 'L';


require_once('qrcode.class.php');

$qrcode = new QRcode(utf8_encode($msg), $err);
$qrcode->disableBorder();


require_once 'FPDF\fpdf.php';

$pdf = new FPDF('P', 'mm', 'A4');
$pdf->SetMargins(1,1,1);          // margini : sinistra, alto, destra
$pdf->SetAutoPageBreak(true, 1);  // margine basso
$pdf->SetFont('Helvetica','B',16);
$pdf->AddPage();

$qrcode->displayFPDF($pdf, 120, 60, 20);

$pdf->Output();
?>
 

Allegati

  • qrcode.pdf
    7,6 KB · Visite: 547

maxbar

Nuovo Utente
5 Giu 2017
5
0
1
47
Eccezzionale!!!

Grazie mille Marino51

Comunque quello che dava conflitto era una riga HTML che avevo lasciato all'inizio della pagina.

In ogni caso grazie mille, sei un grande!!
 
Discussioni simili
Autore Titolo Forum Risposte Data
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
G leggere file txt e stampare con php il contenuto a video PHP 7
P [PHP] Aggiungere giorni e stampare risultato da data inserita in input PHP 3
P [PHP] Stampare record di diverse tabelle ma con nomi uguali PHP 6
K [PHP] Stampare tabella da database differenti. PHP 4
M Stampare con php e mysql PHP 8
L [PHP] stampare un'array di un database PHP 0
T PHP+MYSQL: stampare record con numero progressivo PHP 3
cristoforo58 Stampare dei valori XML in PHP PHP 0
elpirata [PHP] Stampare i valori di una variabile scritta su più righe PHP 1
K [PHP] Cancellare e Stampare tabella PHP 3
N [PHP] stampare pagina html PHP 0
F [PHP] Stampare dati inviati tramite ajax PHP 0
elpirata [RISOLTO]Stampare giorno della settimana in tabella php PHP 6
elpirata [PHP] [RISOLTO] Stampare classe css in base al risultato della query PHP 6
Fuego2806 [PHP] Stampare dati Form su immagine di sfondo con html PHP 70
webmachine [PHP] Problema: Stampare tutte le occorrenza di una SELECT PHP 2
L Stampare immagine php PHP 2
F stampare array php PHP 2
P Stampare '<?' in php PHP 7
G Stampare valori in più div con PHP e MySQL PHP 4
L PHP/MySQL: stampare da una tabella attributi raggruppati per genitore PHP 1
F stampare una select con php PHP 7
S Stampare il risultato di una query inner jon in php.... PHP 4
M Stampare contenuto pagine php criptate PHP 4
L Non riesco a stampare BitMap con PHP PHP 1
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0

Discussioni simili