Я имею html-файл и много картинок от от него:
В своей программе я считываю, расшифровываю и вывожу текст на экран: webEngine.loadContent(htmlCode)
.
Цель: вывести полноценный html-файл с картинками.
Проблема: не отображаются картинки.
PS: Html-файл и его картинки находятся за пределами программы.
Моё решение, которое не работает как надо:
Я нашёл библиотеку Jsoup, она парсит html-файлы. С помощью неё, я, в каждый атрибут src="" тега img вставлял разные пути, но что-то не получается:
Код:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
...
String url = getUrl();
...
String htmlCode = getHtmlCode();
Document document = new Document(htmlCode);
Elements tagsImg = document.getElementsByTag("img");
tagsImg.forEach(tagImg ->{
String nameImg = tagImg.attr("src");
tagImg.attr("src", url + nameImg);
});
webEngine.loadContent(String.valueOf(document));
PS: Почему не получается? Путь точный, но работать не хочет. Есть идеи?
При условии что в html используются абсолютные пути, ни каких проблем не обнаружено (работает и через load
и через loadContent
). Попробуйте соответствовать данному примеру (если это возможно):
C:/Test/Page.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<h1>Ниже картинка</h1>
<img src="file:/C:/Test/test.png">
</body>
</html>
Main.java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Collectors;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
WebView webView = new WebView();
primaryStage.setScene(new Scene(webView, 300, 300));
primaryStage.show();
Path pathToPage = Paths.get("C:/Test/Page.html");
// test load
// webView.getEngine().load(pathToPage.toUri().toString());
// test load content
String content = Files.lines(pathToPage).
peek(System.out::print).
collect(Collectors.joining());
webView.getEngine().loadContent(content);
}
}
P.S.: контент после дешифровки, так же должен работать.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день, есть интерститиал от фэйсбука, прошу подсказать код как сделать чтобы он показывался через определённые промежутки времени,...
Есть ли в джава аналог препроцессора как в с++(Есть ли анологи плюсовых define)
Доброго времени сутокНачал осваивать Android Studio и Java