Modul: Html to PDF Converter und Exportieren (Artikel)
-
- Beiträge: 270
- Registriert: Do 27. Apr 2006, 02:38
- Wohnort: Tief im Westen
- Kontaktdaten:
Hallo zusammen,
habe mit dem Modul ein kleines Problem. Nach dem Aufruf des Moduls von meiner Webseite (www.rv-rauxel.de) erscheint ein neues Browserfenster, das den Inhaltsbereich darstellt und der folgenden Fehlermeldung:
Da muss ich wohl blind sein wegen der "{"
Hier mein Code mit der Bitte um einen Blick eines Erfahrenen:
[/code]
habe mit dem Modul ein kleines Problem. Nach dem Aufruf des Moduls von meiner Webseite (www.rv-rauxel.de) erscheint ein neues Browserfenster, das den Inhaltsbereich darstellt und der folgenden Fehlermeldung:
Code: Alles auswählen
Parse error: parse error, unexpected T_FUNCTION, expecting '{' in /homepages/17/d118844875/htdocs/cms/pdf/fpdf_eps.php on line 19
Hier mein Code mit der Bitte um einen Blick eines Erfahrenen:
Code: Alles auswählen
<?php
/*******************************************************************************
* Software: FPDF_EPS
* Version: 1.3
* Date: 2006-07-28
* Author: Valentin Schmidt
*
* Last Changes:
* - handle binary bytes in front of PS code (which before caused troubles for ereg)
* - fixed positioning and BoundingBox handling code (was totally screwed)
* - fix for BoundingBox detection without space after : (now Corel-compatible)
* - added some dirty code to handle compound paths
* - support for custom colors (x operator)
*******************************************************************************/
require('pdf/html2fpdf.php');
class PDF_EPS extends HTML2FPDF
function PDF_EPS($orientation='P',$unit='mm',$format='A4'){
parent::HTML2FPDF($orientation,$unit,$format);
}
function ImageEps ($file, $x, $y, $w=0, $h=0, $link='', $useBoundingBox=true){
$data = file_get_contents($file);
if ($data===false) $this->Error('EPS file not found: '.$file);
# strip binary bytes in front of PS-header
$start = strpos($data, '%!PS-Adobe');
if ($start>0) $data = substr($data, $start);
# find BoundingBox params
ereg ("%%BoundingBox:([^\r\n]+)", $data, $regs);
if (count($regs)>1){
list($x1,$y1,$x2,$y2) = explode(' ', trim($regs[1]));
}
else $this->Error('No BoundingBox found in EPS file: '.$file);
$start = strpos($data, '%%EndSetup');
if ($start===false) $start = strpos($data, '%%EndProlog');
if ($start===false) $start = strpos($data, '%%BoundingBox');
$data = substr($data, $start);
$end = strpos($data, '%%PageTrailer');
if ($end===false) $end = strpos($data, 'showpage');
if ($end) $data = substr($data, 0, $end);
# save the current graphic state
$this->_out('q');
$k = $this->k;
if ($useBoundingBox){
$dx = $x*$k-$x1;
$dy = $y*$k-$y1;
}else{
$dx = $x*$k;
$dy = $y*$k;
}
# translate
$this->_out(sprintf('%.3f %.3f %.3f %.3f %.3f %.3f cm', 1,0,0,1,$dx,$dy+($this->hPt - 2*$y*$k - ($y2-$y1))));
if ($w>0){
$scale_x = $w/(($x2-$x1)/$k);
if ($h>0){
$scale_y = $h/(($y2-$y1)/$k);
}else{
$scale_y = $scale_x;
$h = ($y2-$y1)/$k * $scale_y;
}
}else{
if ($h>0){
$scale_y = $h/(($y2-$y1)/$k);
$scale_x = $scale_y;
$w = ($x2-$x1)/$k * $scale_x;
}else{
$w = ($x2-$x1)/$k;
$h = ($y2-$y1)/$k;
}
}
# scale
if (isset($scale_x))
$this->_out(sprintf('%.3f %.3f %.3f %.3f %.3f %.3f cm', $scale_x,0,0,$scale_y, $x1*(1-$scale_x), $y2*(1-$scale_y)));
# handle pc/unix/mac line endings
$lines = split ("\r\n|[\r\n]", $data);
$u=0;
$cnt = count($lines);
for ($i=0;$i<$cnt;$i++){
$line = $lines[$i];
if ($line=='' || $line{0}=='%') continue;
$len = strlen($line);
if ($len>2 && $line{$len-2}!=' ') continue;
$cmd = $line{$len-1};
switch ($cmd){
case 'm':
case 'l':
case 'v':
case 'y':
case 'c':
case 'k':
case 'K':
case 'g':
case 'G':
case 's':
case 'S':
case 'J':
case 'j':
case 'w':
case 'M':
case 'd' :
case 'n' :
case 'v' :
$this->_out($line);
break;
case 'x': # custom colors
list($c,$m,$y,$k) = explode(' ', $line);
$this->_out("$c $m $y $k k");
break;
case 'Y':
$line{$len-1}='y';
$this->_out($line);
break;
case 'N':
$line{$len-1}='n';
$this->_out($line);
break;
case 'V':
$line{$len-1}='v';
$this->_out($line);
break;
case 'L':
$line{$len-1}='l';
$this->_out($line);
break;
case 'C':
$line{$len-1}='c';
$this->_out($line);
break;
case 'b':
case 'B':
$this->_out($cmd . '*');
break;
case 'f':
case 'F':
if ($u>0){
$isU = false;
$max = min($i+5,$cnt);
for ($j=$i+1;$j<$max;$j++)
$isU = ($isU || ($lines[$j]=='U' || $lines[$j]=='*U'));
if ($isU) $this->_out("f*");
}else
$this->_out("f*");
break;
case 'u':
if ($line{0}=='*') $u++;
break;
case 'U':
if ($line{0}=='*') $u--;
break;
#default: echo "$cmd<br>"; #just for debugging
}
}
# restore previous graphic state
$this->_out('Q');
if ($link)
$this->Link($x,$y,$w,$h,$link);
}
}# END CLASS
# for backward compatibility
if (!function_exists('file_get_contents')){
function file_get_contents($filename, $use_include_path = 0){
$file = @fopen($filename, 'rb', $use_include_path);
if ($file){
if ($fsize = @filesize($filename))
$data = fread($file, $fsize);
else {
$data = '';
while (!feof($file)) $data .= fread($file, 1024);
}
fclose($file);
return $data;
}else
return false;
}
}
?>
-
- Beiträge: 270
- Registriert: Do 27. Apr 2006, 02:38
- Wohnort: Tief im Westen
- Kontaktdaten:
Hallo zusammen,
das Modul, mit dem ich Artikel in PDF wandeln kann, läuft auch nach allen nachgezogenen Fehlerkorrekturen bei mir nicht. Meine Fehlermeldung ist genau die, die donner_blitz auch bekommt:
Hat jemand ein Modul ans "rennen" bekommen und verrät mir wie?
Gruß hohorstmann
das Modul, mit dem ich Artikel in PDF wandeln kann, läuft auch nach allen nachgezogenen Fehlerkorrekturen bei mir nicht. Meine Fehlermeldung ist genau die, die donner_blitz auch bekommt:
Code: Alles auswählen
Warning: Cannot modify header information - headers already sent by (output started at /homepages/17/d118844875/htdocs/cms/front_content.php(792) : eval()'d code:10) in /homepages/17/d118844875/htdocs/cms/front_content.php(792) : eval()'d code on line 261
Warning: Cannot modify header information - headers already sent by (output started at /homepages/17/d118844875/htdocs/cms/front_content.php(792) : eval()'d code:10) in /homepages/17/d118844875/htdocs/cms/front_content.php(792) : eval()'d code on line 262
....
Gruß hohorstmann
-
- Beiträge: 70
- Registriert: Do 21. Sep 2006, 10:56
- Kontaktdaten:
-
- Beiträge: 270
- Registriert: Do 27. Apr 2006, 02:38
- Wohnort: Tief im Westen
- Kontaktdaten:
Hallo Christian,
Contenido 4.6.8: bin Deinen Anweisungen gefolgt und bekomme den Fehler:
Das Verhalten ist hier zu sehen: www.rv-rauxel.de
Was könnte ich übersehen haben ?
Frühen Gruß, Ho
Contenido 4.6.8: bin Deinen Anweisungen gefolgt und bekomme den Fehler:
Code: Alles auswählen
Warning: Cannot modify header information - headers already sent by (output started at /homepages/17/d118844875/htdocs/cms/front_content.php(792) : eval()'d code:10) in /homepages/17/d118844875/htdocs/cms/pdf-converter/fpdf.php on line 1035
FPDF error: Some data has already been output to browser, can't send PDF file
Was könnte ich übersehen haben ?
Frühen Gruß, Ho
Ähm,
Gruß
HerrB
Nu lass ihm doch noch einen Augenblick...Hallo Zusammen ich werde heute abend das neue Modul veröffentlichen welches diese Probleme Alle beheben dürfte.
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
-
- Beiträge: 270
- Registriert: Do 27. Apr 2006, 02:38
- Wohnort: Tief im Westen
- Kontaktdaten:
-
- Beiträge: 70
- Registriert: Do 21. Sep 2006, 10:56
- Kontaktdaten:
Hallo hohrstmann,hohorstmann hat geschrieben:Du hast ja recht. Sorry für meine Ungeduld - aber ich bin ganz schön interessiert an dem "Ding".
Aber ich bin noch jung - ich kann warten. Ho
Ich verstehe das nicht warum dieses bei dir nicht klappt. es kann an vielen sachen liegen... entwerder nimmt dein server nicht ob_clean(); an... oder dein aufbau dir seite ist falsch oder eines deiner module verhindet die richtige ausgabe ohne header...
Es kann auch an der version 4.6.8 liegen, da ich das nur auf 4.6.15 MR version laufen habe...
Ich habe aber für dich mal ne andere version die eigentlich zu 99.9% futzten sollte.
1. Lösche den code im Contenido Output Modul des PDF Converters und füge diesen hier ein:
Code: Alles auswählen
<?
////////////////////////////////////////////
//// Prüfen Aktion
///////////////////////////////////////////
if ($pdf != 1) {
$link = "pdf.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&pdf=1";
echo "<a target="_blank" href="$link">PDF</A>";
include_once ($contenido_path . "includes/startup.php");
$htmlFile = "pdf-converter/".$lang."_".$idcat."_".$idart.".txt";
$text = "CMS_HTMLHEAD[0] CMS_HTML[1]"; ///// Definition des CMS Headline und HTML
$fp = fopen ($htmlFile,"w");
fwrite($fp,$text);
fclose($fp);
}
?>
Code: Alles auswählen
<?php
////////////////////////////////////////////
//// HTML Definition
///////////////////////////////////////////
$htmlFile = "pdf-converter/".$_REQUEST['lang']."_".$_REQUEST['idcat']."_".$_REQUEST['idart'].".txt";
////////////////////////////////////////////
//// PDF Ertstellen
///////////////////////////////////////////
define('FPDF_FONTPATH','font/');
require("pdf-converter/pdf_protection.php");
//Get file contents
$file = fopen($htmlFile,"r");
$size_of_file = filesize($htmlFile);
$html = fread($file, $size_of_file);
fclose($file);
// Löschen von HTML Code
ob_clean();
// Start Converting
$pdf= new PDF();
$pdf->SetProtection(array('print'), '', "dhx0708"); ///// Passwort für berechtigung zum änderen des PDF's
$pdf->SetDisplayMode (125);
$pdf->SetFontSize(10);
$pdf->SetFont('Arial');
$pdf->SetAuthor( 'Your Name' );
$pdf->SetCreator( 'PDF Converter V2.0 Copyright by Christian Schwan' );
$pagecount = $pdf->setSourceFile("pdf-converter/logo.pdf");
$tplidx = $pdf->ImportPage(1);
$pdf->addPage();
$pdf->useTemplate($tplidx,10,10,90);
$pdf->Ln(20);
$pdf->WriteHTML($html);
$pdfFile = $_REQUEST['idcat'].".pdf";
$pdf->Output($pdfFile, "D");
$pdf->closeParsers();
// Schliesse Anwendung
exit();
?>
4. fertig ist es....
-
- Beiträge: 270
- Registriert: Do 27. Apr 2006, 02:38
- Wohnort: Tief im Westen
- Kontaktdaten:
Hallo Christian,
das war doch mal was! Ich werde das Modul auf jeden Fall für meine o.a. Doku einsetzen. So ganz läuft´s allerdings noch nicht.
Da gibt´s wohl noch Formatierungprobs. zb da: http://rv-rauxel.de/cms/front_content.php?idcat=52
Einen sonderbaren Fehler bekomme ich u.a. da: http://rv-rauxel.de/cms/front_content.php?idcat=12
Übrigens kann das Modul keine Newslisten und Terminpläne - aber damit kann ich gut leben.
... aber wie gesagt, ich bin erleichtert.
Gruß, Ho
PS: Der Aufruf für den PDF-Druck ist am Ender der Artikel.
das war doch mal was! Ich werde das Modul auf jeden Fall für meine o.a. Doku einsetzen. So ganz läuft´s allerdings noch nicht.
Da gibt´s wohl noch Formatierungprobs. zb da: http://rv-rauxel.de/cms/front_content.php?idcat=52
Einen sonderbaren Fehler bekomme ich u.a. da: http://rv-rauxel.de/cms/front_content.php?idcat=12
Übrigens kann das Modul keine Newslisten und Terminpläne - aber damit kann ich gut leben.
... aber wie gesagt, ich bin erleichtert.
Gruß, Ho
PS: Der Aufruf für den PDF-Druck ist am Ender der Artikel.
-
- Beiträge: 70
- Registriert: Do 21. Sep 2006, 10:56
- Kontaktdaten:
Supi das es funktioniert hat...hohorstmann hat geschrieben:Hallo Christian,
das war doch mal was! Ich werde das Modul auf jeden Fall für meine o.a. Doku einsetzen. So ganz läuft´s allerdings noch nicht.
Da gibt´s wohl noch Formatierungprobs. zb da: http://rv-rauxel.de/cms/front_content.php?idcat=52
Einen sonderbaren Fehler bekomme ich u.a. da: http://rv-rauxel.de/cms/front_content.php?idcat=12
Übrigens kann das Modul keine Newslisten und Terminpläne - aber damit kann ich gut leben.
... aber wie gesagt, ich bin erleichtert.
Gruß, Ho
PS: Der Aufruf für den PDF-Druck ist am Ender der Artikel.
newsliste nimmt man normalerweise auch keine PDF sondern nur für den artikel... terminpläne kannst du aber machen mit manchen termin modulen geht es auf jedenfall musst du dan das CMS_HTML[0] erweitern mit z.b. CMS_HTML [1].
die richtige formatierung bekommst ach noch hin mit css. und die kannst das pdf auch noch im html tags erweitern...
jpg musst du mal googlen da gibt es schon ne erweiterung aber wenn ich die zeit finde werde ich das auf jedenfall mit einbaun und auch das modul erweitern.
Hi!
Soweit funzt es bei mir. Hat jemand eine Ahnung wie ich das Ganze um gif erweitere? Ich bekomme die Fehlermeldung:
FPDF error: Unsupported image type: gif
Bei Seiten mit jpg's funktioniert es, aber ich kann nicht alle Bilder in gif's umwandeln.
» Nachtrag: Jetzt habe ich es mit einer Klasse hinbekommen die gifs umwandelt. Nun wird die Formatierung nicht so dargestellt wie ich es wünsche. Geht das überhaupt, dass mir die Formatierung übernommen wird?
Gruß Deddy
Soweit funzt es bei mir. Hat jemand eine Ahnung wie ich das Ganze um gif erweitere? Ich bekomme die Fehlermeldung:
FPDF error: Unsupported image type: gif
Bei Seiten mit jpg's funktioniert es, aber ich kann nicht alle Bilder in gif's umwandeln.
» Nachtrag: Jetzt habe ich es mit einer Klasse hinbekommen die gifs umwandelt. Nun wird die Formatierung nicht so dargestellt wie ich es wünsche. Geht das überhaupt, dass mir die Formatierung übernommen wird?
Gruß Deddy
-
- Beiträge: 70
- Registriert: Do 21. Sep 2006, 10:56
- Kontaktdaten:
Die Formatierung eigentlich übernommen, kommt halt drauf an ob die ne externe css datei hast oder nicht. CSS welches in einer externen .css datei liegen wird die formatierung nicht angezeit.Deddy hat geschrieben:Hi!
Soweit funzt es bei mir. Hat jemand eine Ahnung wie ich das Ganze um gif erweitere? Ich bekomme die Fehlermeldung:
FPDF error: Unsupported image type: gif
Bei Seiten mit jpg's funktioniert es, aber ich kann nicht alle Bilder in gif's umwandeln.
» Nachtrag: Jetzt habe ich es mit einer Klasse hinbekommen die gifs umwandelt. Nun wird die Formatierung nicht so dargestellt wie ich es wünsche. Geht das überhaupt, dass mir die Formatierung übernommen wird?
Gruß Deddy
Könntest du evtl. mal deine gif class posten für alle die es erweitern möchten.
mfg
christian
Hi cschwan2006!
Danke für Deine Antwort. Ich hab es mittlerweile hinbekommen. Das Ganze hatte einen Haken. Die Seite wurde nicht eins zu eins angezeigt. Die ganze Formatierung war futsch. Die Zeilen wurden einfach nacheinander ausgelesen, deswegen habe ich diesen Gedanken wieder verworfen.
Gruß Deddy
Danke für Deine Antwort. Ich hab es mittlerweile hinbekommen. Das Ganze hatte einen Haken. Die Seite wurde nicht eins zu eins angezeigt. Die ganze Formatierung war futsch. Die Zeilen wurden einfach nacheinander ausgelesen, deswegen habe ich diesen Gedanken wieder verworfen.
Gruß Deddy