Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Scrivere sopra pdf esistente con fpdi

    Buon giorno a tutti... sto utilizzando questa funzione fpdi per poter scrivere sopra un pdf esistente.
    Però mi sono accorto che,quando genera il pdf con la scritta, risulta di dimensioni inferiori dell'originale.
    Codice PHP:
    /** MAKE SURE TO HAVE THE INCLUDES RUNNING PROPERLY */
    require_once('FPDF/fpdf.php');
    require_once(
    'FPDI/fpdi.php');

    class 
    WaterMark
    {
        public 
    $pdf$file$newFile,
            
    $wmText "FAC-SIMILE";

        
    /** $file and $newFile have to include the full path. */
        
    public function __construct($file$newFile)
        {
            
    $this->pdf =& new FPDI();
            
    $this->file $file;
            
    $this->newFile $newFile;
        }

        
    /** $file and $newFile have to include the full path. */
        
    public static function applyAndSpit($file$newFile)
        {
            
    $wm = new WaterMark($file$newFile);

            if(
    $wm->isWaterMarked())
                return 
    $wm->spitWaterMarked();
            else{
                
    $wm->doWaterMark();
                return 
    $wm->spitWaterMarked();
            }
        }

        
    /** @todo Make the text nicer and add to all pages */
        
    public function doWaterMark()
        {
            
    $currentFile $this->file;
            
    $newFile $this->newFile;

            
    $pagecount $this->pdf->setSourceFile($currentFile);

            for(
    $i 1$i <= $pagecount$i++){
                                
    $this->pdf->addPage();
                
    $tplidx $this->pdf->importPage($i);
                
    $this->pdf->useTemplate($tplidx1010100);
                
    // now write some text above the imported page
                
    $this->pdf->SetFont('Arial''I'40);
                
    $this->pdf->SetTextColor(255,0,0);
                
    $this->pdf->SetXY(25135);
                
    $this->_rotate(55);
                
    $this->pdf->Write(0$this->wmText);
                                
    $this->_rotate(0);
            }

            
    $this->pdf->Output($newFile'F');
        }

        public function 
    isWaterMarked()
        {
            return (
    file_exists($this->newFile));
        }

        public function 
    spitWaterMarked()
        {
            return 
    readfile($this->newFile);
        }

        protected function 
    _rotate($angle,$x=-1,$y=-1) {

            if(
    $x==-1)
                
    $x=$this->pdf->x;
            if(
    $y==-1)
                
    $y=$this->pdf->y;
            if(
    $this->pdf->angle!=0)
                
    $this->pdf->_out('Q');
            
    $this->pdf->angle=$angle;

            if(
    $angle!=0){
                
    $angle*=M_PI/180;
                
    $c=cos($angle);
                
    $s=sin($angle);
                
    $cx=$x*$this->pdf->k;
                
    $cy=($this->pdf->h-$y)*$this->pdf->k;

                
    $this->pdf->_out(sprintf(
                    
    'q %.5f %.5f %.5f %.5f %.2f %.2f cm 1 0 0 1 %.2f %.2f cm',
                    
    $c,$s,-$s,$c,$cx,$cy,-$cx,-$cy));
            }
        } 

    }

    header('Content-type: application/pdf');
    WaterMark::applyAndSpit('C:\xampp\htdocs\tst\test0.pdf','C:\xampp\htdocs\tst\output0.pdf'); 
    Domanda: forse ci sono parametri width e height da modificare?se si dove?
    Grazie mille...

  2. #2
    non vi preoccupate ho risolto...
    grazie

  3. #3
    ed invece come solitamente capita...eccoti il problema che non ti aspettavi.
    praticamente qui:
    Codice PHP:
    $text "asdasdasd";
    class 
    WaterMark
    {
        public 
    $pdf$file$newFile,$wmText=$text
    dove voglio valorizzare con $text, il testo che dovrebbe comparire nel pdf,mi restituisce questo errore:
    codice:
    Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\writeOnPdf.php on line 10
    sapreste dirmi perchè?grazie mille

  4. #4
    Utente di HTML.it L'avatar di kakashi
    Registrato dal
    Feb 2005
    Messaggi
    357
    stai passando $text in modo irregolare.

  5. #5
    è....e quindi?sai come posso risolvere per favore?
    grazie

  6. #6
    Utente di HTML.it L'avatar di kakashi
    Registrato dal
    Feb 2005
    Messaggi
    357
    Codice PHP:
    $file = new WaterMark(); 
    $file->wmText"Ciccio";

    public 
    $pdf$file$newFile,$wmText

  7. #7
    ciao buon giorno, io devo passargli una stringa in modo dinamico...
    l'utente inserisce una serie di numeri e lettere in una input text, inviando per $_POST questa stringa allo script di cui sopra, dovrebbe poi stamparmela.
    Come faccio?
    ti ringrazio ancora e ti chiedo scusa per non essere stato chiaro.

  8. #8
    Utente di HTML.it L'avatar di kakashi
    Registrato dal
    Feb 2005
    Messaggi
    357
    Per richiamare la classe e definire la variabile

    Codice PHP:
    $file = new WaterMark();  
    $file->wmText$_POST["tuoCAMPO"]; 
    Modifichi nella classe il public così
    Codice PHP:
    public $pdf$file$newFile,$wmText

  9. #9
    Modifichi nella classe il public così
    Codice PHP:
    public $pdf$file$newFile,$wmText
    Questo già l'avevo fatto....quello che non capisco,data la mia ignoranza è in quale porzione di script inserire il resto

    Originariamente inviato da kakashi
    Per richiamare la classe e definire la variabile
    Codice PHP:
    $file = new WaterMark();  
    $file->wmText$_POST["tuoCAMPO"]; 
    grazie della tua pazienza

  10. #10
    poi un'altra cosa che mi sono accorto e che mi porterà sicuramente dei problemi qui:
    Codice PHP:
    header('Content-Disposition: attachment; filename="Allegato 3_2.pdf"');

    WaterMark::applyAndSpit('C:/xampp/htdocs/writeOnPdf/Allegato 3.pdf',
    'C:/xampp/htdocs/writeOnPdf/Allegato 3_2.pdf'); 
    praticamente mi sono accorto che se genero il primo pdf tutto ok..
    ma se voglio generarne un secondo inviando per $_POST altri valori, lo script mi fa vedere sempre il primo pdf generato..

    domanda:
    per risolvere questo problema, nel momento che l'utente salva il pdf, dovrei eliminarlo dalla cartella nella quale viene generato,altrimenti se più utenti ne devono creare uno proprio con i propri dati,vedranno il pdf del primo utente.
    spero di essermi spiegato....
    grazie mille.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.