Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138

    Creazione file .pdf ed upload automatico file

    Salve,

    Volevo realizzare la seguente cosa:

    Da una query nel db ottengo un insieme di risultati formattati in una pagina html, a questo punto
    desidererei creare un file pdf da tale pagina ed fare in automatico l'uplad di tale file nella homepage
    del mio sito. Il tutto lo vorrei fare io lanciando lo script ogni tanto, appena aggiungo una struttura
    nel db, ovviamente lo script lo lancerei solo io e non gli utenti. Ho dato un'occhiata a FPDF volevo
    sapere da qualcuno che l'ha usato se fa al caso mio ed inoltre vorrei capire come fare l'upload
    del file .pdf, una volta realizzato, nel server utilizzando l'ftp, non conosco le funzioni che lo fanno.

    Vi ringrazio per disponibilità.

  2. #2
    Non capisco ma perchè dovresti fare l'upload del file sul server quando ti basta dire allo script di salvartelo?

    se quando fai l'output del file gli dai il nome questo te lo salva già.

    $pdf->Output("file.pdf");

    se poi voui aprirlo

    echo "<SCRIPT>document.location='file.pdf';</SCRIPT>";



  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138
    Ok... grazie...

    Quindi mi consigli di utilizzare coem script FPDF?

  4. #4
    Certamente si!

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138

    FPDF e Immagini

    Salve,

    Sto utilizzando la libreria FPDF per generare in automatico un catalogo in .pdf delle strutture inserite nel
    mio database, vi illustro il segmento di codice, quello che vorrei realizzare:

    Allora interrognado il db, vorrei generare un documento in cui sono inseriti prima il Nome della Struttura,
    poi la foto e qui viene il problema, (se non metto la foto va perfettamente), vorrei inserire la foto di cui nel
    db ho il link, e ho notato che me la mette sempre e comunque in alto a sx con le coordinate della funzione,
    volevo sapere se c'è un modo per farla stampare sulla linea, così come avviene con il testo...

    Penso che una soluzione ci sia, ma avendo analizzato le varie funzioni non mi è venuto in mente nulla...

    Fatemi sapere se avete delle idee.

    while($row = mysql_fetch_object($result))
    {
    $pdf->SetFont('Arial','B',14);
    $pdf->Write(10,$row->nome);
    $pdf->Ln();
    //$pdf->Image('logo.png',2,2); ????
    $pdf->SetFont('Arial','',10);
    $pdf->Write(6,$row->descrizione);
    $pdf->Ln();
    $pdf->Write(6,'Tel: ');
    $pdf->Write(6,$row->telefono);
    $pdf->Ln();
    $pdf->Write(6,'E Mail: ');
    $pdf->Write(6,$row->email);
    $pdf->Ln();
    $pdf->Write(6,'Sito Internet: ');
    $pdf->Write(6,$row->sito);
    $pdf->Ln();
    $pdf->Ln();
    }

    Saluti

  6. #6
    Dal manuale:

    Image(string file, float x, float y [, float w [, float h [, string type [, mixed link]]]])

    Parametri
    file
    Nome del file che contiene l'immagine.
    x
    Ascissa dell'angolo superiore-sinistro.
    y
    Ordinata dell'angolo superiore-sinistro.
    w
    Larghezza dell'immagine nella pagina. Se non viene specificata o uguale a zero, sarà calcolata automaticamente.
    h
    Altezza dell'immagine nella pagina. Se non viene specificata o uguale a zero, sarà calcolata automaticamente.
    type
    Formato immagine. I valori possibili sono (case insensitive): JPG, JPEG, PNG. Se non specificato, il tipo sarà riferito all'estensione del file.
    link
    URL o identificatore generato da AddLink().

    Quindi tu metti la foto a due pixel dall'alto a sinistra.
    Devi giocare con i valori.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138
    Grazie per l'aiuto...

    sapevo che i due interi sono la distanza dall'angolo in alto a sx, solo che facendo la query al db recupero un testo che è una descrizione e non so a priori quanto è lunga, quindi recuperando con la query varie strutture come faccio a sapere a priori la distanza dal margine in alto??....

    Non c'è una funzione che mi fa inserire la foto in una riga?

    Quello che vorrei sarebbe una cosa di questo tipo:

    testo
    foto
    testo
    testo
    .....

    In cui la foto viene stampata sequnzialmente nella riga che specifico...

    Fammi sapere se hai qualche idea...

    Ciao e grazie

  8. #8
    Testo e immagini sono due cose separate nel pdf

    Devi giocare con i valori.

    Comunque quello che vuoi fare si può fare tranquillamente. L'avrò fatto centinaia di volte.

    fra un testo e l'altro ci metti ln(xxx) xxx è l'altezza della foto quindi:

    immagine (alta xxx)
    cella
    ln(xxx)
    cella
    ln()
    cella
    ln()

    ecc

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138

    ancora io...

    Scusami se ti stresso di nuovo....

    Ho provato a lavorare un po' sulle tue indicazioni ma ho sempre dei problemi... ti inserisco il frammento di codice con cui voglio mettere la foto, se me lo correggi capisco meglio come fai per inserire la foto... visto che l'hai fatto molte volte penso ti ci voglia un attimo...

    while($row = mysql_fetch_object($result))
    {
    $pdf->SetFont('Arial','B',14);
    $pdf->Write(10,$row->nome);
    $pdf->Ln();
    //$pdf->Image('logo.png',2,2); ????
    $pdf->SetFont('Arial','',10);
    $pdf->Write(6,$row->descrizione);
    $pdf->Ln();
    $pdf->Write(6,'Tel: ');
    $pdf->Write(6,$row->telefono);
    $pdf->Ln();
    $pdf->Write(6,'E Mail: ');
    $pdf->Write(6,$row->email);
    $pdf->Ln();
    $pdf->Write(6,'Sito Internet: ');
    $pdf->Write(6,$row->sito);
    $pdf->Ln();
    $pdf->Ln();
    }

    Il nome dell $row prese dal db è piuttosto chiaro da capire, sono tutti campi testuali con lunghezza al massimo una riga tranne che per ->descrizione che può essere fino a 3 righe... Tieni presente che il recupero da db cicla per tutte le strutture inserite...

    Sarebbe possibile trovare il sistema per imporre di aprire una nuova pagina ogni 3 strutture inserite?

    Grazie per l'aiuto.....

  10. #10
    A quanto ho capito vuoi inserire un'immagine dopo un testo, solo che dato che il testo può avere lunghezza variabile non riesci a stabilire a priori le coordinate in cui inserire l'immagine.
    Se il problema e questo puoi risolvere usando la funzione

    GetY()

    che ti restituisce il valore di Y in quel momento.
    In pratica, dopo aver stampato il testo inserisci una cosa del genere:

    $y = $pdf->GetY(); //In $y viene memorizzato il valore attuale di y

    e poi inserisci l'immagine usando un comando simili al seguente:

    $pdf->Image(img.jpg', 0, $y);

    Per quanto riguarda il discorso di aprire una pagina ogni 3 strutture basta che inizializzi una variabile contatore che andrai ad incrementare prima della chiusura del ciclo while.
    Subito dopo l'inizio del ciclo, invece, ti calcoli il modulo di questa variabile contatore per capire se è divisibile per 3. In caso postivo inserisci

    $pdf->AddPage();

    altrimenti prosegui.

    CIAU CIAU
    Se la vita ti sorride, ti sta prendendo per il cul0

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.