如何截取整个网页?
How can I take a screenshot of a whole web page?
我想在浏览器中截取 Jsp 页面的屏幕截图。我用谷歌搜索了很多。每个人都指向 java.awt.Robot 功能。太好了。但我需要的是完整网页的屏幕截图,它也在浏览器的可滚动区域内 window。此外,我只想要网页内容,而不是浏览器上的状态栏和其他选项卡和菜单。我使用了以下代码。
public class ScreenCapture {
public void TakeCapture()
{
try
{
Robot robot = new Robot();
String format = "jpg";
String fileName = "D:\PDFTest\PartialScreenshot." + format;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle captureRect = new Rectangle(0, 0, screenSize.width , screenSize.height);
BufferedImage screenFullImage = robot.createScreenCapture(captureRect);
ImageIO.write(screenFullImage, format, new File(fileName));
Document document = new Document();
String input = "D:\PDFTest\PartialScreenshot.jpg";
String output = "D:\PDFTest\PartialScreenshot.pdf";
try {
FileOutputStream fos = new FileOutputStream(output);
PdfWriter writer = PdfWriter.getInstance(document, fos);
writer.open();
document.open();
document.add(Image.getInstance(input));
document.close();
writer.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
catch (AWTException | IOException ex) {
System.err.println(ex);
}
}
public String getTakeCapture() {
return getTakeCapture();
}
有没有办法截取正在浏览器中查看的完整 JSP 网页的屏幕截图。(沿着可滚动 window 内的内容),然后我必须将其转换截图成PDF。不要告诉我使用 FlyingSaucer 直接将其转换为 PDF 的方法,因为它在我的情况下不起作用。
这在纯 Java 中是不可能的。
但是您可以将 html2canvas 库添加到 JSP 页面。然后,您可以使用 Java 脚本将 canvas 图像提交到您的 servlet 并根据需要进行处理。
请参阅以下处理类似问题的问答:How to upload a screenshot using html2canvas?
我想在浏览器中截取 Jsp 页面的屏幕截图。我用谷歌搜索了很多。每个人都指向 java.awt.Robot 功能。太好了。但我需要的是完整网页的屏幕截图,它也在浏览器的可滚动区域内 window。此外,我只想要网页内容,而不是浏览器上的状态栏和其他选项卡和菜单。我使用了以下代码。
public class ScreenCapture {
public void TakeCapture()
{
try
{
Robot robot = new Robot();
String format = "jpg";
String fileName = "D:\PDFTest\PartialScreenshot." + format;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle captureRect = new Rectangle(0, 0, screenSize.width , screenSize.height);
BufferedImage screenFullImage = robot.createScreenCapture(captureRect);
ImageIO.write(screenFullImage, format, new File(fileName));
Document document = new Document();
String input = "D:\PDFTest\PartialScreenshot.jpg";
String output = "D:\PDFTest\PartialScreenshot.pdf";
try {
FileOutputStream fos = new FileOutputStream(output);
PdfWriter writer = PdfWriter.getInstance(document, fos);
writer.open();
document.open();
document.add(Image.getInstance(input));
document.close();
writer.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
catch (AWTException | IOException ex) {
System.err.println(ex);
}
}
public String getTakeCapture() {
return getTakeCapture();
}
有没有办法截取正在浏览器中查看的完整 JSP 网页的屏幕截图。(沿着可滚动 window 内的内容),然后我必须将其转换截图成PDF。不要告诉我使用 FlyingSaucer 直接将其转换为 PDF 的方法,因为它在我的情况下不起作用。
这在纯 Java 中是不可能的。
但是您可以将 html2canvas 库添加到 JSP 页面。然后,您可以使用 Java 脚本将 canvas 图像提交到您的 servlet 并根据需要进行处理。
请参阅以下处理类似问题的问答:How to upload a screenshot using html2canvas?