跳转到内容

Java 生成「资产评估摘要报告」PDF 示例(Template)

JQuick-Pdf场景 Demo

Template3 页 A4 · 103 KB

封面 + 多页正文的评估摘要,含评估机构公章与注册评估师签章。

下载 PDF 文件查看模板原始文件返回全部示例

资产评估摘要报告 — Template
渲染效果

输出规格

PDF 页数
3
图表类型
Template
模板行数
184
源码行数
207

Java 源码 · JQuickBiz96AssetAppraisal.java

以下代码即生成上方 PDF 的完整测试类,可直接复制运行;Maven 依赖见快速开始章节。

/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Copyright (c) [2025-2099] Martin ([email protected])
 */
package com.github.paohaijiao.biz.scenario;

import com.github.paohaijiao.config.JPdfConfig;
import com.github.paohaijiao.executor.JQuickPdfFactory;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.Map;

public class JQuickBiz96AssetAppraisal {

    private static final String PDF_DIR = "D:/test/pdf/";
    private static final String IMG_DIR = "D:/test/image/";
    private static final String OUT_FILE = PDF_DIR + "96_asset_appraisal.pdf";
    private static final String TEMPLATE = "report/biz/96_asset_appraisal.txt";

    public static void main(String[] args) throws IOException {
        new File(PDF_DIR).mkdirs();
        new File(IMG_DIR).mkdirs();

        // ---------- 1. 生成图片(机构章 + 双评估师签名),模板按字面量路径引用 ----------
        generateSeal(IMG_DIR + "96_seal.png", "中和正信资产评估有限公司");
        generateSignature(IMG_DIR + "96_sign_a.png", "顾言之");
        generateSignature(IMG_DIR + "96_sign_b.png", "柳明");

        // ---------- 2. 组织数据(普通 Map,无实体类)----------
        // 资产分类汇总:类别 / 评估方法 / 账面价值 / 评估价值(增值额与增值率程序计算)
        String[][] assets = {
                {"流动资产(货币资金、应收款项、存货)", "资产基础法", "86420000.00", "87150000.00"},
                {"固定资产—房屋建筑物", "重置成本法", "126800000.00", "148260000.00"},
                {"固定资产—机器设备", "重置成本法", "46350000.00", "41820000.00"},
                {"固定资产—车辆", "市场法", "4820000.00", "3960000.00"},
                {"在建工程", "资产基础法", "18640000.00", "18640000.00"},
                {"无形资产—土地使用权", "基准地价系数修正法", "32400000.00", "56800000.00"},
                {"无形资产—专利及软件著作权", "收益法", "8600000.00", "12400000.00"},
                {"长期待摊费用及其他", "资产基础法", "2460000.00", "2310000.00"},
                {"负债(短期借款、应付款项等)", "资产基础法", "58260000.00", "58260000.00"}
        };
        String[] specialNotes = {
                "1.本次评估范围内房屋建筑物共 6 项,均已取得不动产权证书,其中 2 项已设定抵押,抵押权人为××商业银行,"
                        + "评估时未考虑抵押事项对价值的影响。",
                "2.存货中的在产品按完工进度折算为约当产量后评估,若后续订单发生变化,评估结论可能相应调整。",
                "3.无形资产—专利及软件著作权采用收益法评估,其未来收益预测由委托人提供,我们对其合理性进行了必要分析,"
                        + "但不构成对未来收益实现的保证。",
                "4.截至评估基准日,产权持有人存在未决诉讼 1 起,涉诉金额约 320 万元,评估时未计提预计负债。",
                "5.本报告未考虑评估对象在交易过程中可能产生的交易税费、过户费用及相关法律费用。"
        };

        Map<String, Object> data = new LinkedHashMap<String, Object>();
        data.put("reportNo", "中正评报字[2026]第 0417 号");
        data.put("client", "××科技股份有限公司");
        data.put("owner", "××科技股份有限公司");
        data.put("purpose", "为委托人拟进行的股权收购事宜提供价值参考");
        data.put("baseDate", "2025年12月31日");
        data.put("scope", "委托人申报的全部资产及相关负债,包括流动资产、房屋建筑物、机器设备、在建工程、"
                + "土地使用权、专利及软件著作权等无形资产(详见评估明细表)");
        data.put("valueType", "市场价值");
        data.put("reportDate", "2026年3月26日");
        data.put("validPeriod", "2025年12月31日 至 2026年12月30日");
        data.put("institution", "中和正信资产评估有限公司");
        data.put("address", "××市××区金融街 18 号 中和大厦 12 层");
        data.put("appraiserA", "顾言之");
        data.put("appraiserB", "柳明");
        data.put("certNoA", "(资产评估师)编号 31000052");
        data.put("certNoB", "(资产评估师)编号 31000187");

        BigDecimal totalBook = BigDecimal.ZERO;
        BigDecimal totalEval = BigDecimal.ZERO;
        for (int i = 0; i < assets.length; i++) {
            BigDecimal book = new BigDecimal(assets[i][2]);
            BigDecimal eval = new BigDecimal(assets[i][3]);
            BigDecimal increment = eval.subtract(book);
            String rate;
            if (book.compareTo(BigDecimal.ZERO) == 0) {
                rate = "0%";
            } else {
                rate = increment.multiply(new BigDecimal(100))
                        .divide(book, 2, BigDecimal.ROUND_HALF_UP).toPlainString() + "%";
            }
            totalBook = totalBook.add(book);
            totalEval = totalEval.add(eval);
            data.put("aCat" + (i + 1), assets[i][0]);
            data.put("aMethod" + (i + 1), assets[i][1]);
            data.put("aBook" + (i + 1), money(book));
            data.put("aEval" + (i + 1), money(eval));
            data.put("aRate" + (i + 1), rate);
        }
        data.put("totalBook", money(totalBook));
        data.put("totalEval", money(totalEval));
        data.put("totalIncrement", money(totalEval.subtract(totalBook)));
        data.put("totalRate", totalEval.subtract(totalBook).multiply(new BigDecimal(100))
                .divide(totalBook, 2, BigDecimal.ROUND_HALF_UP).toPlainString() + "%");
        for (int i = 0; i < specialNotes.length; i++) {
            data.put("note" + (i + 1), specialNotes[i]);
        }

        // ---------- 3. 渲染 ----------
        JPdfConfig config = new JPdfConfig();
        config.getLayoutConfig().setFlexLayout(true);
        config.getDoc().setMargins(Arrays.asList(60, 64, 58, 64));
        config.getHeaderConfig().setEnabled(true);
        config.getHeaderConfig().setText("资产评估报告摘要 " + data.get("reportNo"));
        config.getHeaderConfig().setFontSize(8);
        config.getHeaderConfig().setHeight(34);
        config.getFooterConfig().setEnabled(true);
        config.getFooterConfig().setFontSize(8);
        config.getFooterConfig().setPageNumberFormat("第 %d 页");

        JQuickPdfFactory factory = new JQuickPdfFactory(config);
        factory.bindAll(data);
        byte[] pdf = factory.executeResource(TEMPLATE);
        Files.write(new File(OUT_FILE).toPath(), pdf);
        System.out.println("已生成:" + OUT_FILE);
    }

