2016-11-29 2 views
0

Я могу сгенерировать PDF-файл с помощью летающей тарелки/iText. Однако я не могу понять, как получить таблицу стилей, включенную в рендеринг PDF.Flying-saucer/iText PDF не находит файл css

Я использовал это flying-saucer/iText PDF in servlet not finding css file как справка.

Есть несколько файлов CSS, участвующих поэтому я не буду иметь возможность использовать renderer.setDocument(doc, "http://example.com/something/page.html"); в виде раствора

я реализовал нечто подобное тому, что используется Аскер, но он возвращает Caused by: java.nio.file.InvalidPathException: Illegal char <:> at index 4: http://localhost:8080/proj/resources/css/custom1.css ошибку

Вот мой код

 StringBuilder bui = new StringBuilder(); 
     bui.append("<html><head><style>"); 
     bui.append(readFile(path+"/resources/css/custom1.css", Charsets.UTF_8)); 
     bui.append(readFile(path+"/resources/css/custom2.css", Charsets.UTF_8)); 
     bui.append(readFile(path+"/resources/css/custom3.css", Charsets.UTF_8)); 

     bui.append("</style></head>"); 
     bui.append("<body><div><table>"); 
     bui.append(xhtml_file); 
     bui.append("</table></div></body></html>"); 

     InputStream stream = new ByteArrayInputStream(bui.toString().getBytes(StandardCharsets.UTF_8)); 
     Document doc = tidy.parseDOM(stream, null); 
     File outputFile = new File(directory+ "FILENAME" +".pdf"); 
     os = new FileOutputStream(outputFile); 
     ITextRenderer renderer = new ITextRenderer(); 
     renderer.setDocument(doc, null); 
     renderer.layout(); 
     renderer.createPDF(os, false); 
     renderer.finishPDF(); 

путь передается в «http://localhost:8080» , если я введу «http://localhost:8080/resources/css/custom1.css» непосредственно в адрес ба r, он показывает файл css. Я попытался удалить «путь», но он также не получает css. Что я делаю не так?

ответ

0

Пробуйте файл: /// протокол url указывать (с тремя косой чертой), указывая непосредственно на файл css.

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