Java 浅析,生成OFD文件

本文介绍了如何使用Java生成OFD文件,重点关注了文件结构、页面XML内容以及字体设置。通过解析OFD文件的XML,强调了字体文件在不同环境下的一致性重要性,并详细说明了PublicRes.xml中的字体配置方法。此外,还提及了压缩工具的选择和边界定位的原理。
摘要由CSDN通过智能技术生成

摘要:这几天遇到个需要,需要提供用户下载电子证照,最简单的方法实现:word做了一份模板,利用网页工具转成OFD文件,http://www.yozodcs.com/page/example.html用7Z工具解压ofd文件,压缩使用WinZip,压缩的时候不能带根路径;得到文件目录结构如下:

首先我们来看OFD文件的目录结构,OFD文件底层为XML,解析可查看相关文档,下面简述我了解的:

Doc_1文件夹下面是主要内容

Pages下面存放OFD每个页面的XML

简单说明Pages下面页面信息XML文件的标签及属性作用

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ofd:Page xmlns:ofd="http://www.ofdspec.org/2016">
    <ofd:Area>
        <ofd:PhysicalBox>0 0 209.90291 296.68628</ofd:PhysicalBox>
        <ofd:ApplicationBox>0 0 209.90291 296.68628</ofd:ApplicationBox>
        <ofd:ContentBox>0 0 209.90291 296.68628</ofd:ContentBox>
    </ofd:Area>
    <ofd:Content>
        <ofd:Layer ID="0">
            <ofd:ImageObject ID="7" ResourceID="6" Boundary="0 -0.3528 210.2557 297.0391" CTM="210.2557 0 0 297.0391 0 0"/>
            <ofd:TextObject ID="9" Font="8" Size="7.761115550994873" Boundary="47.2723 67.0278 261.0557 15.5222">
                <ofd:CGTransform CodePosition="0" CodeCount="17" GlyphCount="17">
                    <ofd:Glyphs>11738 12862 7255 17457 12235 14764 13842 11859 12078 11931 15952 14729 11465 7256 11113 11465 13610</ofd:Glyphs>
                </ofd:CGTransform>
                <ofd:TextCode X="0.0" Y="7.7611" DeltaX="7.7611 7.4083 7.4083 7.7611 7.7611 7.7611 7.7611 7.7611 7.7611 7.7611 7.7611 7.7611 8.1139 7.0556 7.7611 7.7611">填充字符填充字符填充字符填充字符填</ofd:TextCode>
            </ofd:TextObject>
        </ofd:Layer>
    </ofd:Content>
</ofd:Page>

 

ofd:CGTransform:标签内的内容,为网站生成模板内,Res文件夹下的字体文件内的检索码,这里重点说明,我们通过网站得到的模板文件,在res文件加下面存放的字体文件只包含你OFD文件内存在的文字,所以你会发现这个字体文件特别小,你需要到你电脑的C:\Windows\Fonts下面找到你需要的字体文件,或者自己准备也行,这样可以保证OFD文件在各种环境下查看,打印字体的统一!!!然后在PublicRes.xml文件内设置你自己准备的字体,(自己准备的字体需要放到Res文件夹下面),ofd:CGTransform标签内存在内容(字符码),则去字体文件内寻找匹配的文字,没有则显示ofd:TextCode标签内的内容。这我选择使用ofd:TextCode显示内容,ofd:CGTransform标签则全部删掉。

 

字体文件设置文件 PublicRes.xml 如下

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ofd:Res BaseLoc="Res" xmlns:ofd="http://www.ofdspec.org/2016">
    <ofd:Fonts>
        <ofd:Font ID="" FontName="CBMOWR+STKaiti" FamilyName="CBMOWR+STKaiti">
            <ofd:FontFile>font_1.otf</ofd:FontFile>
        </ofd:Font>
        <ofd:Font ID=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值