OFD板式文档-格式简单分析

OFD是中国自有的版本文件格式,具有与pdf同等功能,可以理解为中国自己的PDF文件格式,多应用于机关单位。
OFD 是开放版式文档(Open Fixed-layout Document )的英文缩写,是我国国家版式文档格式标准——《GB/T 33190-2016电子文件存储与交换格式-版式文档》。。
ofd简单描述一下就是一个压缩包,这个压缩包包括很多xml文件,xml文件在java技术栈内被大量使用,优点有很多,对各个系统很友好,宜读,各种操作也有很好的api进行支持,关于相关标准协议请查看国家颁布的标准。
OFD.xml 是OFD板式文档的主要入口文件,名字固定,主要描述了创建人,日期,版本,文档内容入口,签名,签章,自定义信息等
<?xml version="1.0" encoding="UTF-8"?>
<ofd:OFD xmlns:ofd="http://www.ofdspec.org">
    <ofd:DocBody>
        <ofd:DocInfo>
            <ofd:DocID>38321A383E27492BB8472518142D204D</ofd:DocID>
            <ofd:Creator>api.myofd.cn</ofd:Creator>
            <ofd:CreatorVersion>1.0.1.201117</ofd:CreatorVersion>
            <ofd:CreationDate>20201226115640</ofd:CreationDate>
            <ofd:ModDate>2021-01-21</ofd:ModDate>
        </ofd:DocInfo>
        <ofd:DocRoot>Doc_0/Document.xml</ofd:DocRoot>
        <ofd:Signatures>Doc_0/Signs/Signatures.xml</ofd:Signatures
    </ofd:DocBody>
</ofd:OFD>
DocRoot指向内容入口文件,PageArea是页面的默认大小,PublicRes指向内容页面中所用到的资源,Pages指向的页面内容,Annotations指向的是加注内容
<?xml version="1.0" encoding="UTF-8"?>
<ofd:Document xmlns:ofd="http://www.ofdspec.org">
    <ofd:CommonData>
        <ofd:PageArea>
            <ofd:PhysicalBox>0 0 210 297</ofd:PhysicalBox>
        </ofd:PageArea>
        <ofd:PublicRes>PublicRes.xml</ofd:PublicRes>
        <ofd:MaxUnitID>26</ofd:MaxUnitID>
    </ofd:CommonData>
    <ofd:Pages>
        <ofd:Page BaseLoc="Pages/Page_0/Content.xml" ID="8"/>
    </ofd:Pages>
    <ofd:Annotations>Annots/Annotations.xml</ofd:Annotations>
</ofd:Document>
Page内容,支持文字,图像,剪切,颜色渐变等,主要是对页面内容的绘制描述
<?xml version="1.0" encoding="UTF-8"?>
<ofd:Page xmlns:ofd="http://www.ofdspec.org/2016">
    <ofd:Area>
    <ofd:PhysicalBox>0.00 0.00 220.00 140.00</ofd:PhysicalBox>
    </ofd:Area>
    <ofd:Content>
    <ofd:Layer>
    </ofd:Layer>
    </ofd:Content>
</ofd:Page>
PublicRes资源文件的描述,所有页面引用的字体,图像,颜色,多媒体文件都在资源文件可以索引到
<?xml version="1.0" encoding="UTF-8"?>
<ofd:Res xmlns:ofd="http://www.ofdspec.org" BaseLoc="Res">
    <ofd:Fonts>
        <ofd:Font ID="3" FontName="STSong-Light" FamilyName="Source Han Serif SC"/>
        <ofd:Font ID="4" FontName="CourierNewPSMT"/>
        <ofd:Font ID="1" FontName="AZFFXJ+KaiTi_GB2312" FamilyName="AZFFXJ+KaiTi_GB2312" Serif="true">
        <ofd:FontFile>font_1.ttf</ofd:FontFile>
        </ofd:Font>
        <ofd:Font ID="23" FontName="楷体" FamilyName="楷体"/><ofd:Font ID="25" FontName="浠垮畫_GB2312" FamilyName="浠垮畫_GB2312"/>
    </ofd:Fonts>
    <ofd:MultiMedias>
        <ofd:MultiMedia ID="2" Type="Image" Format="jpeg">
        <ofd:MediaFile>2.jpeg</ofd:MediaFile>
        </ofd:MultiMedia>
        <ofd:MultiMedia ID="5" Type="Image" Format="png">
        <ofd:MediaFile>5.png</ofd:MediaFile>
        </ofd:MultiMedia>
        <ofd:MultiMedia ID="6" Type="Image" Format="png">
        <ofd:MediaFile>6.png</ofd:MediaFile>
        </ofd:MultiMedia>
        <ofd:MultiMedia ID="7" Type="Image" Format="jpeg">
        <ofd:MediaFile>7.jpeg</ofd:MediaFile>
        </ofd:MultiMedia>
    </ofd:MultiMedias>
    <ofd:ColorSpaces>
        <ofd:ColorSpace ID="10" Type="RGB"/>
        <ofd:ColorSpace ID="14" Type="RGB"/>
    </ofd:ColorSpaces>
