精华内容
下载资源
问答
  • 需求:一个word模板,里边有一个表格,需要根据需求动态填充数据,需要转成pdf,但是我发现转成pdf的方式并不方便,想着还不如将动态的部分生成图片,然后由前端整合其他部分用于展示,满足了需求。 生成完之后的...

    需求:一个word模板,里边有一个表格,需要根据需求动态填充数据,需要转成pdf,但是我发现转成pdf的方式并不方便,想着还不如将动态的部分生成图片,然后由前端整合其他部分用于展示,也满足了需求。

    word生成png-效果图

    需要生成图片部分的效果图

    word生成png-结果图

    生成完之后的图:(ps:字体大小和颜色啥的都可以自己变动,此仅仅是完成了功能)
    生成完之后的图

    核心代码

    数据整合部分

    public String actionExportReport(HttpServletRequest request, List<Map<String, String>> mapList,
          Double totalAmount) {
        //中间核心值
        ArrayList<List<String>> list = new ArrayList<>();
        mapList.stream().forEach(e -> {
          Collection<String> stringList = e.values();
          List<String> listString = new ArrayList<>(stringList);
          list.add(listString);
        });
        //表格第一行的名称
        ArrayList<List<String>> listNew = new ArrayList<>();
        List<String> titleList = new ArrayList<>();
        titleList.add("名称");
        titleList.add("规格");
        titleList.add("单位");
        titleList.add("单价");
        titleList.add("数量");
        titleList.add("金额(元)");
        titleList.add("备注");
        listNew.add(titleList);
        listNew.addAll(list);
        //编写最后一行的数值统计
        List<String> statisticsList = new ArrayList<>();
        statisticsList.add("合计");
        statisticsList.add("大写");
        String amount = String.format("%.2f", totalAmount);
        statisticsList.add(numberUppercase.toChinese(amount));
        statisticsList.add("");
        statisticsList.add("金额");
        String amountString = "¥" + amount + "元";
        statisticsList.add(amountString);
        listNew.add(statisticsList);
    	//核心代码
        BufferedImage bufferedImage = ImageQrCoderShare.wordPngBase(listNew);
        String shareImageUrl;
        if (null != bufferedImage) {
          //存储服务器代码,忽略
          String urlPath = "/images/contract/info";
          shareImageUrl = getImageUrl(bufferedImage, request,111L, urlPath);
        } else {
          shareImageUrl = "";
        }
        return shareImageUrl;
    
      }
    

    表格设置部分

    public static BufferedImage wordPngBase(ArrayList<List<String>> list) {
        //封装了画图类 用于画图初始化,设置图标题、表格行列数
        BufferedImage bufferedImage = ImageQrCoderShare
            .drawImage("一、买卖物名称、数量、价款(货物采购计划单):", list.size());
        Graphics2D graphics2D = (Graphics2D) bufferedImage.getGraphics();
        //继续向初始化后的graphics2D,存储刚处理的数据内容
        Font font;
        int colwidth = ((ImageQrCoderShare.imageWidth - 20) / ImageQrCoderShare.totalcol);
        for (int n = 0; n < list.size(); n++) {
          for (int l = 0; l < list.get(n).size(); l++) {
          	//封装的字体类,可以直接new就行
            font = definedFontPF.deriveFont(Font.PLAIN, 16);
            graphics2D.setFont(font);
            graphics2D.setColor(Color.BLACK);
            //循环输出,根据表格设置的列设置宽度,也就是起始点
            graphics2D.drawString(
                String.valueOf(list.get(n).get(l)), ImageQrCoderShare.startWidth + colwidth * l + 5,
                ImageQrCoderShare.startHeight + ImageQrCoderShare.rowheight * (n + 2) - 10);
          }
        }
        return bufferedImage;
      }
    

    数据动态生成部分

    //封装了画图类 用于画图初始化,设置图标题、表格行列数
    public static BufferedImage drawImage(String title, int totalRow) {
    
        // 图片高度
        int imageHeight = totalRow * rowheight + 50;
        // 单元格宽度
        int colwidth = ((imageWidth - 20) / totalcol);
    
        BufferedImage bufferedImage = new BufferedImage(imageWidth, imageHeight,
            BufferedImage.TYPE_INT_RGB);
    
        Graphics2D graphics2D = (Graphics2D) bufferedImage.getGraphics();
    
        graphics2D.setColor(Color.WHITE);
        graphics2D.fillRect(0, 0, imageWidth, imageHeight);
        graphics2D.setColor(new Color(220, 240, 240));
        for (int j = 0; j < totalRow; j++) {
          graphics2D.setColor(Color.black);
          graphics2D
              .drawLine(startWidth, startHeight + (j + 1) * rowheight, startWidth + colwidth * totalcol,
                  startHeight + (j + 1) * rowheight);
        }
        // 画竖线
        for (int k = 0; k < totalcol + 1; k++) {
          graphics2D.setColor(Color.black);
          graphics2D
              .drawLine(startWidth + k * colwidth, startHeight + rowheight, startWidth + k * colwidth,
                  startHeight + rowheight * totalRow);
        }
        // 设置字体
        Font font = definedFontPF.deriveFont(Font.PLAIN, 24);
        graphics2D.setFont(font);
        graphics2D.setColor(Color.black);
        // 写标题
        graphics2D.drawString(title, startWidth, startHeight + rowheight - 10);
        return bufferedImage;
      }
    
    展开全文
  • 它具有一个许可系统,允许观察者进行战利品或特快动作,这将自动处理物料交易,包括库存变动和货币变动。 战利品表允许具有正确权限的玩家从中掠夺物品,而商户表则允许他们购买物品以换取货币。 商家表格也可以...
  • 这两天一直在改bug,要么是前台样式问题,要么是后台代码不规范,比如变量命名不规范引发的问题,我负责的这块接收的人最多,代码随着需求的变动改动大,而且之前代码都是紧耦合,从当前项目的其他地方粘贴复制过来...

    这两天一直在改bug,要么是前台样式问题,要么是后台代码不规范,比如变量命名不规范引发的问题,我负责的这块接收的人最多,代码随着需求的变动改动也大,而且之前代码都是紧耦合,从当前项目的其他地方粘贴复制过来的,代码几乎没有工程性复用,改得很难受。来说一个样式冲突和js变量命名冲突的问题的解决吧。

    由于是内容管理系统,很多台帐页面都是查询以及表格分页展示。我就遇到表格的th样式之间互相影响,定位的时候极其恶心,好吧,定位出来了。解决的方法,就是在th的父级加一个唯一的id,也可以是样式,但要保证命名唯一。这个唯一命名相当于一个命名空间。

    <table id="iTable" class="table temporary" width="100%" layoutH="163">
    .temporary table thead tr th{
            text-align: center !important;
        }
        .temporary table tbody tr td{
            text-align: center !important;
        }

    js函数名冲突的处理思路类似,在当前文件中设置一个全局对象,然后其他函数绑定这个对象

    var proTemporaryAccess = {};
    proTemporaryAccess.exp_extract(_this){
    };


    复选框name冲突,将复选框name命名改成和当前文件相关的唯一命名。

    顺便记一下,这个项目使用的是dwz。。。。。。。。==



    展开全文
  • PLSQL Developer 8.0.3.1510 简体中文绿色破解版

    万次下载 热门讨论 2010-07-15 16:36:07
    如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • 如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • 如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • 如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • QTP下载链接.txt

    2020-08-17 09:04:43
    每个Action可以对应有一个或者多个OR,可以设置某个OR为 sharable的,这样可以供其他Action使用。注意,使用QTP录制功能时,默认将被测对象放在local OR中,可以通过 Resources->Object Respository,选择Local...
  • Linux 是一个以 Intel 系列 CPU(CYRIX,AMD 的 CPU可以)为硬件平台,完全免费的 UNIX 兼容系统,完全适用于个人的 PC。它本身就是一个完整的 32 位的多用户多任务操作 系统,因此不需要先安装 DOS 或其他的操作...
  • PL/SQL Developer v8.0.zip

    2019-07-17 17:29:59
    如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • excel的使用

    2012-11-25 17:06:01
    (6) 不连续单元格填充同一数据选中一个单元格,按住Ctrl键,用鼠标单击其他单元格,就将这些单元格全部都选中了。在编辑区中输入数据,然后按住Ctrl键,同时敲一下回车,在所有选中的单元格中都出现了这一数据。...
  • 如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • 如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • PL/SQL Developer

    2010-07-01 13:29:22
    如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • 本书作者利用程序代码实现了TCP/IP的每一个具体细节,并且所有的代码在书中均可找到,这对于读者深入了解并掌握TCP/IP的细节内容大有帮助。各章之后附有很多习题,内容全面且结合实际。全书最后还有三个附录,分别给...
  • PLSQL Developer 7.1.5

    2009-09-18 11:36:49
    如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • 这也许是一个其他的开发环境,如测试环境或制作环境等。而比较用户对象功能则允许您对所选对象进行比较,将不同点可视化,并运行或保存应用必要变动的SQL脚本。 导出用户对象——该工具可以导出用户所选对象的DDL...
  • PLSQLDeveloper下载

    2012-05-04 11:30:27
    如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • 如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • 如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要...
  • 这也许是一个其他的开发环境,如测试环境或制作环境等。而比较用户对象功能则允许您对所选对象进行比较,将不同点可视化,并运行或保存应用必要变动的SQL脚本。 导出用户对象——该工具可以导出用户所选对象的DDL...
  • 这也许是一个其他的开发环境,如测试环境或制作环境等。而比较用户对象功能则允许您对所选对象进行比较,将不同点可视化,并运行或保存应用必要变动的SQL脚本。 导出用户对象——该工具可以导出用户所选对象的DDL...
  • 这也许是一个其他的开发环境,如测试环境或制作环境等。而比较用户对象功能则允许您对所选对象进行比较,将不同点可视化,并运行或保存应用必要变动的SQL脚本。 导出用户对象——该工具可以导出用户所选对象的DDL...
  • 这也许是一个其他的开发环境,如测试环境或制作环境等。而比较用户对象功能则允许您对所选对象进行比较,将不同点可视化,并运行或保存应用必要变动的SQL脚本。 导出用户对象——该工具可以导出用户所选对象的DDL...
  • 2、本编制办法仅是权宜之计,以应付时之急需,本现金流量表的公式设置使其能自动平衡,使用者根本无需考虑报表本身的勾稽关系和平衡问题,即使表外数据录入时出错(当然打印前别忘了检查),现金流量表是自动...
  • 多个值必须用’|’分隔,如果name与text值相同则只选择一个并用’|’分开可 3.4.3 内置变量与函数(Build-in variables & functions) 有些常用的查询参数不需要用户每次都创建,因此集成在工具内,这些参数...
  • 学生信息管理系统

    2013-04-06 18:52:37
    在当前的信息化时代中,任何高校,都需要一个实用的管理系统来规范学校管理、学生管理和数据统计和分析,这将会大大提升高校的管理水平,优化资源,尽可能地降低成本,实现最大效益化。针对上述情况,我们编写了一套...
  • 即使他在这一方面做得象一个行业发言人一样好,但如果他缺乏对供给、需求以及市场功能的研究和有关知识,就不可能成为一个称职的公司经理或者企业代理人。事实上,在进行管理学专业培养的时候,为了研究利润及奖惩等...
  • 同样是建立一个表单,不同的是,这次我们在表单中加入了一个表格,让所有员工的信息都在表格中显示出来。 五.系统评价 系统评价就是客观,公正的从各个方面评价系统的各项功能。本部分将具体从三方面阐述:优点,...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

一个表格变动其他表格也变动