2017-01-25 10 views
2

私はNumberFormatExceptionを取得しています。どのようにborder = "1px solid black"ですか?Javaを使用してpdfのHTMLコンテンツとCSSコンテンツを変換するには?

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(); 
    } 
} 

スタックトレース:

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

なしの数字を解析しません。 stacktraceを表示するには、 –

+0

を入力してください。この "1px solid black"を解析している間は、数値形式の例外を指定していますが、文字列@ cricket_007を追加しました。 – Sia

+0

スタックトレースはありますか? –

答えて

0

使用

\"""または\"'"

のように脱出し、

を必要に応じて、間に+を使用し、あなたがテキストからそれを読んで優れていますファイル。
これはこの問題を軽減します。

+0

私はすでにエスケープ文字を使用していますが、2度入力する必要がありますか?私のためのサンプルコードを書いてください、ありがとうございました! – Sia

+0

あなたはテキストファイルからCSSを読みましたか? cssが適切な構文であり、テキストファイルでフォーマットされていることを確認してください。そして、 "< '1pxの黒の' テーブルのボーダー=>​​" 機能していない –

+0

も、これを試しますファイルから読み取る – Sia

0

HTMLが有効でないため、例外が発生します。

borderの属性値は、境界線のサイズを示す整数です。例:

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

この属性では、境界線のスタイルや色を定義することはできません。

あなたは次のように、CSSで置き換える必要があります。このコードの

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

よりks @ obourgain、しかし私はhtmlをpdfに変換していたが、それはCSSを受け入れていなかった。それが問題でした。 – Sia

関連する問題