2016-12-22 2 views
0

Ich erstelle eine HTML-Datei mit HTML :: Template. Der resultierende Code ist ein gültiger XML/HTML-Code (gegen einen XML-Validator). Aber während PDF konvertieren mit PDF :: FromHTML eine Nachricht "ungültiges Token in XML-Datei" gefunden wird.Konvertieren von HTML :: Vorlage in PDF: FromHtml sagt ungültige XML

Versuchen, die erste Deklarationszeile von Doctype zu XML zu ändern oder zu unterdrücken, aber nichts funktioniert. XML :: Simple, PDF: API2, XML :: Writer sind die letzte Version.

Ay Idee, was passiert?

# create template object and store to verify 
    shout('s',"create template from $str_filepath") if ($bool_DEBUG); 
    $str_mytemplate = HTML::Template->new(filename => $str_filepath, case_sensitive => 0, no_includes => 1 ); 
    $str_mytemplate->param(\%strct_toreplace); 
    $str_filepath = envDir('temp').newID().'.html'; 
    shout('',"template created, storing to : $str_filepath") if ($bool_DEBUG); 
    if (open(FILE, '>', $str_filepath)) { 
     print FILE $str_mytemplate->output; 
     close (FILE); 
     } 
# generate pdf from created file 
    shout('p',"Creating PDF ") if ($bool_DEBUG); 
    $pdf_this = PDF::FromHTML->new(encoding => 'utf-8'); 
    $pdf_this->load_file($str_filepath); 
    $pdf_this->convert(LineHeight => 10, Landscape => 1, PageSize => 'Letter',);  
    shout('p',"Display PDF") if ($bool_DEBUG); 
    print header(-type=>'application/pdf', -charset=>'UTF-8'); 
    print $pdf_this->write_file(); 

ABSCHNITT: PDF Softwarefehler Erstellen: nicht wohlgeformt (ungültiges Token) in Zeile 19, Spalte 13, 430 Byte an /usr/local/lib64/perl5/XML/Parser.pm Leitung 187. bei /home/grupo/perl/usr/share/perl5/PDF/FromHTML.pm Leitung 141.

+1

Bitte fügen Sie die HTML, oder erstellen Sie eine [mcve] von HTML. Wir müssen in der Lage sein, zu helfen, dies zu debuggen. – simbabque

+0

HTML generiert über Vorlage http://www.etoxica.com/beispielcode.html –

+0

Haben Sie sich Zeile 19 angesehen? Was ist Charakter 13? Ist es offensichtlich, wie schlecht es ist? – simbabque

Antwort

0

Zusammenfassung: Gefunden die p roblem (ich glaube);)

Betrachten Sie die folgenden Zeilen:

<td> 
    Some line of data 
    <br/> 
    A second line of data 
</td> 

Wenn Versuch von PDF zu lesenden :: FromHTML es wird eine Nachricht mißgebildeter Token in der fünften Zeile senden, und zwar auf dem Schrägstrich '/' von </td>; ABER, das ist nicht das Problem, das Problem wird durch die <br/> Tag innerhalb der <td></td> erstellt.

Wenn es zu <br> oder <br /> geändert wird, wird kein Fehler gefunden. Ich weiß nicht, ob die Verwendung von <br> eine gute HTML-Praxis für die XML-Kompabilität ist, sogar als w3c br semantic definiert.

Verwandte Themen