最近又是更新了报告模板的样式新使用了目录对象 因为直接生成的目录样式比较丑所以这边使用的是自定义xsl

直接生成的目录样式

                 自定义样式

因为需求所以写了些特殊判断

<xsl:if test="">  只能单条件判断

多条件要使用

<xsl:when> 相当于if

<xsl:otherwise 判断语句> 相当于 else if

<xsl:otherwise> 相当于 else

test 里面可以使用函数 这边只使用到了 contains 包含  前面加 ! 不好使 只能使用上面的 判断语句实现效果

需要使用其他函数的 搜一下 xlst 函数

这里分享下使用到的代码。

 toc --xsl-style-sheet C:\Users\Administrator\Desktop\myself.xsl 

这句是 生成目录 使用 指定位置的样式

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:outline="http://wkhtmltopdf.org/outline"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
indent="yes" />
<xsl:template match="outline:outline">
<html>
<head>
<title>目录</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
body{
padding:2%
}
h1 {
color: #364063!important;
margin: 2% 0%;
padding:2% 0;
font-size: 30px;
font-family: calibri;
}
div {border-bottom: 1px dashed rgb(200,200,200); padding:2% 0%;}
span {float: right;}
li {list-style: none; color: #364063;}
ul {
font-size: 30px;
font-family: calibri;
color: #364063;
}
ul ul {font-size: 80%; }
ul {padding-left: 0em;}
ul ul {padding-left: 1em;}
a {text-decoration:none; color: #364063;} </style>
</head>
<body>
<h1 style="font-size:45px;">目录</h1>
<ul><xsl:apply-templates select="outline:item/outline:item"/></ul>
</body>
</html>
</xsl:template>
<xsl:template match="outline:item">
<li>
<xsl:if test="@title!='目录'">
<xsl:if test="@title!=''"> <div>
<xsl:choose>
<xsl:when test="contains(@title,' 异常')">
<a style="color: #FF8B07!important;">
<xsl:if test="@link">
<xsl:attribute name="href"><xsl:value-of select="@link"/></xsl:attribute>
</xsl:if>
<xsl:if test="@backLink">
<xsl:attribute name="name"><xsl:value-of select="@backLink"/></xsl:attribute>
</xsl:if>
<xsl:value-of select="@title" />
</a>
</xsl:when>
<xsl:otherwise>
<a>
<xsl:if test="@link">
<xsl:attribute name="href"><xsl:value-of select="@link"/></xsl:attribute>
</xsl:if>
<xsl:if test="@backLink">
<xsl:attribute name="name"><xsl:value-of select="@backLink"/></xsl:attribute>
</xsl:if>
<xsl:value-of select="@title" />
</a>
</xsl:otherwise>
</xsl:choose>
<span> <xsl:value-of select="@page - 4" /> </span>
</div>
</xsl:if>
</xsl:if>
<ul>
<xsl:comment>added to prevent self-closing tags in QtXmlPatterns</xsl:comment>
<xsl:apply-templates select="outline:item"/>
</ul>
</li>
</xsl:template>
</xsl:stylesheet>

这是文件内容可以拷贝直接使用 再根据需求调整

分享结束 感谢 !!

因为要生成页码 所以底下能看到 目录 1 目录   没研究出怎么让目录不生成知道的大佬告知下 谢谢。

xsl中 page - 4 是因为 wkhtmltopdf 生成的页码是正常的  但是 目录里面的指向 多了 目录的页数 所以  page - 目录页数

2023-01-12 17:39:24

wkhtmltopdf 目录对象使用 及 目录样式分享的更多相关文章

  1. 活动目录对象属性批量修改工具------ADModify

    最近下载了一个可以修改活动目录用户.组.联系人等活动目录对象属性的工具,试用了一下,发现还是蛮好用的,并且还可以修改对象的扩展属性,如:在活动目录中安装了Exchange 2003,Exchange ...

  2. du 使用详解 linux查看目录大小 linux统计目录大小并排序 查看目录下所有一级子目录文件夹大小 du -h --max-depth=1 |grep [

    常用命令 du -h --max-depth=1 |grep [TG] |sort   #查找上G和T的目录并排序 du -sh    #统计当前目录的大小,以直观方式展现 du -h --max-d ...

  3. Linux目录和文件——查询目录和文件的命令

    Linux目录和文件——查询目录和文件的命令 摘要:本文主要学习了在Linux系统中是如何查询目录和文件的. which命令 which命令是根据PATH环境变量设置的路径,去搜索执行文件. 基本语法 ...

  4. ASP.NET网站中获取当前虚拟目录的应用程序目录的方法(转)

    [原创]ASP.NET网站中获取当前虚拟目录的应用程序目录的方法 ASP.NET网站中获取当前虚拟目录的应用程序目录的方法1.问题描述:有时候,某个网页控件会被不同目录下文件使用,此时如果该控件中有一 ...

  5. Nginx虚拟目录alias和root目录

    nginx是通过alias设置虚拟目录,在nginx的配置中,alias目录和root目录是有区别的:1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alia ...

  6. php目录下的ext目录中,执行的命令

    php的目录下的ext目录,如果你只需要一个基本的扩展框架的话,执行下面的命令: ./ext_skel --extname=module_name module_name是你自己可以选择的扩展模块的名 ...

  7. 父目录的权限对子目录有没有影响?[Linux]

    问题源头: 登录到服务器(实验室分的一个服务器账号)上,想在当前目录下创建一个文件,但提示“文件系统只读”,无法创建文件.通过ls -l 查看当前用户在当前目录的权限,发现具有rwx权限.所以在想会不 ...

  8. nginx去掉单个目录和多个目录PHP执行权限方法

    我们经常希望某些目录不能执行php代码,如果是nginx的话,我们怎么设置Nginx对于某些目录禁止执行PHP权限呢.以前不知道,其实nginx去掉单个目录和多个目录PHP执行权限方法也很简单. 首先 ...

  9. iOS开发——数据持久化Swift篇&文件目录路径获取(Home目录,文档目录,缓存目录等)

    文件目录路径获取(Home目录,文档目录,缓存目录等)   iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒.下面介绍常用的程序文件夹目录:   1,Home ...

  10. 创建一个目录info,并在目录中创建一个文件test.txt,把该文件的信息读取出来,并显示出来

    /*4.创建一个目录info,并在目录中创建一个文件test.txt,把该文件的信息读取出来,并显示出来*/ #import <Foundation/Foundation.h>#defin ...

随机推荐

  1. Vue学习之--------Vue中过滤器(filters)的使用(代码实现)(2022/7/18)

    1.过滤器 1.1 概念 过滤器: 定义:对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理). 语法: 1.注册过滤器:Vue.filter(name,callback) 或 new V ...

  2. iframe的简单使用

    看人家写的真的是摸不着头脑.自己写.还是清楚 局部数据的刷新:可以使用ajax.这里只是简单的演示 只作:例子使用.简单演示页面跳转 a标签中target属性和iframe中的name对应.相当于将该 ...

  3. MyBatisPlus分页插件在SpringBoot中的使用

    文章目录 1.目录结构 2.新增配置 3.编写测试类 4.测试结果 5.数据库中的表 文件的创建: https://blog.csdn.net/weixin_43304253/article/deta ...

  4. 在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)

    1.maven教程官网 https://m.runoob.com/maven/ 2.理解Maven的构建生命周期(clean.Package) 3.在项目中使用maven进行打包 4.运行打包好的ja ...

  5. 微信抢红包小技巧(python模拟100万次)

    之前,在网上看到一篇文章,说多人抢红包时,微信红包金额的分配规则是0.01元到当前剩余金额平均数的2倍(最后一个人金额为当前剩下的所有金额),所以写了一个python程序,模拟量一百万次,分析了一下抢 ...

  6. Ansible 批处理实战

    软件简介 Ansible 是一款自动化运维工具,基于 Python 开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功 ...

  7. 0基础90分钟会用PS——GenJi笔记

    数码图像的相关基础概念 1.位图和矢量图 位图 也叫点阵图像,位图使用也称像素的一格一格的小点来描述图像,图放大后我们可以看到像素点 矢量图 根据几何特性来绘制图形,用线段和曲线描述图像,可以是一个一 ...

  8. docker容器化业务

    1.环境准备: 设备 IP地址 作用 系统版本 mysql-master 192.168.100.213 Nginx-Web服务器 Ubuntu2004 mysql-slave 192.168.100 ...

  9. day11-Servlet01

    Servlet01 官方api文档:https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html Servlet和Tomcat的关系:一 ...

  10. Oracle收集统计信息的一些思考

    一.问题 Oracle在收集统计信息时默认的采样比例是DBMS_STATS.AUTO_SAMPLE_SIZE,那么AUTO_SAMPLE_SIZE的值具体是多少? 假设采样比例为10%,那么在计算单个 ...