parent
22e6006abe
commit
50b3c6a900
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module version="4">
|
||||
<component name="AdditionalModuleElements">
|
||||
<content url="file://$MODULE_DIR$/dsPay" dumb="true">
|
||||
<sourceFolder url="file://$MODULE_DIR$/dsPay/src/resources" type="java-resource" />
|
||||
</content>
|
||||
</component>
|
||||
</module>
|
@ -0,0 +1,26 @@
|
||||
import org.icepear.echarts.Bar;
|
||||
import org.icepear.echarts.render.Engine;
|
||||
|
||||
public class Echarts {
|
||||
|
||||
//https://github.com/ECharts-Java/ECharts-Java
|
||||
public static void main(String[] args) {
|
||||
// All methods in EChart Java supports method chaining
|
||||
Bar bar = new Bar()
|
||||
.setLegend()
|
||||
.setTooltip("item")
|
||||
.addXAxis(new String[] { "Matcha Latte", "Milk Tea", "Cheese Cocoa", "Walnut Brownie" })
|
||||
.addYAxis()
|
||||
.addSeries("2015", new Number[] { 43.3, 83.1, 86.4, 72.4 })
|
||||
.addSeries("2016", new Number[] { 85.8, 73.4, 65.2, 53.9 })
|
||||
.addSeries("2017", new Number[] { 93.7, 55.1, 82.5, 39.1 });
|
||||
Engine engine = new Engine();
|
||||
// The render method will generate our EChart into a HTML file saved locally in the current directory.
|
||||
// The name of the HTML can also be set by the first parameter of the function.
|
||||
engine.render("index.html", bar);
|
||||
|
||||
// It is recommended that you can get the serialized version of Option in the representation of JSON, which can be used directly in the template or in the RESTful APIs.
|
||||
String jsonStr = engine.renderJsonOption(bar);
|
||||
System.out.println(jsonStr);
|
||||
}
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
|
||||
import org.xhtmlrenderer.pdf.ITextFontResolver;
|
||||
import org.xhtmlrenderer.pdf.ITextRenderer;
|
||||
|
||||
import com.lowagie.text.pdf.BaseFont;
|
||||
|
||||
|
||||
public class HtmltoPDF {
|
||||
|
||||
public static void main( String[] args ) throws Exception{
|
||||
|
||||
|
||||
// htmlToPdf();
|
||||
// htmlToPdf2();
|
||||
htmlToPdf3();
|
||||
}
|
||||
|
||||
// 不支持中文
|
||||
public static void htmlToPdf() throws Exception
|
||||
{
|
||||
String inputFile = "D:/Test/flying.html";
|
||||
String url = new File( inputFile ).toURI().toURL().toString();
|
||||
String outputFile = "D:/Test/flying.pdf";
|
||||
OutputStream os = new FileOutputStream( outputFile );
|
||||
ITextRenderer renderer = new ITextRenderer();
|
||||
renderer.setDocument( url );
|
||||
renderer.layout();
|
||||
renderer.createPDF( os );
|
||||
os.close();
|
||||
}
|
||||
|
||||
// 支持中文
|
||||
public static void htmlToPdf2() throws Exception {
|
||||
String outputFile = "F:/TestDemo/demo_3.pdf";
|
||||
OutputStream os = new FileOutputStream(outputFile);
|
||||
ITextRenderer renderer = new ITextRenderer();
|
||||
ITextFontResolver fontResolver = renderer.getFontResolver();
|
||||
fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
|
||||
StringBuffer html = new StringBuffer();
|
||||
// DOCTYPE 必需写否则类似于 这样的字符解析会出现错误
|
||||
html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
|
||||
html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">").
|
||||
append("<head>")
|
||||
.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")
|
||||
.append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: SimSun;}</style>")
|
||||
.append("</head>")
|
||||
.append("<body>");
|
||||
html.append("<div>支持中文!</div>");
|
||||
html.append("</body></html>");
|
||||
renderer.setDocumentFromString(html.toString());
|
||||
// 解决图片的相对路径问题
|
||||
// renderer.getSharedContext().setBaseURL("file:/F:/teste/html/");
|
||||
renderer.layout();
|
||||
renderer.createPDF(os);
|
||||
System.out.println("======转换成功!");
|
||||
os.close();
|
||||
}
|
||||
|
||||
public static void htmlToPdf3() throws Exception{
|
||||
String inputFile = "F:/TestDemo/test.html"; //本地目录必须html语言否则报错
|
||||
String outFile = "F:/TestDemo/test.pdf";
|
||||
OutputStream os = null;
|
||||
os = new FileOutputStream(outFile);
|
||||
ITextRenderer renderer = new ITextRenderer();
|
||||
ITextFontResolver fontResolver = renderer.getFontResolver();
|
||||
fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
|
||||
|
||||
String url = new File( inputFile ).toURI().toURL().toString();
|
||||
System.out.println("=============url: "+url);
|
||||
renderer.setDocument(url);
|
||||
renderer.layout();
|
||||
renderer.createPDF(os);
|
||||
System.out.println("======转换成功!");
|
||||
os.close();
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>ECharts Demo</title>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/5.2.2/echarts.min.js"
|
||||
integrity="sha512-ivdGNkeO+FTZH5ZoVC4gS4ovGSiWc+6v60/hvHkccaMN2BXchfKdvEZtviy5L4xSpF8NPsfS0EVNSGf+EsUdxA=="
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
}
|
||||
#title-container {
|
||||
width: 600px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
#download-btn {
|
||||
border-radius: 6px;
|
||||
background-color: aliceblue;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
#display-container {
|
||||
width: 600px;
|
||||
height: 600px;
|
||||
border: 2px solid black;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<div id="title-container">
|
||||
<h1 class="display">ECharts Java</h1>
|
||||
<button id="download-btn" onclick="downloadImage()">Download Image</button>
|
||||
</div>
|
||||
<div id="display-container">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
function downloadImage() {
|
||||
let canvas = document.querySelector("canvas");
|
||||
let image = canvas.toDataURL("image/png").replace("image/png",
|
||||
"image/octet-stream");
|
||||
let fakeLink = document.createElement("a");
|
||||
if (typeof fakeLink.download === "string") {
|
||||
document.body.appendChild(fakeLink);
|
||||
fakeLink.download = "echart.png";
|
||||
fakeLink.href = image;
|
||||
fakeLink.click();
|
||||
document.body.removeChild(fakeLink);
|
||||
} else {
|
||||
location.replace(image);
|
||||
}
|
||||
}
|
||||
var chart = echarts.init(document.getElementById("display-container"));
|
||||
var option = {"xAxis":[{"type":"category","data":["Matcha Latte","Milk Tea","Cheese Cocoa","Walnut Brownie"]}],"yAxis":[{"type":"value"}],"tooltip":{"trigger":"item"},"legend":{},"series":[{"type":"bar","name":"2015","data":[43.3,83.1,86.4,72.4]},{"type":"bar","name":"2016","data":[85.8,73.4,65.2,53.9]},{"type":"bar","name":"2017","data":[93.7,55.1,82.5,39.1]}]}
|
||||
chart.setOption(option);
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
Loading…
Reference in new issue