2017-01-25 1 views
2

Я получаю NumberFormatException, как разобрать css, который является границей = "1px сплошной черный" ??Как конвертировать html, а также содержимое css в pdf с помощью 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

Никто из этого кода не разбирает номера. Покажите stacktrace, пожалуйста, –

+0

, анализируя этот «1px сплошной черный», он дает исключение формата номера, но добавил его в строку @ cricket_007 – Sia

+0

Итак, можем ли мы иметь стек? –

ответ

0

Использование бежать как

\""" или \"'"

и использовать + между ними, если требуется

лучше прочитать его из текста файл.
Это уменьшит эту проблему.

+0

Я уже использовал escape-символ, мне нужно ввести его дважды? Пожалуйста, напишите образец кода для меня, спасибо уже! – Sia

+0

Вы читали вам css из текстового файла. и посмотрите, что css правильно синтаксис и отформатирован в вашем текстовом файле. И попробуйте одиночные кавычки, т.е. «<таблицы граница =„1px сплошной черный“>» –

+0

даже это «<таблица граница =„1px сплошной черный“>» не работает – Sia

0

Исключено, потому что HTML недопустим.

Таблица border Значение атрибута представляет собой целое число, которое задает размер границы. Например:

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

Невозможно определить стиль или цвет границы с этим атрибутом.

Вы должны заменить CSS, следующим образом:

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

Than ks @ obourgain, но пока я конвертировал html в pdf, он не принимал css. Это была проблема. – Sia

Смежные вопросы