- Home
- Categorie
- Coding e Sistemistica
- PHP
- Creare un file .pdf
-
La cosa più difficile è che vorrei che l'utente deve compilare dei campi, per esempio una fattura, e con il tasto fine o uno qualsiasi deve creare il pdf, ovviamente con i dati inseriti dall'utene.
Non saprei neanche come impostarlo....
-
Beh puoi recuperare le variabili dal form e inserirli nel documento pdf
-
si ma prima di questo c'è una pagina vuota con un pulsante crea pdf con la funzione che rimanda a pdf.php. E questo, cioè pdf.php ha i parametri per creare il documento. Come faccio a dargli i parametri della pagina precedente?
Se no dovrei mettere qualcosa nella pagina pdf.php che include i dati che ho fatto inserire nel form nella pagina precedente e richiamarli per la creazione del pdf cioè in pdf.php, ovviamente richiamarli e print nella parte giusta della pagina....
troppo facile.... ma non so neanche da dove cominciare...
-
semplice.... nella pagina vuota dove c'è il pulsante crea pdf richiami i campi della fattura. Mi spiego: in questa pagina ti crei un form e all'interno ci metti i campi della fattura che serviranno per la creazione del pdf e li imposti nascosti. Gli assegni i valori delle variabili che hai recuperato dalla pagina della fattura. Il pulsante crea pdf lo metti all'interno del form e poi il form avrà come action il file pdf.php.
Nota bene che la pagina vuota non ti serve in questo caso perchè potresti fare tutto dalla pagina della fattura: alla fine del form della fattura ci metti il pulsante stampa pdf. Da qui prima gli fai salvare i dati nel db o dove vuoi e poi con gli stessi dati gli fai creare il pdf.
Spero di essere stato chiaro
-
Sei stato chiarissimo, ma nn ho capito delle cose... ho bisogno di un database mysql? poi hai detto che devo nascondere i campi... ti invio un email con l'esempio della fattura.
Grazie
-
Non serve il database se i dati vanno a finire solo sul pdf, fai un form con destinazione la pagina che crea i pdf e poi metti gli input. Nella pagina php recuperi i valori degli input e fai quello che vuoi (inserirli nel pdf)
-
Bene, funziona! Ora però devo modoficare delle cose e poi vi faccio sapere.
Ciao Loris, Grazie.
-
Ciao Loris3000, la fattura elettronica funziona ma non tutta, in pratica il campo quando inserisco l'importo lordo non lo stampa sul file .pdf.. strano forse è sbagliata la funzione? stò provando a modificarala ma ninte encora
l'"id" del form che invia i dati è 'lordo'
il file che crea la fattura in pdf è:
[php]$lordo = $_POST['lordo'];define('FPDF_FONTPATH','D://');//metti il percorso che hai tu
require('D:/');//metti il percorso che hai tuclass PDF extends FPDF
{
}//Creo la pagina
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','B',10);//Scrivo i dati
$pdf->Cell(0,5,'Nominativo Affiliato: '.$affiliato,0,1);
$pdf->Cell(0,5,'Nato/a a: '.$nato_a,0,1);
$pdf->Cell(0,5,'Data di nascita: '.$nato_il,0,1);
$pdf->Cell(0,5,'Residente in Via/Piazza: '.$indirizzo,0,1);
$pdf->Cell(0,5,'Città: '.$citta,0,1);
$pdf->Cell(0,5,'Cod. Fiscale: '.$cf,0,1);
$pdf->Cell(0,5,'Codice Affiliato: '.$codice,0,1);$pdf->Ln(10); $pdf->Cell(0,10,'Roma, .....................',0,0,'R'); $pdf->Ln(20); $pdf->Cell(120,5,' ',0,0); $pdf->Cell(0,5,'Spett.le',0,1); $pdf->Cell(120,5,' ',0,0); $pdf->Cell(0,5,'S........ S.r.l.',0,1); $pdf->Cell(120,5,' ',0,0); $pdf->Cell(0,5,'P.IVA 00000000000',0,1); $pdf->Cell(120,5,' ',0,0); $pdf->Cell(0,5,'Via Lorenzo Il Magnifico, 7',0,1); $pdf->Cell(120,5,' ',0,0); $pdf->Cell(0,5,'00555 - Roma',0,1); //Vado a capo (Line break) $pdf->Ln(13);
//Continuo a scrivere i dati
$pdf->Cell(40,5,'Compenso per attività di collaborazione occasionale',0,1);
$pdf->Cell(40,5,'Periodo di riferimento '.$periodo,0,0);
$pdf->Cell(0,5,number_format($lordo,'2', ',', '.'),0,1,'R');
$pdf->Ln(2);
$pdf->Cell(40,5,'Ritenuta di acconto del 20% su ? '.number_format($lordo,'2', ',', '.'),0,0);//Calcolo la ritenuta del 20%
$ritenuta = ($lordo/100)*20;$pdf->Cell(0,5,number_format($ritenuta,'2', ',', '.'),0,1,'R'); $pdf->Ln(2);
//disegno la linea
$pdf->Line(180,131,200,131);$pdf->Cell(40,5,'Compenso netto',0,0);
//Calcolo il netto
$netto = $lordo-$ritenuta;$pdf->Cell(0,5,number_format($netto,'2', ',', '.'),0,1,'R'); $pdf->Ln(10); $pdf->MultiCell(SCRITTURA___________________________',0,1);
//Stampo il documento
$pdf->Output();[/php]Dove sta l'errore?
:bho:Non mi calcola la ritenuta di acconto e non visualizza il lordo nel Pdf
-
Secondo me l'errore è nel calcolo.
[PHP]//Continuo a scrivere i dati
$pdf->Cell(40,5,'Compenso per attività di collaborazione occasionale',0,1);
$pdf->Cell(40,5,'Periodo di riferimento '.$periodo,0,0);
$pdf->Cell(0,5,number_format($lordo,'2', ',', '.'),0,1,'R');
$pdf->Ln(2);
$pdf->Cell(40,5,'Ritenuta di acconto del 20% su ? '.number_format($lordo,'2', ',', '.'),0,0);//Calcolo la ritenuta del 20%
$ritenuta = ($lordo/100)*20;$pdf->Cell(0,5,number_format($ritenuta,'2', ',', '.'),0,1,'R'); $pdf->Ln(2);
//disegno la linea
$pdf->Line(180,131,200,131);$pdf->Cell(40,5,'Compenso netto',0,0);
//Calcolo il netto
$netto = $lordo+$ritenuta;$pdf->Cell(0,5,number_format($netto,'2', ',', '.'),0,1,'R'); $pdf->Ln(10); $pdf->MultiCell(200,5,'Operazione esclusa dal campo di applicazione IVA, ai sensi art. 5 comma 2 D.P.R. 633/1972, in quanto trattasi di collaborazione occasionale resa da soggetto che non esercita per professione abituale attività di lavoro autonomo.',0,1);
[/PHP]
:():
-
Non penso sia nel calcolo perchè nel pdf che ti ho allegato è la risultante di quello che veniva a me lanciando lo script e come puoi vedere veniva fuori tutto.
Forse il problema è nella riga :
$pdf->MultiCell(SCRITTURA___________________________',0,1);
Prima di "SCRITTURA manca l'apostrofo e quindi non chiudendo la stringa l'ultima funzione che riguarda la creazione del file non viene eseguita.
Inoltre nelle dichiarzazioni sopra tu hai messo come percorso:
require('D:/');//metti il percorso che hai tu
ma la libreria fppdf dove la richiami?
-
Lo script non l'ho toccato dove ho scritto scrittura.. ho scritto questo $pdf->MultiCell(SCRITTURA___________________________',0,1); solo per il post, ma non ho toccato niente.
In require('D:/');//metti il percorso che hai tula libreria la richiamo in una cartella diversa, esempio:
[PHP]
define('FPDF_FONTPATH','D:/Inetpub/webs/MIOSITO/fpdf16/font/');//metti il percorso che hai tu
require('D:/Inetpub/webs/MIOSITO/fpdf16/fpdf.php');//metti il percorso che hai tu[/PHP]Non mi calcola la ritenuta di acconto e non visualizza il lordo nel Pdf
Per esempio:
nel form importo lordo scrivo €50 e quando vado a vedere nel pdf esce tutto tranne €50, esce sempre 00Compenso per attività di collaborazione occasionale
Periodo di riferimento 0,00
Ritenuta di acconto del 20% su € 0,00 0,00
Compenso netto 0,00Io ho solo compilato i dati e dato il percorso:
[PHP]
define('FPDF_FONTPATH','D:/Inetpub/webs/MIOSITO/fpdf16/font/');//metti il percorso che hai tu
require('D:/Inetpub/webs/MIOSITO/fpdf16/fpdf.php');//metti il percorso che hai tu[/PHP]che ne dici? forse è nelle cartelle fpdf che non funziona o manca qualcosa? Cioè il calcolo della ritenuta viene fatto dalla cartella fpdf vero? quindi se il tuo script è guisto e non funziona può darsi che è la cartella fpdf?
-
il calcolo viene fatto nel file fattura.php quindi quando viene generato il pdf. A me funziona perfettamente (l'ho appena riprovato).
Prova a non dare tutto il percorso quando richiami le librerie:
define('FPDF_FONTPATH','librerie pdf/font/');//metti il percorso che hai tu
require('librerie pdf/fpdf.php');//metti il percorso che hai tu
quindi prova a dargli solo la directory dove si trova (vedi le voci sottolineate) e non tutta la url completa.
-
niente ancora... prima i due files li avevo in una cartella separata adesso li ho messi nella cartella fpdf e nn funziona ancora.
sopra vedo che tu hai il path librerie/font io ho solo font nn è che la mia libreria è incompleta ? tu dove l'hai scaricata?
-
io l'ho scaricata dal sito ufficiale fpdf.org