Come da oggetto sto tentando di memorizzare un pdf realizzato dinamicamente con la libreria php TCPDF in un database MySQL.
Il campo del database è BLOB.. e gli invio l'output ottenuto in formato stringa con la libreria TCPDF:
Quando visualizzo il campo da phpmyadmin trovo il file nella colonna BLOB, e se ci clicco sopra mi chiede di scaricarlo (è in formato .bin). Scaricato e rinominato in .pdf → compare il mio PDF leggibile!
Il problema nasce quando tento di visualizzarlo dal browser (dalla mia web application), interrogando il database (uso PDO).
E' una chiamata AJAX ("se clicchi il pulsante 'btn_pdf' visualizza il pdf"):
Mi apre la finestra.. nella barra riporta tutto il contenuto del file:
"data:application/pdf,%25PDF-1.7%0A%25%uFFFD%uFFFD%uFFFD%uFFFD%0A7 0 obj%0A%...ecc..ecc.."
(mi pare in formato binario) e la pagina è vuota!
Dove sbaglio?
[EDIT: passando con il mouse sulla finestra (bianca, vuota) che visualizza il pdf (richiamato da MySQL) mi sono accorto che il puntatore riconosce l'area del logo della mia azienda (anche se è tutto bianco).. e se ci clicco si sopra apre il link → ergo il pdf viene visualizzato tutto bianco, ma qualcosa gli arriva!!! A questo punto ipotizzo sia un problema di visualizzazione.
Sono accette tutte le possibili soluzioni: in sostanza, a me serve memorizzare nel DB il pdf realizzato dinamicamente, e poterlo richiamare per visualizzarlo quando occorre..]
Il campo del database è BLOB.. e gli invio l'output ottenuto in formato stringa con la libreria TCPDF:
PHP:
$pdf->Output('', 'S');
Quando visualizzo il campo da phpmyadmin trovo il file nella colonna BLOB, e se ci clicco sopra mi chiede di scaricarlo (è in formato .bin). Scaricato e rinominato in .pdf → compare il mio PDF leggibile!
Il problema nasce quando tento di visualizzarlo dal browser (dalla mia web application), interrogando il database (uso PDO).
E' una chiamata AJAX ("se clicchi il pulsante 'btn_pdf' visualizza il pdf"):
Codice:
$.ajax({
url: 'select_pdf_dal_db.php',
type: 'post',
data: {myjson: myjson},
dataType: 'html',
success: function(html) {
// html → restituisce col comando echo la stringa memorizzata nel db
window.open( "data:application/pdf," + escape( html ) , '', 'height=650,width=840');
}
});
Mi apre la finestra.. nella barra riporta tutto il contenuto del file:
"data:application/pdf,%25PDF-1.7%0A%25%uFFFD%uFFFD%uFFFD%uFFFD%0A7 0 obj%0A%...ecc..ecc.."
(mi pare in formato binario) e la pagina è vuota!
Dove sbaglio?
[EDIT: passando con il mouse sulla finestra (bianca, vuota) che visualizza il pdf (richiamato da MySQL) mi sono accorto che il puntatore riconosce l'area del logo della mia azienda (anche se è tutto bianco).. e se ci clicco si sopra apre il link → ergo il pdf viene visualizzato tutto bianco, ma qualcosa gli arriva!!! A questo punto ipotizzo sia un problema di visualizzazione.
Sono accette tutte le possibili soluzioni: in sostanza, a me serve memorizzare nel DB il pdf realizzato dinamicamente, e poterlo richiamare per visualizzarlo quando occorre..]
Ultima modifica: