Fpdf letöltés hiba!
HTML:pdf_creator.php:Consloe.log kimenetnél ezt a hibát írja ki:
Vagy:
Ha itt:
átírom
Akkor simán lementi a pdf-et a tárhelyre.
■
<a href="#" onClick="FromPDF('<?php echo $partner_dat; ?>','<?php echo $array_text; ?>','<?php echo $array_text_kiir; ?>','Partner')" name="<?php echo $partner_dat['ID']; ?>" title="PDF"><img src="img/pdf_icon.png" width="14" height="14"></a>
<script type="text/javascript">
function FromPDF(data,text,text2,site){
$.post( 'phppdf/pdf_creator.php',{data:data,text:text,text2:text2,site:site}, function(data) {
if(data.length==0){
//ok
console.log('ok');
}else{
//nem ok
console.log(data);
}
//return data;
});
}
</script>
require('fpdf.php');
class PDF extends FPDF
{
// Page header
function Header(){
// Logo
//$this->Image('logo.png',10,6,30);
// Arial bold 15
$this->SetFont('Arial','B',16);
// Title
$this->Cell(500,20,'Site',0,0,'C');
// Line break
$this->Ln(40);
}
// Page footer
function Footer(){
// Position at 1.5 cm from bottom
$this->SetY(-15);
// Arial italic 8
$this->SetFont('Arial','I',12);
// Page number
$this->Cell(0,10,' Page '.$this->PageNo(),0,0,'C');
}
}
$pdf = new PDF('P','pt','A4');
$pdf->AddPage();
$pdf->Cell(150,20,'Data',1,0,'L');
$pdf->Output('Site2.pdf','I');
Some data has already been output, can't send PDF file
Vagy:
%PDF-1.3
3 0 obj
<</Type /Page
/Parent 1 0 R
/Resources 2 0 R
/Contents 4 0 R>>
endobj .........
3 0 obj
<</Type /Page
/Parent 1 0 R
/Resources 2 0 R
/Contents 4 0 R>>
endobj .........
Ha itt:
$pdf->Output('Site2.pdf','I');
átírom
$pdf->Output('Site2.pdf','F');
Akkor simán lementi a pdf-et a tárhelyre.
A válasz benne van a kérdésben
Output()
hívása előtt. Lehet ez egy kósza whitespace egy php nyitótag előtt, UTF BOM, vagy szándékos kiírás. Vedd ki ezeket a kódból, és jónak kell lennie.Ha kerestél volna, megspórolhattad volna a válaszra várakozás idejét :)
Ezen már rég túl vagyok.
Ezesetben: a példakód nálam
Egyébként ha a leírtakat valóban megtetted, akkor ha leírtad volna a kérdésben, akkor ezt a kört megspórolhattuk volna. Egy jó kérdéssel mennyi időt lehet nyerni :)
[szerk]
1. Próbálgattam kicsit. BOM, újsor karakterek, normál tab, szóköz úgy látszik nem zavarja az
Output()
hívás előtt, viszont egyéb egzotikusabb whitespace, vagy nem whitespace karakterek igen.Amit még megpróbálhatsz, hogy
console.log(data)
helyett próbálsz egyconsole.log(encodeURI(data))
-t például, hogy lásd, mi lehet a hibaüzenet előtti kimenet (ha az whitespace, és azért nem látszik).[/szerk]
Az egész kódot??
Máskor mikkor felraktam, meg azért szidtak le, mert, hogy senki nem fogja átnézni az egészet.
Van egy fő fálj, az betölti egy divbe Pl a Partner oldalt, az meg a benne lévő divbe betölti a partner_table.php -t. Abba van a tábla sorok végén a PDF ikon/link. amit leírtam.
Mindent Jquery kezel, és oldal újratöltés nélkül jönnek be a különböző oldalak, és a feladatok is úgy hajtódnak végre, hogy csak a megfelelő div tölti magát újra AJAX-al.
A function a fő fájl elején van.
Az a fájl így kezdődik:
Egyébként mit értesz kósza Echo és Print alatt, mikkor az egész fájl abból áll?
PL:
Fájlok
Én amúgy a
phppdf/pdf_creator.php
cenzúrázott pastebinre rakására gondoltam. De mielőtt ezt megteszed, készíts róla egy biztonsági másolatot (ha netán még nincs és nincs verziókezelve a projekt), és cseréld le a tartalmát arra a kódra, amit ide példának beraktál. Úgy sem működik?Az
encodeURI()
-s változatnál az az érdekes, amikor a hibaüzenetet írja, nem amikor a tényleges pdf elkészül.Azt mondjuk nem értem, hogy ha le akarod töltetni a pdf fájlt, akkor miért ajaxozol egy sima hidden mezős form helyett amiből csak egy submit látszana, és új ablakban nyílna meg.
ÓÓÓ hogy az a
Köszönöm így már működik szépen.
Tied a pont.