大家好,我是曲不成歌,今天和大家分享下Jfree结合Itext生成一张PDF图表。
先分享下一个英文句子 I guess sometimes you don’t know what you want because you don’t know it exists. <我猜有时候你不知道自己想要什么,是因为你并不知道这东西的存在​​​>
下图是生成的双页PDF展示
在这里插入图片描述
需要导入的jar
在这里插入图片描述
业务类(数据模板)

package industryStationExportDemo;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.PieDataset;import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;public class Demo {static BaseFont bfChinese = null;static Font title_font = null;static Font key_font = null;static Font normal_font = null;static Font mini_font = null;static Font en_font = null;public static void main(String[] args) {// TODO Auto-generated method stubtry {exportPDF("E:/test/test11.pdf");} catch (Exception e) {e.printStackTrace();} }static{try {bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);} catch (DocumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}title_font = new Font(bfChinese,15,Font.BOLD);key_font = new Font(bfChinese,10,Font.BOLD);normal_font = new Font(bfChinese,10,Font.NORMAL);mini_font = new Font(bfChinese,6,Font.NORMAL);}@SuppressWarnings("rawtypes")private static void exportPDF(String filepath) throws Exception {Document document = new Document();File file = new File(filepath);FileOutputStream fos = null;if(!file.exists()){file.createNewFile();fos = new FileOutputStream(file);}PdfWriter.getInstance(document, fos);document.open();//获取模拟数据部分Map data = getTestData();String pdfName = (String) data.get("pdfName");List datas = (List) data.get("datas");//填充pdf数据Paragraph blank = new Paragraph(" ");//创建一个空的段落,备用Paragraph p_name = new Paragraph(pdfName,title_font);//PDF主标题p_name.setAlignment(Element.ALIGN_CENTER);//居中对齐document.add(p_name);//将段落添加到document对象中document.add(blank);//添加空白段落,避免上下文之间拥挤document.add(blank);Map data0 = (Map) datas.get(0);addFirstTable(document,data0);//添加第一个表格document.add(blank);Map data1 = (Map) datas.get(1);addSecondChart(document,data1);//添加第二个chart图表document.add(blank);Map data2 = (Map) datas.get(2);addThirdChart(document,data2);//添加第三个chart图表document.add(blank);Map data3 = (Map) datas.get(3);addFourthChart(document,data3);//添加第四个chart图表document.add(blank);Map data4 = (Map) datas.get(4);addFifthTable(document,data4);//添加第五个chart图表document.close();//关闭document对象}/*** 这里使用内外嵌套表格实现,外表格1行 4列,内表格2行 5列* @param document* @param data * @throws MalformedURLException* @throws IOException* @throws DocumentException*/private static void addFirstTable(Document document,Map data) throws MalformedURLException, IOException, DocumentException{String[] head = (String[]) data.get("head");String[] body = (String[]) data.get("body");String[] image = (String[]) data.get("image");document.add(new Paragraph(" ",normal_font));PdfPTable table_out = new PdfPTable(4);//创建一个4列的表格for(int i=0;i<4;i++){PdfPCell cell_out = new PdfPCell();//用来装4个内置表格cell_out.setBorderWidth(0);//设置表格边框线厚度为0 即不显示边框cell_out.setUseAscender(true);//开启设置权限,否则下面设置的对齐会无效cell_out.setUseDescender(true);cell_out.setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中cell_out.setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中PdfPTable table_in = new PdfPTable(5);//创建一个内置的5列的表格for(int j=0;j<7;j++){//内置表格共7个格子PdfPCell cell_in = new PdfPCell();cell_in.setUseAscender(true);cell_in.setUseDescender(true);cell_in.setHorizontalAlignment(Element.ALIGN_CENTER);cell_in.setVerticalAlignment(Element.ALIGN_MIDDLE);Paragraph p1 = null;/** 第一个格子,什么都不装,设置右下边框不可见*/if(j==0){p1 = new Paragraph(" ",mini_font);cell_in.addElement(p1);//将段落添加到格子中cell_in.disableBorderSide(10);//设置边框线不可见table_in.addCell(cell_in);//然后将格子添加到内置表格中}/** 第二格子,合并一个2行1列的单元格用来装图标,设置左右边框线不可见*/if(j==1){cell_in.setRowspan(2);//合并单元格cell_in.disableBorderSide(12);String image_path = (String) image[i];Image img = Image.getInstance(image_path);cell_in.addElement(img);//将图标图片添加到格子中table_in.addCell(cell_in);}/** 第三个格子,合并一个1行2列的单元格装类型(月收益),设置左右下边框不可见*/if(j==2){cell_in.setColspan(2);String head_str = (String) head[i];p1 = new Paragraph(head_str.trim(),mini_font);p1.setAlignment(Element.ALIGN_MIDDLE);p1.setAlignment(Element.ALIGN_CENTER);cell_in.disableBorderSide(14);cell_in.addElement(p1);table_in.addCell(cell_in);}/** 第四个格子,装空白段落*/if(j==3){p1 = new Paragraph(" ",mini_font);cell_in.addElement(p1);cell_in.disableBorderSide(6);table_in.addCell(cell_in);}/**第五个格子,装空白段落*/if(j==4){p1 = new Paragraph(" ",mini_font);cell_in.addElement(p1);cell_in.disableBorderSide(9);table_in.addCell(cell_in);}/** 第六个格子,合并一个1行2列的单元格装数值(¥26493.6),设置上左右边框不可见*/if(j==5){cell_in.setColspan(2);cell_in.disableBorderSide(13);String body_str = (String) body[i];p1 = new Paragraph(body_str,mini_font);p1.setAlignment(Element.ALIGN_MIDDLE);p1.setAlignment(Element.ALIGN_CENTER);cell_in.addElement(p1);table_in.addCell(cell_in);}/**第七个格子,装空白段落 */if(j==6){p1 = new Paragraph(" ",mini_font);cell_in.addElement(p1);cell_in.disableBorderSide(5);table_in.addCell(cell_in);}}cell_out.addElement(table_in);//将添加好的数据的内表格,添加到外表格对应格子中table_out.addCell(cell_out);}document.add(table_out);//添加表格对象}/*** 创建一个1列2行表格,第一行为图表标题, 第二行装柱状图图表 * @param document* @param data* @throws MalformedURLException* @throws IOException* @throws DocumentException*/private static void addSecondChart(Document document,Map data) throws MalformedURLException, IOException, DocumentException{String name = (String) data.get("name");String xDesc = (String) data.get("xDesc");String yDesc = (String) data.get("yDesc");String[] legends = (String[]) data.get("legends");String[] xData = (String[]) data.get("x");double[][] y = (double[][]) data.get("y");CategoryDataset dataset1 =BarImageUtil.getBarData(y, legends, xData);String img_name = name+System.currentTimeMillis()+".png";//通过柱状图工具获取生成的柱状图图片地址String img_path = BarImageUtil.createBarChart(dataset1,null, xDesc, yDesc,"","",img_name,false);PdfPTable table = new PdfPTable(1);table.setSpacingBefore(15f);PdfPCell cell0 = new PdfPCell();cell0.setUseAscender(true);cell0.setUseDescender(true);cell0.setHorizontalAlignment(Element.ALIGN_CENTER);cell0.setVerticalAlignment(Element.ALIGN_MIDDLE);Paragraph p = new Paragraph(name,normal_font);p.setAlignment(Element.ALIGN_MIDDLE);cell0.addElement(p);PdfPCell cell1 = new PdfPCell();Image img = Image.getInstance(img_path);img.setBorder(0);cell1.addElement(img);table.addCell(cell0);table.addCell(cell1);document.add(table);}/*** 创建一个1列2行表格,第一行为图表标题, 第二行装饼图图表 * @param document* @param data* @throws MalformedURLException* @throws IOException* @throws DocumentException*/private static void addThirdChart(Document document,Map data) throws MalformedURLException, IOException, DocumentException{String name = (String) data.get("name");String[] head = (String[]) data.get("head");double[] body = (double[]) data.get("body");PieDataset pset = PileImageUtil.getDataPieSetByUtil(body, head);String img_name = name+System.currentTimeMillis()+".png";String img_path = PileImageUtil.createValidityComparePimChar(pset, "", img_name, head);PdfPTable table = new PdfPTable(1);table.setSpacingBefore(50f);PdfPCell cell0 = new PdfPCell();cell0.setUseAscender(true);cell0.setUseDescender(true);cell0.setHorizontalAlignment(Element.ALIGN_CENTER);cell0.setVerticalAlignment(Element.ALIGN_MIDDLE);Paragraph p = new Paragraph(name,normal_font);p.setAlignment(Element.ALIGN_MIDDLE);cell0.addElement(p);PdfPCell cell1 = new PdfPCell();Image img = Image.getInstance(img_path);img.setBorder(0);cell1.addElement(Image.getInstance(img_path));table.addCell(cell0);table.addCell(cell1);document.add(table);}/*** 创建一个1列2行表格,第一行为图表标题, 第二行装柱状图/饼图混合图表 * @param document* @param data* @throws MalformedURLException* @throws IOException* @throws DocumentException*/private static void addFourthChart(Document document,Map data) throws MalformedURLException, IOException, DocumentException{String name = (String) data.get("name");String yDesc1 = (String) data.get("yDesc1");String yDesc2 = (String) data.get("yDesc2");String[] xData = (String[]) data.get("x");double[][] y1 = (double[][]) data.get("y1");double[][] y2 = (double[][]) data.get("y2");String[] legend1 = (String[]) data.get("legend1");String[] legend2 = (String[]) data.get("legend2");CategoryDataset dataset1 =BarImageUtil.getBarData(y1, legend1, xData);CategoryDataset dataset2 =BarImageUtil.getBarData(y2, legend2, xData);String img_name = name+System.currentTimeMillis()+".png";String img_path = BarImageUtil.createBarChart(dataset1,dataset2, "", yDesc1,yDesc2,"",img_name,true);PdfPTable table = new PdfPTable(1);table.setSpacingBefore(80f);//table.setSplitLate(false);//禁止表格切割PdfPCell cell0 = new PdfPCell();cell0.setUseAscender(true);cell0.setUseDescender(true);cell0.setHorizontalAlignment(Element.ALIGN_CENTER);cell0.setVerticalAlignment(Element.ALIGN_MIDDLE);Paragraph p = new Paragraph(name,normal_font);p.setAlignment(Element.ALIGN_MIDDLE);cell0.addElement(p);PdfPCell cell1 = new PdfPCell();Image img = Image.getInstance(img_path);img.setBorder(0);cell1.addElement(img);table.addCell(cell0);table.addCell(cell1);document.add(table);;}/*** 内置双层表格, 内置表格标题格子,设置边框宽度为0 合并为一行* @param document* @param data* @throws DocumentException*/private static void addFifthTable(Document document,Map data) throws DocumentException{String name = (String) data.get("name");String[] datas = (String[]) data.get("datas");PdfPTable table = new PdfPTable(1);//外表格table.setSpacingBefore(50f);//设置当前表格与上一个表格间距为50PdfPCell cell_out1 = new PdfPCell();//外表格第一个格子 基本信息cell_out1.setUseAscender(true);cell_out1.setUseDescender(true);cell_out1.setHorizontalAlignment(Element.ALIGN_CENTER);cell_out1.setVerticalAlignment(Element.ALIGN_MIDDLE);Paragraph p = new Paragraph(name,normal_font);p.setAlignment(Element.ALIGN_MIDDLE);cell_out1.addElement(p);//外表格第二个格子  装内置表格PdfPCell cell_out2 = new PdfPCell();//创建一个内置10列的表格PdfPTable table_in = new PdfPTable(10);PdfPCell cell0 = new PdfPCell();//第一个格子 合并一个10列的单元格 装 "电站信息"cell0.setColspan(10);cell0.setBorderWidth(0);cell0.addElement(new Paragraph(datas[0],normal_font));PdfPCell cell1 = new PdfPCell();//第二个格子  合并一个2列的单元格 装 "子阵数量"cell1.setColspan(2);cell1.addElement(new Paragraph(" "+datas[1],normal_font));PdfPCell cell2 = new PdfPCell();//第三个格子  合并一个3列的单元格 装 "1" cell2.setColspan(3);cell2.addElement(new Paragraph(" "+datas[2],normal_font));PdfPCell cell3 = new PdfPCell();cell3.setColspan(2);cell3.addElement(new Paragraph(" "+datas[3],normal_font));PdfPCell cell4 = new PdfPCell();cell4.setColspan(3);cell4.addElement(new Paragraph(" "+datas[4],normal_font));PdfPCell cell5 = new PdfPCell();cell5.setColspan(2);cell5.addElement(new Paragraph(" "+datas[5],normal_font));PdfPCell cell6 = new PdfPCell();cell6.setColspan(3);cell6.addElement(new Paragraph(" "+datas[6],normal_font));PdfPCell cell7 = new PdfPCell();cell7.setColspan(2);cell7.addElement(new Paragraph(" "+datas[7],normal_font));PdfPCell cell8 = new PdfPCell();cell8.setColspan(3);cell8.addElement(new Paragraph(" "+datas[8],normal_font));PdfPCell cell9 = new PdfPCell();cell9.setColspan(2);cell9.addElement(new Paragraph(" "+datas[9],normal_font));PdfPCell cell10 = new PdfPCell();cell10.setColspan(8);cell10.addElement(new Paragraph(" "+datas[10],normal_font));PdfPCell cell11 = new PdfPCell();cell11.setColspan(2);cell11.addElement(new Paragraph(" "+datas[11],normal_font));PdfPCell cell12 = new PdfPCell();cell12.setColspan(8);cell12.addElement(new Paragraph(" "+datas[12],normal_font));PdfPCell cell13 = new PdfPCell();//合并一个10列的单元格 装"智能分析"cell13.setBorderWidth(0);cell13.setColspan(10);cell13.addElement(new Paragraph(datas[13],normal_font));PdfPCell cell14 = new PdfPCell();cell14.setColspan(2);cell14.addElement(new Paragraph(" "+datas[14],normal_font));PdfPCell cell15 = new PdfPCell();cell15.setColspan(3);cell15.addElement(new Paragraph(" "+datas[15],normal_font));PdfPCell cell16 = new PdfPCell();cell16.setColspan(2);cell16.addElement(new Paragraph(" "+datas[16],normal_font));PdfPCell cell17 = new PdfPCell();cell17.setColspan(3);cell17.addElement(new Paragraph(" "+datas[17],normal_font));PdfPCell cell18 = new PdfPCell();cell18.setColspan(2);cell18.addElement(new Paragraph(" "+datas[18],normal_font));PdfPCell cell19 = new PdfPCell();cell19.setColspan(8);cell19.addElement(new Paragraph(" "+datas[19],normal_font));table_in.addCell(cell0);table_in.addCell(cell1);table_in.addCell(cell2);table_in.addCell(cell3);table_in.addCell(cell4);table_in.addCell(cell5);table_in.addCell(cell6);table_in.addCell(cell7);table_in.addCell(cell8);table_in.addCell(cell9);table_in.addCell(cell10);table_in.addCell(cell11);table_in.addCell(cell12);table_in.addCell(cell13);table_in.addCell(cell14);table_in.addCell(cell15);table_in.addCell(cell16);table_in.addCell(cell17);table_in.addCell(cell18);table_in.addCell(cell19);cell_out2.addElement(table_in);table.addCell(cell_out1);table.addCell(cell_out2);document.add(table);}/*** 封装测试数据* @return*/public static Map<?,?> getTestData(){Map map = new HashMap();List datas = new ArrayList();//E02报表Map item1 = new HashMap();String[] head1 = {"月收益","月发电量","月问题数","月告警数"};String[] data1 = {"¥ 26493.6","20379.7kwh","15","107"};String[] image1 = {"D:\\Desktop\\sy.png","D:\\Desktop\\fdl.png","D:\\Desktop\\wt.png","D:\\Desktop\\gj.png"};item1.put("head", head1);item1.put("body", data1);item1.put("image", image1);//发电量统计Map item2 = new HashMap();String[] xdata2 = {"1","2","3","4","5","6","7","8","9","10","11","12"};String[] legends = {""};//图例double[][] ydata2 = {{215656.53,254213.00,146546.32,182132.54,152132.23,322325.28,345321.62,371212.24,394564.75,251515.04,215465.45,175465}   };item2.put("legends", legends);item2.put("name", "发电量统计");item2.put("x", xdata2);item2.put("xDesc", "月份");item2.put("y", ydata2);item2.put("yDesc", "发电量: KWH");//告警统计Map item3 = new HashMap();String[] head3 = {"紧急故障数","次要故障数"};double[] body3 = {100,7};item3.put("name", "告警统计");item3.put("head", head3);item3.put("body", body3);//社会价值统计Map item4 = new HashMap();String[] xdata4 = {"1","2","3","4","5","6","7","8","9","10","11","12"};double[][] ydata4 = {{532,275,343,444,521,663,708,806,655,512,208,212},{53,27,34,44,52,66,70,80,65,51,20,21}};double[][] ydatat = {{103,77,84,94,102,66,120,130,115,101,70,71}};String[] legend1 = {"CO2减排","节约标准煤"};String[] legend2 = {"减少森林砍伐"};item4.put("name", "问题统计");item4.put("x", xdata4);item4.put("yDesc1", "单位:kg");item4.put("y1", ydata4);item4.put("yDesc2", "单位:棵");item4.put("y2", ydatat);item4.put("legend1", legend1);item4.put("legend2", legend2);//基本信息Map item5 = new HashMap();String[] body5 = {"电站信息","子阵数量","1","逆变器数量","1346","组串数量","187","电站面积","11","电站模式","自发自用","电站概述","","智能分析信息","分析类型","电站级IV诊断","故障组串数","0","最新诊断时间","2020-5-4 10:52:01"};item5.put("name", "基本信息");item5.put("datas", body5);datas.add(item1);datas.add(item2);datas.add(item3);datas.add(item4);datas.add(item5);map.put("pdfName", "月报表");map.put("datas", datas);return map;}
}

柱状图工具类

package industryStationExportDemo;import java.awt.Color;
import java.awt.Font;
import java.awt.RenderingHints;
import java.io.File;
import java.io.FileOutputStream;
import java.text.DecimalFormat;import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.DatasetRenderingOrder;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.TextAnchor;/*** 多组柱状图测试类* @author Administrator**/
public class BarImageUtil {private static final String CHART_PATH = "E:/test/";public static void main(String[] args) {// TODO Auto-generated method stubmakeBarGroupChart();}public static void makeBarGroupChart(){double[][] data = new double[][]{{10,12,2,0,1,2,7},{5250.00,33,4,0,7,3,26},{5247.00,1794,592,18,297,73,751}};String[] rowKeys = { "待跟进数", "未完成数", "已完成数" };String[] columnKeys = { "中国", "欧洲", "亚洲", "泰国", "美洲", "非洲", "澳洲" };CategoryDataset dataset = getBarData(data, rowKeys, columnKeys);double[][] data2 = new double[][]{{1452.0,1620.0,1800.0,1532.0,1365.0,2163.0,1709.0}};String[] columnKeys2 = { "CO2减排" };String[] rowKeys2 =  { "中国", "欧洲", "亚洲", "泰国", "美洲", "非洲", "澳洲" };CategoryDataset dataset2 = DatasetUtilities.createCategoryDataset(columnKeys2, rowKeys2, data2);createBarChart(dataset,null,"","单位:kg","单位:棵","","柱状图6.png",false);}public static CategoryDataset getBarData(double[][] data, String[] rowKeys,String[] columnKeys){return DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);}/*** 柱状图* *@param dataset 数据集* @param xName x轴的说明* @param yName 左y轴的说明* @param yName2 右y轴的说明* @param chartTitle 图标题* @param charName 生成图片的名字* @return*/public static String createBarChart(CategoryDataset dataset1, CategoryDataset dataset2,String xName,String yName,String yName2, String chartTitle, String charName,boolean flag){JFreeChart chart = ChartFactory.createBarChart(chartTitle, // 图表标题xName, // 目录轴的显示标签yName, // 数值轴的显示标签dataset1, // 数据集0PlotOrientation.VERTICAL, // 图表方向:水平、垂直flag, // 是否显示图例(对于简单的柱状图必须是false)false, // 是否生成工具false // 是否生成URL链接);Font labelFont = new Font("SansSerif", Font.TRUETYPE_FONT, 12);/** VALUE_TEXT_ANTIALIAS_OFF表示将文字的抗锯齿关闭,* 使用的关闭抗锯齿后,字体尽量选择12到14号的宋体字,这样文字最清晰好看*/chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);chart.setTextAntiAlias(false);chart.setBackgroundPaint(Color.white);// create plotCategoryPlot plot = chart.getCategoryPlot();// 设置横虚线可见plot.setRangeGridlinesVisible(true);// 虚线色彩plot.setRangeGridlinePaint(Color.gray);// 设置柱图背景色(注意,系统取色的时候要使用16位的模式来查看颜色编码,这样比较准确)//plot.setBackgroundPaint(new Color(255, 255, 204));// x轴设置CategoryAxis domainAxis = plot.getDomainAxis();domainAxis.setLabelFont(labelFont);// 轴标题domainAxis.setTickLabelFont(labelFont);// 轴数值domainAxis.setMaximumCategoryLabelWidthRatio(0.6f);// 横轴上的 Lable 是否完整显示    domainAxis.setLowerMargin(0.02);// 设置距离图片左端距离        domainAxis.setUpperMargin(0.02);// 设置距离图片右端距离plot.setDomainAxis(domainAxis);// y轴设置/*NumberAxis vn = (NumberAxis) plot.getRangeAxis();vn.setAutoRangeIncludesZero(true);DecimalFormat df = new DecimalFormat("#0.00");vn.setNumberFormatOverride(df); */ValueAxis rangeAxis = plot.getRangeAxis();rangeAxis.setLabelFont(labelFont);rangeAxis.setTickLabelFont(labelFont);// 设置最高的一个 Item 与图片顶端的距离rangeAxis.setUpperMargin(0.15);// 设置最低的一个 Item 与图片底端的距离rangeAxis.setLowerMargin(0.15);plot.setRangeAxis(0,rangeAxis);BarRenderer renderer = new BarRenderer();// 设置柱子宽度//renderer.setMaximumBarWidth(1.0);// 设置柱子间距renderer.setItemMargin(0);// 设置柱子高度renderer.setMinimumBarLength(0.3);// 设置柱子边框颜色renderer.setBaseOutlinePaint(Color.BLACK);// 设置柱子边框可见renderer.setDrawBarOutline(true);// 显示每个柱的数值,并修改该数值的字体属性renderer.setBaseItemLabelFont(labelFont);renderer.setIncludeBaseInRange(true);renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());renderer.setBaseItemLabelsVisible(true);renderer.setSeriesPaint(0, new Color(106,162,255));//设置第一个柱状体颜色renderer.setSeriesPaint(1, new Color(124,203,196));//设置第二个柱状体颜色,后续柱状体颜色自动填充renderer.setAutoPopulateSeriesFillPaint(true);//自动填充柱状体颜色//设置柱状体数值标签展示样式,此设置表示:在柱状体顶部左边显示,按左下定点向上旋转0.7角度renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE10,TextAnchor.BASELINE_LEFT, TextAnchor.BOTTOM_LEFT,-0.7D));// 设置柱的透明度plot.setForegroundAlpha(1.0f);plot.setRenderer(renderer);//双Y坐标轴设置if(null!=dataset2){NumberAxis numberaxis3 = new NumberAxis(yName2);/*numberaxis3.setNumberFormatOverride(NumberFormat.getInstance());//设置风格numberaxis3.setAutoRange(false);numberaxis3.setLowerMargin(0.02D);//数据轴左边距numberaxis3.setUpperMargin(0.02D);//右边距 */plot.setRangeAxis(1, numberaxis3);//添加第二个坐标轴plot.setDataset(1, dataset2);//设置数据集索引plot.mapDatasetToRangeAxis(1,1);//将该索引映射到axis 第一个参数指数据集的索引,第二个参数为坐标轴的索引LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();lineandshaperenderer.setBaseShapesVisible(true); // series 点(即数据点)可见lineandshaperenderer.setBaseLinesVisible(true); // series 点(即数据点)间有连线可见lineandshaperenderer.setBaseItemLabelsVisible(true);  // 显示折点数据lineandshaperenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());lineandshaperenderer.setSeriesPaint(0,Color.GREEN);//设置某坐标轴索引上数据集的显示样式plot.setRenderer(1, lineandshaperenderer);plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);}FileOutputStream fos_jpg = null;try{isChartPathExist(CHART_PATH);String chartName = CHART_PATH + charName;fos_jpg = new FileOutputStream(chartName);ChartUtilities.writeChartAsPNG(fos_jpg, chart, 800, 500, true, 10);return chartName;} catch (Exception e){e.printStackTrace();return null;} finally {try {fos_jpg.close();} catch (Exception e){e.printStackTrace();}}}private static void isChartPathExist(String chartPath){File file = new File(chartPath);if (!file.exists()) {file.mkdirs();}}
}

饼图工具类

package industryStationExportDemo;import java.awt.Color;
import java.awt.Font;
import java.awt.RenderingHints;
import java.io.File;
import java.io.FileOutputStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.RingPlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.util.SortOrder;/*** 饼状图 测试类* @author Administrator**/
public class PileImageUtil {private static final String CHART_PATH = "E:/test/";public static void main(String[] args) {// 生成饼状图makePieChart();}/*** 测试逆变器数据*/public static void makePieChart(){String[] keys = { "中国", "亚洲","非洲","欧洲","美洲","大洋洲" };double[] data = { 336854, 16986,681,109535,14285,8028 };String img_title = "逆变器总数(单位:台)";String img_name = "饼状图4.png";PieDataset pset = getDataPieSetByUtil(data, keys);createValidityComparePimChar(pset, img_title,img_name, keys);}// 饼状图 数据集public static PieDataset getDataPieSetByUtil(double[] data,String[] datadescription){if (data != null && datadescription != null){if (data.length == datadescription.length){DefaultPieDataset dataset = new DefaultPieDataset();for (int i = 0; i < data.length; i++){dataset.setValue(datadescription[i], data[i]);}return dataset;}}return null;}/*** 饼状图* * @param dataset 数据集* @param chartTitle 图标题* @param charName 生成图的名字* @param pieKeys 分饼的名字集* @return*/public static String createValidityComparePimChar(PieDataset dataset,String chartTitle, String charName, String[] pieKeys){JFreeChart chart = ChartFactory.createRingChart(chartTitle,dataset, true,true,false);//饼图面积降序排序((DefaultPieDataset) dataset).sortByValues(SortOrder.DESCENDING);// 使下说明标签字体清晰,去锯齿类似于chart.setTextAntiAlias(false);// 图片背景色chart.setBackgroundPaint(Color.white);// 设置图标题的字体重新设置titleFont font = new Font("隶书", Font.BOLD, 25);TextTitle title = new TextTitle(chartTitle);title.setFont(font);chart.setTitle(title);RingPlot plot = (RingPlot) chart.getPlot();plot.setBackgroundAlpha(0.8f);plot.setSectionPaint(pieKeys[0], new Color(250, 100, 0));plot.setSectionPaint(pieKeys[1], new Color(247, 181, 0));// 设置无数据时的信息//plot.setNoDataMessage("无对应的数据,请重新查询。");// 设置无数据时的信息显示颜色//plot.setNoDataMessagePaint(Color.red);((DefaultPieDataset) dataset).sortByValues(SortOrder.DESCENDING);plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}:{1}({2})", NumberFormat.getNumberInstance(),new DecimalFormat("0.00%")));// 图例显示百分比:自定义方式, {0} 表示选项, {1} 表示数值, {2} 表示所占比例//{0}={1}({2})  中国=103920(70%)plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}"));plot.setLabelFont(new Font("SansSerif", Font.TRUETYPE_FONT, 12));// 指定图片的透明度(0.0-1.0)plot.setForegroundAlpha(1.0f);// 指定显示的饼图上圆形(false)椭圆形(true)plot.setCircular(true);FileOutputStream fos_jpg = null;try{isChartPathExist(CHART_PATH);String chartName = CHART_PATH + charName;fos_jpg = new FileOutputStream(chartName);// 高宽的设置影响椭圆饼图的形状ChartUtilities.writeChartAsPNG(fos_jpg, chart, 1000, 460);return chartName;}catch (Exception e){e.printStackTrace();return null;}finally{try{fos_jpg.close();}catch (Exception e){e.printStackTrace();}}}/*** 判断文件夹是否存在,如果不存在则新建* @param chartPath*/private static void isChartPathExist(String chartPath){File file = new File(chartPath);if (!file.exists()) {file.mkdirs();}}
}推荐下Jfree中文API文档, 另感谢大佬的cell边框设置无效的示例> https://www.yiibai.com/jfreechart/jfreechart_referenced_apis.html
>
> https://blog.csdn.net/qq_37481877/article/details/88329958
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Mysql将多个查询结果并列显示

    目录一、需求二、表数据三、查询语句四、查询结果 一、需求 1、已知表:student 表字段:id(主键ID),score(考试分数),student_name(学生姓名)2、求出每个学生的考试次数,考试分数大于60分的次数二、表数据三、查询语句 SELECT#student_name取b表的(如果取的a表的stu…...

    2024/4/28 4:16:35
  2. UEFI开发探索58-UTF-8编码问题

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365)这篇要记录的知识,实际上不限于UEFI编程,在其他编程上也一样会遇到。只是因为最近这段时间,沉迷于国产机器开发的项目,频繁地调试UEFI代码,遇到了这些问题,我觉得应该有普遍性,姑且记录下来。在日常的编程…...

    2024/4/23 16:04:22
  3. XXX的脚本因Mime类型不匹配而被阻止

    报这个错根本就不是什么狗屁mine类型的问题,是调用require的时候路径写错了。我个人体验:不知道为什么不能用commonjs的require函数,只能用requirejs的require函数,以require([ ],callback) 的格式引入模块,所以在路径的写法上就老老实实写相对路径、绝对路径,/ ./ ……...

    2024/4/25 23:53:15
  4. 静态程序编译链接与装载

    linkers and loaders(中文版&英文版) https://download.csdn.net/download/cc850107/467854?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159002700519195264559498%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&reque…...

    2024/4/23 16:04:23
  5. springboot集成mybatis-generator插件

    1、包结构1、pom文件1.1、定义properties<properties><mbg.version>1.3.6</mbg.version><java.version>1.8</java.version><!-- Java接口和实体类生成路径targetMapperPackage是生成的接口包名targetModelPackage是生成的实体类包名-->&l…...

    2024/4/23 16:04:19
  6. synchronized原理解析

    一:synchronized原理解析 1:对象头 首先,我们要知道对象在内存中的布局: 已知对象是存放在堆内存中的,对象大致可以分为三个部分,分别是对象头、实例变量和填充字节。对象头zhuyao是由MarkWord和Klass Point(类型指针)组成,其中Klass Point是对象指向它的类元数据的指针…...

    2024/4/23 16:04:18
  7. 数字ic验证基础

    验证的技术门槛: 1.具备数字电路基础,能够理解RTL硬件设计 有软件设计思想,懂得调试软件错误 systemverilog ,最好懂c和c++ OVM/UVM等基于systemverilog的验证方法 制定计划,搭建验证平台 环境脚本语言,tcl,perl python 脚本语言的好处: 知乎的一个解答 https://zhuanl…...

    2024/4/23 16:04:20
  8. LeetCode Edit Distance

    题目分析: 给你word1、word2两个字符串,问最少需要几步才能把word1变成word2,下面每种操作都是一步: a)添加一个字符; b)添加一个字符; c)把一个字符用另一个字符代替。 解题思路: 动态规划。用dpi表示把word1的前i个字符变成word2的前j个字符所需的步数,word1的前i个字…...

    2024/4/23 16:04:19
  9. 给分类添加缓存并解释StringRedisTemplate

    缓存的基本实现接下来以根据父节点查询子节点演示缓存功能:@Override public List<CategoryEntity> querySubCategories(Long pid) {// 从缓存中获取String cacheCategories = this.redisTemplate.opsForValue().get(CATEGORY_CACHE_KEY_PREFIX + pid);if (StringUtils.…...

    2024/4/23 16:04:15
  10. mac运行web项目后页面无法显示?无法为上下文【项目名】创建工作目录,解决方法

    web项目可以运行,运行之后tomcat主页也能显示,但是输入http://localhost:8080/项目名/时,出现以下错误: java.lang.ClassNotFoundException: org.apache.jsp.login_jsp查看控制台出现:解决方法: 1、找到tomcat文件夹,右键显示简介 2、在最下面共享与权限里将权限都设为读…...

    2024/4/16 23:57:57
  11. 约瑟夫问题环循环链表解法

    一.简介 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后…...

    2024/4/16 23:57:45
  12. VARCHART XGantt.NET--.NET,甘特图表轻松解决复杂数据

    QQ:1916531335-VARCHART XGantt.NET--.NET / C#甘特图控件,可靠,强大且经过验证的.NET / C#甘特图控件。-全球有500多个客户使用。俄罗斯的NaviServ公司是一家为ERP提供解决方案的Microsoft Dynamics NAV供应商。作为一个专业的团队,他们在使用Microsoft Dynamics NAV为客…...

    2024/4/16 23:58:03
  13. 小程序使用wx.createAnimation和fadein实现弹出动画效果

    <view><view bindtap="openPopup">点击</view><view hidden="{{popup}}"><view class="huise" bindtap="splicPopup"></view><view class="popup fadein" animation="{{animat…...

    2024/4/16 23:57:51
  14. Vue使用scope修改传递的数据时,源数据也发生变化解决办法(深拷贝浅拷贝)

    修改试题列表里面的试题你会发现直接使用scope.row形成修改数据的变量后。this.questionsEditData = scope.row当你去修数据之后,会发现源数据也会发生变化。红色框框里面的数据也会发生变化,就是因为,我们赋值利用的是浅拷贝,指向的是地址,所以修改后 源数据也发生了变化…...

    2024/4/23 16:04:21
  15. python实验之使用异或进行简单的文件加解密

    任务1:定义生成随机密钥的函数。函数带有一个参数L;函数生成一个包含L个字节的随机字节串(可以借助secrets包中的token_bytes模块实现),并将随机字节串转换成整数返回。 任务2:定义实现加密单元的函数。函数带有一个字符串参数;函数将字符串编码为字节串并转换为整数,然…...

    2024/4/27 23:35:50
  16. Python的三种流程控制结构的学习

    众所周知,所有的计算机程序语言都有三种控制结构:顺序结构、选择(分支)结构、循环结构,当然Python也不例外,今天就写写有关Python的流程控制结构。 首先我们来看看顺序结构(笔者使用了中英双语哦!): # 这是顺序结构 width = input("请输入矩形的宽:") hei…...

    2024/4/23 16:04:13
  17. Python 内置函数 21-30

    21、bin(): bin()返回一个整数int或者长整数long int 的二进制表示。 bin(x) x -- int 或者 long int 数字 >>>bin(10) 0b1010 >>> bin(20) 0b1010022、file(): file()函数用于创建一个file对象,它有一个别名叫open(),更形象写,它们是内置函数。参数是以字…...

    2024/4/23 16:04:11
  18. unity中transform.find和Gameobject.find有什么区别

    public static GameObject Find(string name); 适用于整个游戏场景中名字为name的所有处于活跃状态的游戏对象。如果在场景中有多个同名的活跃的游戏对象,在多次运行的时候,结果是固定的。 public Transform Find(string name); 适用于查找游戏对象子对象名字为name的游戏对象…...

    2024/4/23 16:04:13
  19. 数据结构:笔记-排序

    1、归并排序在任何情况下都比所有简单排序速度快(错误) 对于一个已经排好序的序列,直接插入排序的复杂度是O(n),而归并排序的复杂度是O(nlogn)。这时候归并排序就不比直接插入排序速度快了。 归并排序的最好、最坏、平均时间都是O(nlogn),但是简单排序有些情况下是O(n). 2、…...

    2024/4/23 16:04:12
  20. 【矩阵论笔记】子空间(核子空间和值域)

    dim(O)=0 例子基础解系的个数=矩阵的维数−矩阵的秩基础解系的个数=矩阵的维数-矩阵的秩基础解系的个数=矩阵的维数−矩阵的秩 子空间 找子集就是找子空间的基例子零空间和值域的区别,一个是求行一个是求列。 零空间是找基础解系,列空间是找系数矩阵(列向量构成的极大线性无…...

    2024/4/23 16:04:08

最新文章

  1. SpringBoot---------Hutool

    第一步&#xff1a;引入依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-parent</artifactId><version>5.7.17</version></dependency> 第二步&#xff1a;各种用法 ①生成随机数 //生成验证码 String s …...

    2024/4/28 4:37:19
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. java学习之线程池

    java线程池优点&#xff1a; 降低线程创建和销毁的开销&#xff0c;提高系统性能。 提高线程的利用率和系统的吞吐量。 统一线程的管理和监控&#xff0c;避免线程泄漏和线程安全问题。 支持任务队列和拒绝策略等机制&#xff0c;提供灵活的任务调度和任务处理能力。 并不…...

    2024/4/27 8:47:47
  4. ROS2高效学习第十章 -- ros2 高级组件之大型项目中的 launch 其二

    ros2 高级组件之大型项目中的 launch 1 前言和资料2 正文2.1 启动 turtlesim&#xff0c;生成一个 turtle &#xff0c;设置背景色2.2 使用 event handler 重写上节的样例2.3 turtle_tf_mimic_rviz_launch 样例 3 总结 1 前言和资料 早在ROS2高效学习第四章 – ros2 topic 编程…...

    2024/4/28 3:06:27
  5. 贪心算法|376.摆动序列

    力扣题目链接 class Solution { public:int wiggleMaxLength(vector<int>& nums) {if (nums.size() < 1) return nums.size();int curDiff 0;int preDiff 0;int result 1;for (int i 0; i < nums.size() - 1; i) {curDiff nums[i 1] - nums[i];if ((pre…...

    2024/4/27 10:05:45
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57