CSS и изображение не отображаются в созданном PDF-файле — Летающая тарелка ⇐ JAVA
CSS и изображение не отображаются в созданном PDF-файле — Летающая тарелка
Я хочу создать PDF-файл для своей веб-страницы с помощью Flying Saucer. С помощью приведенного ниже кода я могу создать PDF-файл, но без какого-либо стиля и CSS.
Исходный код HTML,
Я пытаюсь установить базовый URL-адрес с помощью renderer.getSharedContext().setUserAgentCallback(new NaiveUserAgent(baseUrl)) но это не работает.
Java-код
попробуй { // Определить URL-адрес Строка urlcheck = "http://localhost:8888/index.html"; // Устанавливаем URL-соединение Соединение HttpURLConnection = (HttpURLConnection) новый URL-адрес (urlcheck).openConnection(); Connection.setRequestMethod("GET"); // Настраиваем базовую аутентификацию с именем пользователя «admin» и паролем «admin». Строка имя пользователя = «администратор»; Строковый пароль = «admin»; Строка authString = имя пользователя + ":" + пароль; Строка закодированаAuthString = Base64.getEncoder().encodeToString(authString.getBytes()); Connection.setRequestProperty("Авторизация", "Базовый " + encodedAuthString); // Проверяем код ответа (200 означает успех) int responseCode = Connection.getResponseCode(); если (код ответа == 200) { // Получаем входной поток из соединения urlInputStream = Connection.getInputStream(); LOG.info("НАЧАЛО PDF "); // Создаем экземпляр ITextRenderer Средство рендеринга ITextRenderer = новый ITextRenderer(); // Преобразуем входной поток в строку Строка htmlContent = ConvertInputStreamToString (urlInputStream); Очиститель HtmlCleaner = новый HtmlCleaner(); TagNode rootTagNode = clean.clean(htmlContent); // настраиваем свойства сериализатора (необязательно, см. онлайн-документацию) CleanerProperties CleanerProperties = Cleaner.getProperties(); // используем метод getAsString в классе XmlSerializer XmlSerializer xmlSerializer = новый PrettyXmlSerializer (cleanerProperties); Строка cleanHtml = xmlSerializer.getAsString(rootTagNode); LOG.info("cleanedHtml::"+cleanedHtml); // Устанавливаем HTML-контент в качестве документа renderer.setDocumentFromString(cleanedHtml); // Рендеринг в PDF Строка baseUrl = "http://localhost:8888"; renderer.getSharedContext().setUserAgentCallback(new NaiveUserAgent(baseUrl)); // Ошибка ByteArrayOutputStream outputStream = новый ByteArrayOutputStream(); рендерер.макет(); renderer.createPDF(outputStream); рендерер.finishPDF(); } еще { LOG.error("Не удалось получить содержимое URL. Код ответа: " + responseCode); } }
Я хочу создать PDF-файл для своей веб-страницы с помощью Flying Saucer. С помощью приведенного ниже кода я могу создать PDF-файл, но без какого-либо стиля и CSS.
Исходный код HTML,
Я пытаюсь установить базовый URL-адрес с помощью renderer.getSharedContext().setUserAgentCallback(new NaiveUserAgent(baseUrl)) но это не работает.
Java-код
попробуй { // Определить URL-адрес Строка urlcheck = "http://localhost:8888/index.html"; // Устанавливаем URL-соединение Соединение HttpURLConnection = (HttpURLConnection) новый URL-адрес (urlcheck).openConnection(); Connection.setRequestMethod("GET"); // Настраиваем базовую аутентификацию с именем пользователя «admin» и паролем «admin». Строка имя пользователя = «администратор»; Строковый пароль = «admin»; Строка authString = имя пользователя + ":" + пароль; Строка закодированаAuthString = Base64.getEncoder().encodeToString(authString.getBytes()); Connection.setRequestProperty("Авторизация", "Базовый " + encodedAuthString); // Проверяем код ответа (200 означает успех) int responseCode = Connection.getResponseCode(); если (код ответа == 200) { // Получаем входной поток из соединения urlInputStream = Connection.getInputStream(); LOG.info("НАЧАЛО PDF "); // Создаем экземпляр ITextRenderer Средство рендеринга ITextRenderer = новый ITextRenderer(); // Преобразуем входной поток в строку Строка htmlContent = ConvertInputStreamToString (urlInputStream); Очиститель HtmlCleaner = новый HtmlCleaner(); TagNode rootTagNode = clean.clean(htmlContent); // настраиваем свойства сериализатора (необязательно, см. онлайн-документацию) CleanerProperties CleanerProperties = Cleaner.getProperties(); // используем метод getAsString в классе XmlSerializer XmlSerializer xmlSerializer = новый PrettyXmlSerializer (cleanerProperties); Строка cleanHtml = xmlSerializer.getAsString(rootTagNode); LOG.info("cleanedHtml::"+cleanedHtml); // Устанавливаем HTML-контент в качестве документа renderer.setDocumentFromString(cleanedHtml); // Рендеринг в PDF Строка baseUrl = "http://localhost:8888"; renderer.getSharedContext().setUserAgentCallback(new NaiveUserAgent(baseUrl)); // Ошибка ByteArrayOutputStream outputStream = новый ByteArrayOutputStream(); рендерер.макет(); renderer.createPDF(outputStream); рендерер.finishPDF(); } еще { LOG.error("Не удалось получить содержимое URL. Код ответа: " + responseCode); } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
При открытии в Excel данные в файле ods, созданном в JasperSoft, не отображаются.
Anonymous » » в форуме JAVA - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-
-
-
При открытии в Excel данные в файле ods, созданном в JasperSoft, не отображаются.
Anonymous » » в форуме JAVA - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-