2017-01-25 25 views
2

NumberFormatException을 받고 있는데, CSS를 구문 분석하는 방법은 border = "1px solid black"입니까?자바를 사용하여 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 검정색"을 구문 분석하는 동안 숫자 형식 예외가 발생하지만 문자열 @clicket_007에 추가되었습니다. – Sia

+0

스택 추적을 사용할 수 있습니까? –

답변

0

사용 탈출 더 나은 당신은 텍스트에서 읽어 파일.
이렇게하면이 문제를 줄일 수 있습니다.

+0

이미 이스케이프 문자를 사용했습니다. 두 번 입력해야합니까? 이미 샘플 코드를 작성해 주셔서 감사합니다. – Sia

+0

텍스트 파일에서 CSS를 읽으셨습니까? css가 구문 및 텍스트 파일 형식이 올바른지 확인하십시오. 그리고 "< '1 픽셀의 검은 색'표 테두리 =>"작동하지 않는 –

+0

도이 시도 파일에서 읽기 – Sia

0

HTML이 유효하지 않으므로 예외가 발생합니다.

border 표는 경계의 크기를 제공하는 정수입니다. 예 :

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

이 특성으로 테두리 스타일이나 색을 정의 할 수 없습니다.

당신은 다음과 같은 CSS로 교체해야합니다 :이 코드의

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

이상 ks @ obourgain,하지만 html로 변환하는 동안 그것은 css를 수락하지 못했습니다. 그것이 문제였습니다. – Sia