Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
script per generazione immagine da template
allora, adesso con immagine allieta a dx mi sballa il testo, mentre con img allineata a sx si vede quasi correttamente (a parte il fatto che c'è troppa distanza tra il testo e l'immagine).
Cita messaggio
Prova a togliere i due valori float del CSS al tag figure (ce ne dovrebbe essere uno per l'allineamento a sinistra e uno per l'allineamento a destra).
Mattia!
Cita messaggio
il floatc'era solo per l'allineamento a destra, ma comunque (sempre e solo a dx) il testo va a capo in maniera scorretta, ed è appiccicato all'immagine.
A sx, invece, l'img è appiccicata ai margini superiori e il testo continua a essere distante.
Cita messaggio
Il CSS dovrebbe essere unico sia per quando l'immagine è a destra che per quando si trova a sinistra.
Per avere un aiuto più preciso dovresti pubblicare il codice CSS attuale.
Mattia!
Cita messaggio
certamente:
Codice:
/*!
*  Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
*  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
body{
    margin:0;
    font-size:13px;
    line-height:1.231;
    background:#F7F7F5}
body,button,input,select,textarea{
    font-family:sans-serif;
    color:#222}
b,strong{font-weight:bold}
img{
    border:0;
    -ms-interpolation-mode:bicubic;
    vertical-align:middle;
    display:block}
textarea{
    overflow:auto;
    vertical-align:top;
    resize:vertical}
.greyBg{background-color:#F7F7F5}
html{-webkit-font-smoothing:antialiased}
html,body{margin:0;padding:0}
body{font-family:"Open Sans",sans-serif}
h1{
    font-size:44px;
    line-height:44px;
    color:#4e4e4e;
    font-weight:300;
    margin:0;
    padding:0}
p{
    color:#4e4e4e;
    font-size:16px;
    line-height:1.7;
    font-weight:200}
ul{margin:0;padding:0}
ul li{
    margin:0;
    padding:0;
    list-style-type:none}
.header{
    min-height:150px;
    position:relative;
    overflow:hidden;
    height:600px}
header{
    z-index:501;
    font-family:"Open Sans",sans-serif;
    position:fixed;
    top:40px}
figure{
    margin:0;
    width:70%;
    overflow:hidden;
    position:relative;
    max-height:470px;
    max-width:900px}
img{
    width:auto\9;
    height:auto;
    max-width:100%;
    width:100%;
    vertical-align:middle;
    border:0;
    -ms-interpolation-mode:bicubic}
.teaser-details h3{
    font-size:20px;
    margin:0px 0px 3px 0px;
    color:#4e4e4e;
    font-weight:lighter}
.teaser-details h5{
    font-size:23px;
    margin:0px;
    font-weight:bold;
    color:#4e4e4e}
.left figure:after{
    right:-1px;
    top:50%;
    border:solid transparent;
    content:" ";
    height:0;
    width:0;
    position:absolute;
    pointer-events:none;
    border-color:rgba(136,183,213,0);
    border-right-color:#F7F7F5;
    border-width:20px;
    margin-top:-20px;
    z-index:100}
.right figure{
    margin:2% 0 0 0%;
    right:0}
.right figure:after{
    left:-1px;
    top:30%;
    border:solid transparent;
    content:" ";
    height:0;
    width:0;
    position:absolute;
    pointer-events:none;
    border-color:rgba(136,183,213,0);
    border-left-color:#F7F7F5;
    border-width:20px;
    margin-top:-20px;
    z-index:100}
.right .teaser-details{
    text-align:right;
    padding-top:3%;
    width:26%;
    float:right;
    margin-right:25px}
.square{width:70%}
.square figure{
    width:60%;
    max-width:470px}
.square figure a:after{display:block;
content:''}
.square figure a{max-width:500px}
.square.left{float:left;margin-left:10%}
.square.left figure a{float:right}
.square.right{float:right;margin-right:10%}
.square.right figure a{float:left}
.square .teaser-details{width:35%}
.firma{color:#666;margin-top:10px}
/*# sourceMappingURL=screen.css.map */
Cita messaggio
Ho ripulito il codice HTML e quello CSS in modo da partire da una base più semplice per fare le modifiche.

Il codice del file "templates.php":
Codice PHP:
<?php
error_reporting
(E_ALL);

// form per l'inserimento immagine
define('UPLOAD_DIR''./uploads/');

