我正试图弄清楚如何获取整个网页的截图。我正在使用20多个dc.js图表在仪表板上工作,交叉过滤所有这些,我正在使用JSP。客户希望有一个用户点击的按钮,它将屏幕截图整个网页。我正在通过java运行它,因为我们必须使用IE11作为我们的标准,并且所有其他js库(如HTML2canvas.js)都不起作用(它不显示dc.js图表)尽管它在Chrome上有效但我们必须使用IE11(任何建议都会有所帮助)。
到目前为止,当我点击一个按钮时,它将在JAVA中运行一个主方法来进行屏幕截图。到目前为止,我正在使用java.awt.Robot,但我研究过,它说只有屏幕截图基于主显示器的屏幕。我正在尝试对我的网页进行屏幕截图。有没有办法做到这一点?如果是这样的话?这是我的Java代码。它基于监视器截图...
package com.customer_inquiry;
import java.net.URL;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
public class screenshotAction {
public static void main(String[] args) throws Exception {
String outFileName = args[0];
if (!outFileName.toLowerCase().endsWith(".png")) {
System.err.println("Error: output file name must " + "end with \".png\".");
System.exit(1);
}
// determine current screen size
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = toolkit.getScreenSize();
Rectangle screenRect = new Rectangle(screenSize);
// create screen shot
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRect);
// save captured image to PNG file
ImageIO.write(image, "png", new File(outFileName));
// give feedback
System.out.println("Saved screen shot (" + image.getWidth() + " x " + image.getHeight() + " pixels) to file \""
+ outFileName + "\".");
// use System.exit if the program hangs after writing the file;
// that's an old bug which got fixed only recently
// System.exit(0);
}
}
答案 0 :(得分:1)
html2canvas可能符合您的需求:https://html2canvas.hertzen.com/
除此之外,如果你想自己做,想到的是: