2017-01-25 3 views
2

Je reçois NumberFormatException, comment analyser css qui est la frontière = "1px solide noir" ??Comment convertir le contenu html et css en pdf en utilisant Java?

try { 
    Document document = new Document(PageSize.LETTER); 
    PdfWriter.getInstance(document, new FileOutputStream(
       "/home/Booking_form_PDFs/booking_form.pdf")); 
    document.open(); 
    HTMLWorker htmlWorker = new HTMLWorker(document); 
    String str = "<html><head></head><body>" 
     + "<h1>Show your support</h1>" 
     + "<table border=\"1px solid black\"><tr><td></td></tr></table>" 
     + "</body></html>"; 
    htmlWorker.parse(new StringReader(str)); 
    document.close(); 
    System.out.println("Done"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

Stacktrace:

java.lang.NumberFormatException: For input string: "1px solid black"at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1250) at java.lang.Float.parseFloat(Float.java:452) 
    at com.itextpdf.text.html.simpleparser.CellWrapper.createPdfPCell(CellWrapper.java:132) at com.itextpdf.text.html.simpleparser.CellWrapper.<init>(CellWrapper.java:87)at com.itextpdf.text.html.simpleparser.HTMLWorker.createCell(HTMLWorker.java:475) at com.itextpdf.text.html.simpleparser.HTMLTagProcessors$13.startElement(HTMLTagProcessors.java:409) at com.itextpdf.text.html.simpleparser.HTMLWorker.startElement(HTMLWorker.java:199) 
    at com.itextpdf.text.xml.simpleparser.SimpleXMLParser.processTag(SimpleXMLParser.java:581) 
    at com.itextpdf.text.xml.simpleparser.SimpleXMLParser.go(SimpleXMLParser.java:299) 
    at com.itextpdf.text.xml.simpleparser.SimpleXMLParser.parse(SimpleXMLParser.java:607) 
    at com.itextpdf.text.html.simpleparser.HTMLWorker.parse(HTMLWorker.java:153) 
    at com.TrialHTMLtoPDF.main(TrialHTMLtoPDF.java:34) 
+0

Aucun de ce code parse numéros. Afficher la pile, s'il vous plaît –

+0

tout en analysant ce "1px solide noir", il est en donnant l'exception de format numérique, mais l'a ajouté dans la chaîne @ cricket_007 – Sia

+0

Alors, pouvons-nous avoir le stacktrace? –

Répondre

0

utilisation échapper comme

\""" ou \"'"

et utiliser + entre si nécessaire

il vaut mieux que vous le lire à partir d'un texte fichier.
Cela réduirait ce problème.

+0

J'ai déjà utilisé le caractère d'échappement, dois-je en taper deux fois? S'il vous plaît écrivez un exemple de code pour moi, merci déjà! – Sia

+0

avez-vous lu css à partir de fichier texte. et voyez que CSS est correctement syntaxe et formaté dans votre fichier texte. Et essayez guillemet simple-à-dire "

" –

+0

même cette "

" ne fonctionne pas – Sia

0

L'exception est déclenchée car le code HTML n'est pas valide.

La valeur d'attribut de la table border est un nombre entier qui donne la taille de la bordure. Par exemple:

<table border="1">...</table> 

Il n'est pas possible de définir le style ou la couleur de la bordure avec cet attribut.

Vous devez remplacer par CSS, comme suit:

<table style="border:1px solid blue">...</table> 
+0

Than ks @ obourgain, mais pendant que je convertissais html en pdf il n'acceptait pas css. C'était le problème. – Sia