$immagine '';
if(isset(
$_FILES['upload']))
{
    
$file $_FILES['upload'];
    if(
$file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
    {
        
move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']);
        
$immagine UPLOAD_DIR.$file['name'];
    }
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Home</title>
<link rel="stylesheet" href="screen.css" type="text/css" />
<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,700,300" rel="stylesheet" type="text/css" />
</head>
<body>
<?php if (isset($_POST['posizione']) && $_POST['posizione'] == 1) : ?>
    <table class="left">
        <tr>
            <td class="image">
                <figure><img src="<?php echo $immagine;?>" alt="cover" /></figure>
                <div class="firma"><b>Dott.ssa Fabrizia Minciullo</b> - Dietista e Biologa nutrizionista</div>
            </td>
            <td class="text">
                <h2><?php echo htmlspecialchars($_POST['titoletto']);?></h2>
                <h1><?php echo htmlspecialchars($_POST['titolo']);?></h1>
                <p><?php echo htmlspecialchars($_POST['testo']);?></p>
            </td>
        </tr>
    </table>
<?php else : ?>
    <table class="right">
        <tr>
            <td class="text">
                <h2><?php echo htmlspecialchars($_POST['titoletto']);?></h2>
                <h1><?php echo htmlspecialchars($_POST['titolo']);?></h1>
                <p><?php echo htmlspecialchars($_POST['testo']);?></p>
            </td>
            <td class="image">
                <figure><img src="<?php echo $immagine;?>" alt="cover" /></figure>
                <div class="firma"><b>Dott.ssa Fabrizia Minciullo</b> - Dietista e Biologa nutrizionista</div>
            </td>
        </tr>
    </table>
    <table>
<?php endif;?>
</body>
</html> 

Il codice CSS:
Codice:
html,body{
    margin: 0;
    padding: 0;
    font-size: 13px;
    line-height: 1.231;
    background: #F7F7F5;
    font-family: "Open Sans", sans-serif;
    color: #4E4E4E;
    -webkit-font-smoothing:antialiased
}
b,strong{
    font-weight: bold;
}
table{
    width: 100%;
    border: 0;
}
table td{
    padding: 20px;
    vertical-align: middle;
}
table .text{
    width: 30%;
}
table.right .text{
    text-align: right;
}
table .text h1{
    margin: 0;
    font-size: 23px;
    font-weight: bold;
}
table .text h2{
    margin: 0;
    font-size: 20px;
    font-weight:lighter;
}
table .text p{
    font-size: 16px;
    line-height: 1.7;
    font-weight: 200;
}
table .image{
    width: 70%;
}
table .image figure{
    position: relative;
    margin: 0;
    width: 100%;
    overflow: hidden;
}
table .image figure img{
    display: block;
    max-width: 100%;
    height: auto;
    border: 0;
    -ms-interpolation-mode: bicubic;
}
table.left .image figure:after{
    content: " ";
    position: absolute;
    z-index: 100;
    top: 50%;
    right: -1px;
    height: 0;
    width: 0;
    margin-top: -20px;
    border: solid transparent;
    border-right-color: #F7F7F5;
    border-width: 20px;
    pointer-events: none;
}
table.right .image figure:after{
    content: " ";
    position: absolute;
    z-index: 100;
    top: 50%;
    left: -1px;
    height: 0;
    width: 0;
    margin-top: -20px;
    border: solid transparent;
    border-left-color: #F7F7F5;
    border-width: 20px;
    pointer-events: none;
}
table .image .firma{
    margin-top: 10px;
    color: #666;
}
Mattia!
Cita messaggio
ok, direi che finalmente ci siamo! Smile
l'unica cosa adesso è che abbasserei tutto un po' dal margine alto, ho provato con margin-top sul body ma nn ha funzionato...
dopodichè dimmi pure come fare a generare il pdf che poi diventerà jpeg

grazie
Cita messaggio
Devi assegnare il margin-top al tag table.
Mattia!
Cita messaggio
ok, ci siamo! Big Grin

tocca alla parte di generazione dell'immagine...
Cita messaggio
La prima cosa da fare è generare un PDF dal codice HTML e CSS. Per farlo si può usare dompdf.
Da questa pagina devi scaricare l'ultima versione disponibile (preferibilmente non beta) e, dopo aver estratto il contenuto dall'archivio ZIP, la carichi in una cartella sul tuo sito.

In "templates.php" prima di:
Codice PHP:
?>
<!DOCTYPE html> 

Inserisci:
Codice PHP:
ob_start(); 

Dopo:
Codice PHP:
</body>
</
html

Inserisci (naturalmente devi modificare il percorso del file "dompdf_config.inc.php"):
Codice PHP:
<?php
$html 
ob_get_contents();
ob_end_clean();
require_once(
'sottocartella/in/cui/hai/inserito/dompdf/dompdf_config.inc.php');
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream('file.pdf'); 

Se tutto funziona correttamente, ti dovrebbe far scaricare il file PDF generato dal codice HTML e CSS.
Mattia!
Cita messaggio
Ciao Mattia,
ho applicato lo script che hai dettoed effettivamente quando clicco su "Crea Screenshot" mi genera il pdf con le info html, ma non mantiene le impostazioni CSS.

Per capire cosa posso aver sbagliato ti metto il codice di template.php di seguito:
Codice:
<?php
error_reporting(E_ALL);

// form per l'inserimento immagine
define('UPLOAD_DIR', './uploads/');

$immagine = '';
if(isset($_FILES['upload']))
{
    $file = $_FILES['upload'];
    if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
    {
        move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']);
        $immagine = UPLOAD_DIR.$file['name'];
    }
}
ob_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Home</title>
<link rel="stylesheet" href="screen.css" type="text/css" />
<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,700,300" rel="stylesheet" type="text/css" />
</head>
<body>
<?php if (isset($_POST['posizione']) && $_POST['posizione'] == 1) : ?>
    <table class="left">
        <tr>
            <td class="image">
                <figure><img src="<?php echo $immagine;?>" alt="cover" /></figure>
                <div class="firma"><b>Dott.ssa Fabrizia Minciullo</b> - Dietista e Biologa nutrizionista</div>
            </td>
            <td class="text">
                <h2><?php echo htmlspecialchars($_POST['titoletto']);?></h2>
                <h1><?php echo htmlspecialchars($_POST['titolo']);?></h1>
                <p><?php echo htmlspecialchars($_POST['testo']);?></p>
            </td>
        </tr>
    </table>
<?php else : ?>
    <table class="right">
        <tr>
            <td class="text">
                <h2><?php echo htmlspecialchars($_POST['titoletto']);?></h2>
                <h1><?php echo htmlspecialchars($_POST['titolo']);?></h1>
                <p><?php echo htmlspecialchars($_POST['testo']);?></p>
            </td>
            <td class="image">
                <figure><img src="<?php echo $immagine;?>" alt="cover" /></figure>
                <div class="firma"><b>Dott.ssa Fabrizia Minciullo</b> - Dietista e Biologa nutrizionista</div>
            </td>
        </tr>
    </table>
    <table>
<?php endif;?>
</body>
</html>
<?php
$html = ob_get_contents();
ob_end_clean();
require_once('dompdf/dompdf_config.inc.php');
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream('file.pdf');
?>
Cita messaggio
Il codice PHP è corretto. Ho fatto una prova e il CSS viene letto, ma, come ti avevo avvisato in un messaggio precedente, alcune istruzioni non sarebbero state supportate correttamente.
I problemi che ho riscontrato io sono:
  • font Open Sans non utilizzato;
  • h1[/] e [i]h2 non allineati correttamente;
  • immagine rimpicciolita troppo.

Per quanto riguarda il font, dovrebbe essere tutto corretto, ma forse Altervista non permette di leggere file esterni (in questo caso il CSS e il font su Google).

Per l'allineamento di h1 e h2, dovresti provare ad aggiungere a "table .text h1" e a "table .text h2":
Codice:
display: block;

Per l'immagine troppo piccola dovresti provare a togliere a "table .image figure" il valore "width: 100%" (se non cambia nulla, rimettilo).
Mattia!
Cita messaggio
secondo me, a questo punto, è meglio che banalmente facciamo un passo indietro e quando le viene generato il template si fa lo screenshot della pagina. A meno che non troviamo un'alternativa efficace...

in ogni caso pur facendo le modifiche da te dette non si risolve il problema. Probabilmente, come dici tu, il font non viene letto correttamente, per questo motivo non si riescono a differenziare i corpi dei testi. Anche l'immagine non capisco perché venga visualizzata così piccola.
Cita messaggio
Se intendi fare lo screenshot a mano, allora devi rimettere il file "templates.php" com'era prima di inserire dompdf.
Mattia!
Cita messaggio
dipende se riusciamo a risolvere il problema oppure no.
Potremmo risolvere usando un font non google?
Cita messaggio
Se il problema sono i server di Altervista che non permettono di leggere i file esterni, dovresti poter risolvere caricando i file del font Open Sans sul tuo sito senza usare il servizio di Google.
Mattia!
Cita messaggio


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  creare template html per instbot phyton Chandler 163 103.346 20/02/2021 14:38
Ultimo messaggio: Chandler
  Script PHP per testare sicurezza Wifi Chandler 112 224.347 23/04/2018 18:18
Ultimo messaggio: Mattia
  shortlink con script di riconoscimento device Chandler 7 10.027 01/02/2017 16:09
Ultimo messaggio: Chandler
  estrarre script Chandler 4 11.704 22/01/2015 20:06
Ultimo messaggio: Chandler
  Script traduttore Chandler 75 171.741 21/10/2012 16:53
Ultimo messaggio: Chandler
  Erroe di parsing nell'esecuzione di uno script filippo9639 1 8.167 25/01/2009 22:09
Ultimo messaggio: Mattia
  Problemo con script per importare dati di una tabella su un altro hosting filippo9639 7 20.500 27/12/2008 17:43
Ultimo messaggio: Mattia
  Script Upload Chandler 43 102.368 10/12/2008 16:22
Ultimo messaggio: Mattia
  Errore parziale su script PHP filippo9639 12 47.389 30/11/2008 16:17
Ultimo messaggio: filippo9639
  Problema con script PHP per trasferimento tabelle dati filippo9639 10 32.057 23/11/2008 18:08
Ultimo messaggio: filippo9639

Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)