Impression PDF

Résolu
kiki2sirom Messages postés 153 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 23 décembre 2010 - 17 janv. 2008 à 10:49
 ecrins38000 - 27 juin 2015 à 15:22
salut à la communauté

j'ai une interrogation :

    * quelle serait la meilleure solution pour pouvoir, en cliquant sur un bouton, imprimer à la suite 1 ou plusieurs PDF se trouvant déjà sur le serveur ?

est-il posible de le faire sans ouvrir les PDF ?
sinon est-ce plutôt possible en les ouvrant en background ?
est-ce possible en lançant l'impression sans ouvrir la fenêtre d'impression classique ?
une classe d'impression existerait-elle pour ce faire ?
...

en gros je cherche une solution pour un client où celui-ci clique sur un icône qui va imprimer un ou plusieurs fichiers PDF qui se trouve sous htdocs..../pdf/... : solution idéale, donc une solution la plus transparente possible pour le client

Merci par avance pour votre aide

kiki
A voir également:

6 réponses

malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
17 janv. 2008 à 12:35
Tu peux le faire avec FPDF!

Moi j'ai un exemple où le fichier au final se lance tout seul à l'imprimante :-) Je sais plus d'où je le sors, surement du site de fpdf.

Je te le file tel quel, je ne fais pas de support.

<?php

define('FPDF_FONTPATH','font/');
require('fpdf.php');
require('fpdf_js.php');

class PDF extends PDF_Javascript
{
    function Pointille($x1=0,$y1=0,$x2=210,$y2=297,$epaisseur=0.2,$nbPointilles=50)
    {
        $this->SetLineWidth($epaisseur);
        $longueur=abs($x1-$x2);
        $hauteur=abs($y1-$y2);
        if($longueur>$hauteur) {
            $Pointilles=($longueur/$nbPointilles)/2; // taille des pointilles
        }
        else {
            $Pointilles=($hauteur/$nbPointilles)/2;
        }
        for($i=$x1;$i<=$x2;$i+=$Pointilles+$Pointilles) {
            for($j=$i;$j<=($i+$Pointilles);$j++) {
                if($j<=($x2-1)) {
                    $this->Line($j,$y1,$j+1,$y1); // on trace le pointillé du haut, point par point
                    $this->Line($j,$y2,$j+1,$y2); // on trace le pointillé du bas, point par point
                }
            }
        }
        for($i=$y1;$i<=$y2;$i+=$Pointilles+$Pointilles) {
            for($j=$i;$j<=($i+$Pointilles);$j++) {
                if($j<=($y2-1)) {
                    $this->Line($x1,$j,$x1,$j+1); // on trace le pointillé du haut, point par point
                    $this->Line($x2,$j,$x2,$j+1); // on trace le pointillé du bas, point par point
                }
            }
        }
    }

function AutoPrint($dialog=false)
{
    //Lance la boîte d'impression ou imprime immediatement sur l'imprimante par défaut
    $param=($dialog ? 'true' : 'false');
    $script="print($param);";
    $this->IncludeJS($script);
}

function AutoPrintToPrinter($server, $printer, $dialog=false)
{
    //Imprime sur une imprimante partagée (requiert Acrobat 6 ou supérieur)    $script "var pp getPrintParams();";
    if($dialog)        $script ."pp.interactive pp.constants.interactionLevel.full;";
    else        $script ."pp.interactive pp.constants.interactionLevel.automatic;";    $script ."pp.printerName '\\\\\\\".$server."\\\".$printer."';";
    $script .= "print(pp);";
    $this->IncludeJS($script);
}

}

function generatePDF(){
    $pdf=new PDF();
    $pdf->Open();
    $pdf->AddPage();
    $pdf->SetDrawColor(200);
    $pdf->Pointille(10,10,200,100);
    $pdf->SetFont('Arial','B',30);
    $pdf->SetXY(40,10);
    $pdf->Cell(125,30,"test",0,0,'C',0);
    $pdf->AutoPrint(false);
    $pdf->Output('test2.pdf');
}

function showGeneratedPDF($name){
    $pdf->Output($name);
}

echo '<form name="generate" method="POST" action="">';
echo '[JavaScript:document.generate.submit(); generate and print]';
echo '</form>';

$gen = 0;
if (isset($_POST)){
        if (isset($_POST['gen'])){
                $gen = 1;
        }
}

$show = 0;
if (isset($_POST)){
        if (isset($_POST['show'])){
                $show = 1;
        }
}

if ($gen == 1){
        generatePDF();

    if ($show==1) showGeneratedPDF('test2.pdf');

    echo '<form name="generatedPDF" method="POST" action="">';
    echo '[JavaScript:document.generatedPDF.submit(); show]';
    echo '</form>';

        echo '&nbsp;[test2.pdf Imprimer]';
}
?>

/*************************** LE FICHIER JS  ***************************/
<?php

class PDF_Javascript extends FPDF {

    var $javascript;
    var $n_js;

    function IncludeJS($script) {
        $this->javascript=$script;
    }

    function _putjavascript() {
        $this->_newobj();
        $this->n_js=$this->n;
        $this->_out('<<');
        $this->_out('/Names [(EmbeddedJS) '.($this->n+1).' 0 R ]');
        $this->_out('>>');
        $this->_out('endobj');
        $this->_newobj();
        $this->_out('<<');
        $this->_out('/S /JavaScript');
        $this->_out('/JS '.$this->_textstring($this->javascript));
        $this->_out('>>');
        $this->_out('endobj');
    }

    function _putresources() {
        parent::_putresources();
        if (!empty($this->javascript)) {
            $this->_putjavascript();
        }
    }

    function _putcatalog() {
        parent::_putcatalog();
        if (isset($this->javascript)) {
            $this->_out('/Names <</JavaScript '.($this->n_js).' 0 R>>');
        }
    }
}
?>
 

*****
0
Rejoignez-nous