    /** 千分位格式化,保留两位小数。 */
    private static String money(BigDecimal v) {
        return String.format("%,.2f", v.doubleValue());
    }

    /** 生成评估机构公章(双圈 + 五角星 + 环形机构名)。 */
    private static void generateSeal(String path, String orgName) throws IOException {
        int size = 220;
        BufferedImage image = new BufferedImage(size, size, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g = image.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        Color red = new Color(0xC6, 0x28, 0x28);
        g.setColor(red);
        g.setStroke(new BasicStroke(7f));
        g.drawOval(7, 7, size - 14, size - 14);
        g.setStroke(new BasicStroke(2f));
        g.drawOval(18, 18, size - 36, size - 36);
        g.fill(star(size / 2, size / 2 - 10, 20));
        // 环形排列单位名称
        String name = orgName;
        double start = -168;
        double step = 216.0 / Math.max(1, name.length());
        for (int i = 0; i < name.length(); i++) {
            double angle = Math.toRadians(start + step * i);
            int r = 74;
            int x = (int) (size / 2 + r * Math.cos(angle));
            int y = (int) (size / 2 + r * Math.sin(angle));
            Graphics2D g2 = (Graphics2D) g.create();
            g2.rotate(angle + Math.PI / 2, x, y);
            g2.setFont(new Font("Microsoft YaHei", Font.BOLD, 12));
            g2.drawString(String.valueOf(name.charAt(i)), x - 6, y + 5);
            g2.dispose();
        }
        g.setFont(new Font("Microsoft YaHei", Font.BOLD, 13));
        g.drawString("资产评估专用章", size / 2 - 46, size - 40);
        g.dispose();
        ImageIO.write(image, "png", new File(path));
    }

    private static Shape star(int cx, int cy, int radius) {
        java.awt.geom.Path2D.Double path = new java.awt.geom.Path2D.Double();
        for (int i = 0; i < 10; i++) {
            double r = (i % 2 == 0) ? radius : radius * 0.42;
            double angle = Math.toRadians(-90 + i * 36);
            double x = cx + r * Math.cos(angle);
            double y = cy + r * Math.sin(angle);
            if (i == 0) {
                path.moveTo(x, y);
            } else {
                path.lineTo(x, y);
            }
        }
        path.closePath();
        return path;
    }

    /** 生成签名图片(楷体 + 轻微旋转)。 */
    private static void generateSignature(String path, String name) throws IOException {
        BufferedImage image = new BufferedImage(200, 96, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g = image.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g.rotate(Math.toRadians(-3), 100, 48);
        g.setColor(new Color(0x1B, 0x2A, 0x3A));
        g.setFont(new Font("KaiTi", Font.PLAIN, 40));
        g.drawString(name, 36, 64);
        g.dispose();
        ImageIO.write(image, "png", new File(path));
    }
}

最小调用(3 行)

不想读完整测试类?核心就是这三行:绑定图表 SVG,执行模板,拿到 PDF 字节流。可直接复制到你的项目里。

// config 可省略;svg 来自 JChartRendererFactory.renderChart(...),见下方完整源码
byte[] pdf = new JQuickPdfFactory(config).executeResource("report/biz/96_asset_appraisal.txt");

模板文件 · 96_asset_appraisal.txt

类 HTML + 内联 CSS 的模板语法,绑定数据后渲染为 PDF。下方为完整模板,可直接复制,也可下载原始文件。

<pdf>
<body>

  <!-- 封面 -->
  <p style="fontSize:9pt; color:#8a939b; textAlignment:center; marginTop:20px">${institution}</p>
  <p style="fontSize:9pt; color:#8a939b; textAlignment:center">'ASSET APPRAISAL REPORT'</p>
  <p style="fontSize:26pt; bold:true; color:#1A2733; textAlignment:center; characterSpacing:8pt; marginTop:56px">'资产评估报告'</p>
  <p style="fontSize:14pt; color:#2E5B8A; textAlignment:center; characterSpacing:6pt; marginTop:10px">'(摘 要)'</p>
  <div style="marginTop:60px; marginLeft:96px; marginRight:96px">
    <lineSeparator style="color:#2E5B8A; thickness:1.5f; marginBottom:12px"></lineSeparator>
    <table style="width:70%; fontSize:10pt; marginBottom:5px">
      <tr>
        <td style="width:110px; padding:3px; bold:true; color:#2E5B8A">'报告编号'</td>
        <td style="padding:3px; color:#1A2733">${reportNo}</td>
      </tr>
      <tr>
        <td style="padding:3px; bold:true; color:#2E5B8A">'委托人'</td>
        <td style="padding:3px; color:#1A2733">${client}</td>
      </tr>
      <tr>
        <td style="padding:3px; bold:true; color:#2E5B8A">'产权持有人'</td>
        <td style="padding:3px; color:#1A2733">${owner}</td>
      </tr>
      <tr>
        <td style="padding:3px; bold:true; color:#2E5B8A">'评估目的'</td>
        <td style="padding:3px; color:#1A2733">${purpose}</td>
      </tr>
      <tr>
        <td style="padding:3px; bold:true; color:#2E5B8A">'评估基准日'</td>
        <td style="padding:3px; color:#1A2733">${baseDate}</td>
      </tr>
      <tr>
        <td style="padding:3px; bold:true; color:#2E5B8A">'评估机构'</td>
        <td style="padding:3px; color:#1A2733">${institution}</td>
      </tr>
    </table>
    <lineSeparator style="color:#2E5B8A; thickness:1.5f; marginTop:12px"></lineSeparator>
  </div>
  <p style="fontSize:11pt; bold:true; color:#1A2733; textAlignment:center; marginTop:76px">${reportDate}</p>

  <!-- 声明页 -->
  <areaBreak></areaBreak>
  <h2 style="fontSize:11.5pt; bold:true; color:#1F4E79; borderBottom:1px solid #C3CDD8; paddingBottom:2px; marginTop:12px; marginBottom:6px">'评估机构及评估师声明'</h2>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt; marginBottom:4px">'一、我们在本报告中对评估对象价值进行估算并发表专业意见,所出具的评估结论受本报告中假设与限制条件的限定。'</p>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt; marginBottom:4px">'二、委托人及产权持有人已向我们提供本次评估所需的全部资料,并对其真实性、完整性、合法性负责。'</p>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt; marginBottom:4px">'三、我们遵循独立、客观、公正的原则,按照资产评估准则的规定执行评估程序,与评估对象及各方当事人不存在任何利害关系。'</p>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt; marginBottom:4px">'四、本报告仅供委托人为实现本次评估目的使用,未经我们书面同意,不得向他人提供或公开披露,亦不得用于其他任何目的。'</p>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt">'五、本报告由两名资产评估师签字并加盖评估机构公章后方可使用,复印件、摘录件未加盖印章的无效。'</p>

  <!-- 一、评估对象与评估范围 -->
  <h2 style="fontSize:11.5pt; bold:true; color:#1F4E79; borderBottom:1px solid #C3CDD8; paddingBottom:2px; marginTop:12px; marginBottom:6px">'一、评估对象与评估范围'</h2>
  <table style="width:100%; fontSize:9.5pt; marginBottom:8px">
    <tr>
      <td style="width:80px; padding:5px; backgroundColor:#EDF1F6; bold:true; border:1px solid #C3CDD8">'评估对象'</td>
      <td style="padding:5px; border:1px solid #C3CDD8">${scope}</td>
      <td style="width:80px; padding:5px; backgroundColor:#EDF1F6; bold:true; border:1px solid #C3CDD8">'评估方法'</td>
      <td style="width:130px; padding:5px; border:1px solid #C3CDD8">'资产基础法为主,市场法交叉验证'</td>
    </tr>
    <tr>
      <td style="padding:5px; backgroundColor:#EDF1F6; bold:true; border:1px solid #C3CDD8">'价值类型'</td>
      <td style="padding:5px; border:1px solid #C3CDD8">${valueType}</td>
      <td style="padding:5px; backgroundColor:#EDF1F6; bold:true; border:1px solid #C3CDD8">'基准日'</td>
      <td style="padding:5px; border:1px solid #C3CDD8">${baseDate}</td>
    </tr>
  </table>

  <!-- 二、评估结论 -->
  <h2 style="fontSize:11.5pt; bold:true; color:#1F4E79; borderBottom:1px solid #C3CDD8; paddingBottom:2px; marginTop:12px; marginBottom:6px">'二、评估结论'</h2>
  <p style="fontSize:10pt; color:#333333; textIndent:19pt; marginBottom:6px">'经实施评估程序,截至评估基准日 '${baseDate}',委托评估资产的账面价值为 '${totalBook}' 元,评估价值为 '${totalEval}' 元,增值额为 '${totalIncrement}' 元。汇总情况见下表:'</p>
  <table style="width:100%; fontSize:8.5pt">
    <tr>
      <th style="padding:5px; backgroundColor:#2E5B8A; color:white; textAlign:center; border:1px solid #2E5B8A">'资产类别'</th>
      <th style="padding:5px; backgroundColor:#2E5B8A; color:white; textAlign:center; border:1px solid #2E5B8A; width:96px">'评估方法'</th>
      <th style="padding:5px; backgroundColor:#2E5B8A; color:white; textAlign:center; border:1px solid #2E5B8A; width:96px">'账面价值(元)'</th>
      <th style="padding:5px; backgroundColor:#2E5B8A; color:white; textAlign:center; border:1px solid #2E5B8A; width:96px">'评估价值(元)'</th>
      <th style="padding:5px; backgroundColor:#2E5B8A; color:white; textAlign:center; border:1px solid #2E5B8A; width:72px">'增值率'</th>
    </tr>
    <tr>
      <td style="padding:4px; border:1px solid #C3CDD8">${aCat1}</td>
      <td style="padding:4px; textAlign:center; border:1px solid #C3CDD8">${aMethod1}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aBook1}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aEval1}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8; color:#B71C1C">${aRate1}</td>
    </tr>
    <tr>
      <td style="padding:4px; border:1px solid #C3CDD8">${aCat2}</td>
      <td style="padding:4px; textAlign:center; border:1px solid #C3CDD8">${aMethod2}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aBook2}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aEval2}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8; color:#1B5E20">${aRate2}</td>
    </tr>
    <tr>
      <td style="padding:4px; border:1px solid #C3CDD8">${aCat3}</td>
      <td style="padding:4px; textAlign:center; border:1px solid #C3CDD8">${aMethod3}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aBook3}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aEval3}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8; color:#1B5E20">${aRate3}</td>
    </tr>
    <tr>
      <td style="padding:4px; border:1px solid #C3CDD8">${aCat4}</td>
      <td style="padding:4px; textAlign:center; border:1px solid #C3CDD8">${aMethod4}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aBook4}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aEval4}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8; color:#1B5E20">${aRate4}</td>
    </tr>
    <tr>
      <td style="padding:4px; border:1px solid #C3CDD8">${aCat5}</td>
      <td style="padding:4px; textAlign:center; border:1px solid #C3CDD8">${aMethod5}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aBook5}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aEval5}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">'0%'</td>
    </tr>
    <tr>
      <td style="padding:4px; border:1px solid #C3CDD8">${aCat6}</td>
      <td style="padding:4px; textAlign:center; border:1px solid #C3CDD8">${aMethod6}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aBook6}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aEval6}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8; color:#B71C1C">${aRate6}</td>
    </tr>
    <tr>
      <td style="padding:4px; border:1px solid #C3CDD8">${aCat7}</td>
      <td style="padding:4px; textAlign:center; border:1px solid #C3CDD8">${aMethod7}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aBook7}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aEval7}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8; color:#B71C1C">${aRate7}</td>
    </tr>
    <tr>
      <td style="padding:4px; border:1px solid #C3CDD8">${aCat8}</td>
      <td style="padding:4px; textAlign:center; border:1px solid #C3CDD8">${aMethod8}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aBook8}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aEval8}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8; color:#1B5E20">${aRate8}</td>
    </tr>
    <tr>
      <td style="padding:4px; border:1px solid #C3CDD8">${aCat9}</td>
      <td style="padding:4px; textAlign:center; border:1px solid #C3CDD8">${aMethod9}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aBook9}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">${aEval9}</td>
      <td style="padding:4px; textAlign:right; border:1px solid #C3CDD8">'0%'</td>
    </tr>
    <tr>
      <td style="padding:5px; textAlign:center; border:1px solid #C3CDD8; bold:true; backgroundColor:#EDF1F6">'合计'</td>
      <td style="padding:5px; border:1px solid #C3CDD8; backgroundColor:#EDF1F6">'—'</td>
      <td style="padding:5px; textAlign:right; border:1px solid #C3CDD8; bold:true; backgroundColor:#EDF1F6">${totalBook}</td>
      <td style="padding:5px; textAlign:right; border:1px solid #C3CDD8; bold:true; backgroundColor:#EDF1F6">${totalEval}</td>
      <td style="padding:5px; textAlign:right; border:1px solid #C3CDD8; bold:true; backgroundColor:#EDF1F6">${totalRate}</td>
    </tr>
  </table>

  <!-- 三、特别事项说明 -->
  <h2 style="fontSize:11.5pt; bold:true; color:#1F4E79; borderBottom:1px solid #C3CDD8; paddingBottom:2px; marginTop:12px; marginBottom:6px">'三、特别事项说明'</h2>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt; marginBottom:4px">${note1}</p>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt; marginBottom:4px">${note2}</p>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt; marginBottom:4px">${note3}</p>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt; marginBottom:4px">${note4}</p>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt; marginBottom:4px">${note5}</p>

  <!-- 四、使用限制 -->
  <h2 style="fontSize:11.5pt; bold:true; color:#1F4E79; borderBottom:1px solid #C3CDD8; paddingBottom:2px; marginTop:12px; marginBottom:6px">'四、报告使用限制'</h2>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt; marginBottom:4px">'本报告评估结论使用有效期为自评估基准日起一年,即 '${validPeriod}'。超过有效期使用本报告的,评估结论不再成立。'</p>
  <p style="fontSize:9.5pt; color:#333333; textIndent:19pt">'本摘要仅为报告正文的组成部分,完整内容以《资产评估报告》正文及附件为准。'</p>

  <!-- 五、评估机构与评估师 -->
  <h2 style="fontSize:11.5pt; bold:true; color:#1F4E79; borderBottom:1px solid #C3CDD8; paddingBottom:2px; marginTop:12px; marginBottom:6px">'五、评估机构与评估师'</h2>
  <div style="display:flex; justifyContent:space-between; marginTop:8px">
    <div style="width:49%; border:1px solid #C3CDD8; padding:8px">
      <p style="fontSize:9.5pt; bold:true; color:#1F4E79">'评估机构(盖章)'</p>
      <p style="fontSize:9pt; color:#333333">${institution}</p>
      <image src='D:/test/image/96_seal.png' style="width:96px; height:96px"></image>
      <p style="fontSize:8pt; color:#5A6B7C">${address}</p>
      <p style="fontSize:8.5pt; color:#5A6B7C">'报告日:'${reportDate}</p>
    </div>
    <div style="width:49%; border:1px solid #C3CDD8; padding:8px">
      <p style="fontSize:9.5pt; bold:true; color:#1F4E79">'注册资产评估师签章'</p>
      <image src='D:/test/image/96_sign_a.png' style="width:104px; height:52px"></image>
      <p style="fontSize:8.5pt; color:#333333">${appraiserA}' '${certNoA}</p>
      <image src='D:/test/image/96_sign_b.png' style="width:104px; height:52px"></image>
      <p style="fontSize:8.5pt; color:#333333">${appraiserB}' '${certNoB}</p>
    </div>
  </div>

</body>
</pdf>

同分组示例

本页 PDF、预览图、模板与源码均由 JQuick-Pdf 真实运行产出,可自由复制到你的项目中使用。