Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Da PHP a PDF passando per CGI

    Ciao a tutti,
    ho un problema piuttosto...come dire... ...così.

    In pratica devo creare un PDF da uno script PHP e fin qui tutto bene, utilizzo fpdf e va tutto a meraviglia.
    Il problema nasce dal fatto che il contenuto non devo inserirlo manualmente o recuperarlo da un form o simili ma estrarlo da un frame che carica uno script CGI.

    Non so se è molto chiaro, posto il codice che faccio prima:

    ##########################
    <?php
    $cgipath="/nagios/cgi-bin/";

    function createPDF(){
    define('FPDF_FONTPATH','font/');
    require('fpdf.php');

    $pdfDoc = new fpdf();
    $pdfDoc->Open();
    $pdfDoc->AddPage();

    $pdfDoc->SetTextColor(0);
    $pdfDoc->SetFont('Arial', '', 9);

    $pdfDoc->Text(5, 10, ????????);

    $pdfDoc->output();
    }
    ?>

    <iframe id="report" name="report" width="100%" height="100%" src="<?php echo $cgipath; ?>trends.cgi" SCROLLING="no" FRAMEBORDER="0" border=0></iframe>


    ##########################

    A me serve che il PDF risultante contenga il risultato del CGI.
    E possibile o posso smettere di buttarci tempo e salute?

    Grazie a tutti in anticipo

  2. #2
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Probabilmente esistono soluzioni più eleganti, ma in questo momento non mi vengono in mente, per cui ti propongo questa

    Aggiungi un campo input nascosto, al click sul pulsante stampa (o in qualsiasi altro momento tu scelga di far generare il pdf) prendi il contenuto dell'iframe tramite javascript ed inseriscilo nel campo nascosto, infine invia il form allo script php che genera il pdf.

    In questo modo dovresti risolvere, anche se, ripeto, non sarà la soluzione più elegante
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  3. #3
    uhm...direi che potrebbe essere un'idea, dell'eleganza al momento mi importa relativamente.
    Però mi sa che non ho colte bene il passaggio.
    Mi faresti un esempio minimale per favore?(abbi pazienza sono un p fuso ^^)

    Comunque grazie della proposta.

  4. #4
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Allora, supponiamo che la pagina contenente il frame con lo script sia questa:

    Codice PHP:
    <form action="generate_pdf.php" method="post" id="pdf_generator">
        <
    input type="hidden" name="report_cont" id="report_cont" />
    </
    form>

    <
    iframe src="script.cgi" id="report"></iframe>

    [
    url="javascript:getFrameCont()"]STAMPA[/url
    La funzione javascript è questa:
    codice:
    function getFrameCont() {
    	var doc = null;
    	if(document.getElementById('report').contentDocument) {
    		doc = document.getElementById('report').contentDocument;
    	} else {
    		doc = document.getElementById('report').contentWindow;
    	}
    	document.getElementById('report_cont').value = doc.body.innerHTML;
    	document.getElementById('pdf_generator').submit();
    }
    Ovviamente apporta le dovute modifiche alla pagina e allo script
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

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.