Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Danilo Garcia

Imprimindo documento PDF com FPDF

Recommended Posts

Bom dia pessoal!

Estou com um problema aparentemente complicado.

Tenho um documento gerado em pdf no browser com fpdf e preciso fazer aparecer na tela logo quando abre o documento, a janela de dialogo de impressao.

window.print() nao funciona.

 

vou postar um pouco do codigo:

CODE
<?php

require("../include/fpdf.php");

 

$pdf=new FPDF('L','cm',array(18,25));

$pdf->AddPage();

$pdf->SetMargins(0,0,0);

$pdf->SetAutoPageBreak(false,0);

$pdf->SetFont('Times','B',12);

//Nome da pessoa

$pdf->SetXY(1,2.5);

$pdf->Cell(1,1,$funcionario[1]);

//Filiação Pai

$pdf->SetXY(3.7,3.5);

$pdf->Cell(1,1,$funcionario[16]);

 

.....

 

$pdf->Output();

?>

 

Existe algum codigo que possibilite isso?

 

Obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala danilo...tem como sim..para isso você vai ter q usar duas classe extendidas para o fpdf. Segue a classe que to usando:

//arquivo fpdf_js.php

<?php
require('fpdf/fpdf.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>>');
		}
	}
}
?>
no arquivo que vai gerar o pdf você chamar essa classe e adiciona uma outra classe extendida, abaixo você cria uma instancia para a clase e no final carrega a tela de impressao:

...
require_once("fpdf_js.php");
//class para abrir caixa de print automaticamente
	class PDF_AutoPrint extends PDF_Javascript
	{
		function AutoPrint($dialog=false)
		{
		$param=($dialog ? 'true' : 'false');
		$script="print($param);";
		$this->IncludeJS($script);
		}

		function AutoPrintToPrinter($server, $printer, $dialog=false)
		{
		$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);
		}
	}
	//fim de class extentida
			   $pdf   =   new FPDF();
			  $pdf=new PDF_AutoPrint();	
			   ...
			  $pdf->AutoPrint(true); //carrega janela de impressao
			  $pdf->Output();

espero ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.