</ofd:Res>
签名文件,指向多个签名的具体描述信息,支持签名和签章
<?xml version="1.0" encoding="UTF-8"?>
<ofd:Signatures xmlns:ofd="http://www.ofdspec.org/2016">
    <ofd:MaxSignId>2</ofd:MaxSignId>
    <ofd:Signature ID="1" Type="Sign" BaseLoc="Sign_0/Signature.xml"/>
    <ofd:Signature ID="2" Type="Seal" BaseLoc="Sign_1/Signature.xml"/></ofd:Signatures>
签名签章相关流程,印章封装参考代码

OFD板式文档-电子签章-验章规范流程
安全电子签章密码技术规范 GM/T 0031 | GB∕T 38540 格式OPENSSL封装解析

签名文件,描述具体,签章人的信息,签名时间,具体保护了文档的哪些内容,印章的显示位置,签名值,算法等
<?xml version="1.0" encoding="UTF-8"?>
<ofd:Signature xmlns:ofd="http://www.ofdspec.org/2016">
    <ofd:SignedInfo>
        <ofd:Provider ProviderName="TTRUST" Company="Suwell" Version="4"/>
        <ofd:SignatureMethod>1.2.156.10197.1.501</ofd:SignatureMethod>
        <ofd:SignatureDateTime>20210107103651</ofd:SignatureDateTime>
        <ofd:Parameters>
            <ofd:Parameter Name="ShowDateTime"/>
        </ofd:Parameters>
        <ofd:References CheckMethod="1.2.156.10197.1.401">
            <ofd:Reference FileRef="/Doc_0/Res/6.png">
                <ofd:CheckValue>9dWdf+vGnVx33mmBUSOzFGTETOnZnOvHAIjkJeBwi/0=</ofd:CheckValue>
            </ofd:Reference>
            <ofd:Reference FileRef="/Doc_0/Res/2.jpeg">
                <ofd:CheckValue>JGz8YC93YVChotJc5jstmxpnZZ0ucFAem/tq8Edw7kQ=</ofd:CheckValue>
            </ofd:Reference>
            <ofd:Reference FileRef="/Doc_0/Res/5.png">
                <ofd:CheckValue>ToJbVwvxM5KKTZZwhNYS5j7oTYGgyB638PfApIJvthU=</ofd:CheckValue>
            </ofd:Reference>
            <ofd:Reference FileRef="/Doc_0/Pages/Page_0/Content.xml">
                <ofd:CheckValue>l1IGe+MVAs6ji8Yg9y/bmdsf8hWpifxpdQrfAydTaj4=</ofd:CheckValue>
            </ofd:Reference>
            <ofd:Reference FileRef="/Doc_0/Document.xml">
                <ofd:CheckValue>5EcAjSsGVEV04CU5YR4gOv+9ZrWuvQ+cin79pVEeWFA=</ofd:CheckValue>
            </ofd:Reference>
            <ofd:Reference FileRef="/Doc_0/Res/7.jpeg">
                <ofd:CheckValue>7aY/o0ojamv0FSYtcWA7H65yj9CJPE4Wmg6lXCTZfJ0=</ofd:CheckValue>
            </ofd:Reference>
            <ofd:Reference FileRef="/Doc_0/PublicRes.xml">
                <ofd:CheckValue>+UeO2YGHPjbny7PBgTAzkKLQlx5oSFhicbV/qfDTcOs=</ofd:CheckValue>
            </ofd:Reference>
            <ofd:Reference FileRef="/Doc_0/Res/font_1.ttf">
                <ofd:CheckValue>Yybx7T3ucN55FPs0GBJDnp5zRnkJMqCAcC9YR/LW0vY=</ofd:CheckValue>
            </ofd:Reference>
        </ofd:References>
        <ofd:StampAnnot PageRef="8" ID="1" Boundary="97.152 64.1437 42 42"/>
    </ofd:SignedInfo>
    <ofd:SignedValue>SignedValue.dat</ofd:SignedValue>
</ofd:Signature>

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据