• xps之path


    xps之<Path>元素

    • xps文档的<Path>代表xps文档里边的线条,包括直线,曲线,弧线等等,那么如何从xps中提取出横线和竖线,从而发现表格呢?这就要仔细解读Data属性.

    ==
    这里研究缩略语法格式的Data属性组成:

    Data属性解读

    • Figure definitions are specified with a Move command, a set of drawing commands to create segments, and an optional Close command to create a closing segment. Drawing commands include:
    • 即图定义是用一个移动命令(M)指定的,一组用来创建分段的绘图命令,以及一个可选的关闭命令来创建一个闭合段。绘制命令包括:
    1. Line
    2. Horizontal Line
    3. Vertical Line
    4. Cubic Bézier Curve
    5. Quadratic Bézier Curve
    6. Smooth Cubic Bézier Curve
    7. Elliptical Arc
    • 每个命令由一个字母代表,后边跟0或1个空字符,然后是跟命令参数,参数之间由空格分开,点由逗号分隔的一对数字坐标组成
    • 大小写字母代表不同的含义:大写字母代表绝对值而小写字母代表相对值,相对当前端点(也就是上个命令的终点坐标)的偏移量,后边的值是相对偏移量
    • 若第一个命令用相对值了,则当前端点定义为0,0
    • 若Close命令用了相对值,则当前端点为前边图的第一个点(即起点和终点重合)
    • 如果相同类型的画图命令连续使用多次,重复的命令可能会被省略:

    例如:
    L 100,200 300,400等价于L 100,200 L 300,400

    命令解读及使用

    1. F fFillRule 代表填充,后边的fFillRule为0或1,缺省为0
    2. M x,y or m x,y 新建当前端点,F命令后可以画多个如,但第一个图必须以M开始,随后的图可以省略M,即F命令后的第一个命令一定为M
    3. **L x,y or l x,y 直线(终点坐标)
    4. H x or h x 水平直线(终点x坐标)
    5. V y or v y 竖直直线(终点y坐标)**
    6. C x 1 ,y 1 x 2 ,y 2 x 3 ,y 3 or c x 1 ,y 1 x 2 ,y 2 x 3 ,y 3 曲线
    7. Q x 1 ,y 1 x 2 ,y 2 or q x 1 ,y 1 x 2 ,y 2 二次曲线
    8. S x 1 ,y 1 x 2 ,y 2 or s x 1 ,y 1 x 2 ,y 2 光滑曲线
    9. A x r ,y r r x fArc fSweep x,y or a x r ,y r r x fArc fSweep x,y 弧线
    10. Z or z 闭合线

    提取直线

    知道了这些,我们就可以提取直线了,其中主要用到的就是F M L H V Z这些字符

    提取流程:

    1. 先遍历节点,找到所有的<Path>节点列表
    2. 对每个节点的Data属性操作:
    • 对没有空格的cmd加空格后成这样子'F1 M 32.96,75.04 L 762.08,75.04'
    • 排除曲线
    • 剩下的Data列表处理为如下格式:
    tmpdataList= ['F1', 'M', '32.96,75.04', 'L', '762.08,75.04']
    
    
    • 然后剔除M前边的元素,得到
    dataList=['M', '32.96,75.04', 'L', '762.08,75.04']
    
    

    然后对其提取各个端点

    • 分别判断横线和竖线提取出来
  • 相关阅读:
    只要有梦想
    过去这一年
    Importing BizTalk Applications to Production Environment
    SQL Server 2005 – Database Master Key
    Check Page Rank of any web site pages instantly
    An Introduction to SQL Server Service Broker [WORD DOCUMENT]
    Svcutil.exe – Generate the proxy class for the WCF client application
    SQL Server 2005: how to add a linked server
    BizTalk Error: The published message could not be routed
    Enable routing for failed messages in BizTalk 2006
  • 原文地址:https://www.cnblogs.com/monkey-moon/p/9260800.html
Copyright © 2020-2023  润新知