亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OFD格式實現(xiàn)電子文檔全流程流轉(zhuǎn)的研究

        2022-06-03 12:48:35李杰武宏剛
        電腦知識與技術(shù) 2022年8期

        李杰 武宏剛

        摘要:基于我國自主可控的版式文檔格式標準(OFD),對OFD電子文檔的全流程流轉(zhuǎn)進行研究。從客戶化開發(fā)的角度研究做成、流轉(zhuǎn)、審核、查看、打印、保密的可實現(xiàn)方式。

        關(guān)鍵詞:版式文檔;OFD;客戶化開發(fā);數(shù)字簽名;水印;分發(fā)

        中圖分類號:TP311? ? ? 文獻標識碼:A

        文章編號:1009-3044(2022)08-0090-03

        1 引言

        版式文檔與流式文檔是兩種不同的文檔格式。流式文檔以微軟的Word文檔為例,其內(nèi)容以流式的方式進行版面編排與內(nèi)容展示,在中間插入新的內(nèi)容會導致其后面的內(nèi)容 “流”到新的位置。流式文檔在不同的軟硬件環(huán)境下展示出來的效果可能會發(fā)生變化,即“跑版”的現(xiàn)象;版式文檔版面固定、所見即所得,在不同的軟硬件下均呈現(xiàn)相同的效果,不會發(fā)生流式文檔的“跑版”現(xiàn)象,最終展現(xiàn)效果與紙質(zhì)文件保持一致,是計算機時代的“數(shù)字紙張” [1]。

        PDF(Portable Document Format) 作為ISO 32000標準,在全世界被廣泛采用;在國內(nèi),新型的版式文檔格式OFD(Open Fixed— layout Document)作為國家標準試點后快速推廣。 2016年10月,OFD作為國家標準(GB/T 33190-2016)正式發(fā)布,各地紛紛采用OFD格式對電子公文進行歸檔。

        在技術(shù)層面上OFD有更多優(yōu)勢:1)OFD格式采用GB/T 18793-2002中的XML技術(shù)描述文檔數(shù)據(jù)[2],格式開放、體系簡單、數(shù)據(jù)結(jié)構(gòu)化,最終文件體積更加精簡;2)OFD格式擁有完全自主知識產(chǎn)權(quán),不受控于外部廠商,有自主話語權(quán)。在標準特性上可進行擴展,滿足不同領(lǐng)域的應用需求;3)OFD標準支持國產(chǎn)密碼算法,在文檔安全性上有更多的可控保證。

        基于OFD的格式特點,越來越多的公文、檔案、證照、執(zhí)照、單證憑據(jù)開始使用OFD格式作為流轉(zhuǎn)或長期保存的格式[3]。同樣,針對企業(yè)不同的生產(chǎn)模式,企業(yè)內(nèi)需廣泛流傳、長期保存的各種版式電子文檔,也可以采用OFD格式做成。

        2 OFD與PDF的比較

        OFD與PDF兩種版式文檔之間有很多相似之處。

        2.1 表現(xiàn)

        二者均為版式文檔格式,在應用層面上兩者有相同的定位[4]。

        2.2 標準

        OFD與PDF的格式標準均完全開放, OFD為國家標準,擁有完全自主知識產(chǎn)權(quán)。

        2.3 生成方式

        OFD和PDF文件生成方式相同,均可通過以下方式生成:1)通過軟件生成空白的OFD或PDF文檔,再通過軟件提供的功能向文檔中添加內(nèi)容;2)通過成熟產(chǎn)品的虛擬打印機將受支持格式的電子數(shù)據(jù),打印轉(zhuǎn)換成所需文檔;3)經(jīng)由掃描設備將紙質(zhì)文件轉(zhuǎn)換成所需文檔。

        2.4 使用體驗

        OFD與PDF均為版式文檔,在文檔的全生命周期中不同軟件提供的解決方案體驗大致相同。無論是文檔生成階段、流轉(zhuǎn)閱讀階段、保存歸檔階段,針對兩種格式的解決方案均提供閱讀器、注釋工具、安全工具等功能模塊,用戶針對不同格式的切換幾乎沒有學習成本。

        2.5 適用場景

        大多數(shù)使用PDF文檔的場景都可用OFD文檔替代。

        3 全流程各階段的實現(xiàn)方式

        企業(yè)內(nèi)電子文檔全流程包括圖紙文檔的做成、審核、查看、打印,保存,以及各階段的安全保密需求。

        3.1 文檔的生成

        生成OFD文件的途徑主要包括使用成熟的OFD生成器或按照標準接口自行開發(fā)。

        例如福昕出品的OFD軟件,可批量將多種格式的電子文檔轉(zhuǎn)換成ODF文件。在快速生成OFD文件的同時又保持版面的原樣。

        如果采用開發(fā)的方式,可以使用開源的“OFD Reader & Writer” [5]庫創(chuàng)建文檔實體,并填入內(nèi)容,此類庫對多項方法進行了封裝,使用方便,創(chuàng)建文檔示例如下:

        public class HelloWorld {

        public static void main(String[] args) throws IOException {

        Path path = Paths.get("HelloWorld.ofd");

        try (OFDDoc ofdDoc = new OFDDoc(path)) {

        Paragraph p = new Paragraph("Hello World!");

        ofdDoc.add(p);

        }

        System.out.println(path.toAbsolutePath());

        }

        }

        3.2 文檔的審核

        OFD文檔可以根據(jù)企業(yè)內(nèi)部的實際流程及使用需求,定制化開發(fā)軟件。通過移動、拷貝等方式實現(xiàn)內(nèi)部的審核流轉(zhuǎn)流程。在流轉(zhuǎn)過程中,可通過OFD格式的原筆跡簽批、電子印章、數(shù)字簽名等技術(shù)實現(xiàn)防偽。

        以數(shù)科OFD閱讀器產(chǎn)品為例,可通過產(chǎn)品提供的簽批功能進行手寫簽批。

        另外,OFD文檔可以實現(xiàn)多種電子印章功能,并可對電子印章進行驗證,在文檔的審核過程中有效的防止篡改、抵賴、保護審批流程的安全性。

        如果采用客戶化開發(fā)的方式,可以使用開源的“OFD Reader & Writer”庫實現(xiàn)客戶化的簽名功能,例如采用以下方式創(chuàng)建:

        public static void main() throws Exception {

        Path src = Paths.get("src/test/resources", "helloworld.ofd");

        Path out = Paths.get("target/DigitalSign.ofd");

        // 1. 構(gòu)造簽名引擎

        try (OFDReader reader = new OFDReader(src);

        OFDSigner signer = new OFDSigner(reader, out)) {

        // 2. 實現(xiàn)電子簽章容器

        ExtendSignatureContainer signContainer = new YouImpContainer();

        // 3. 設置簽名模式

        //? signer.setSignMode(SignMode.WholeProtected);

        signer.setSignMode(SignMode.ContinueSign);

        // 4. 設置簽名使用的擴展簽名容器

        signer.setSignContainer(signContainer);

        // 5. 執(zhí)行簽名

        signer.exeSign();

        // 6. 關(guān)閉簽名引擎,生成文檔。

        }

        System.out.println(out.toAbsolutePath().toAbsolutePath());

        }

        生成的簽名同樣可以驗證,防止篡改:

        try (OFDReader reader = new OFDReader(src);

        OFDValidator validator = new OFDValidator(reader)) {

        // 1. 實現(xiàn)驗證容器

        SignedDataValidateContainer dsc = new YouImpContainer(cert);

        // 2. 實現(xiàn)驗證容器

        validator.setValidator(dsc);

        // 3. 執(zhí)行驗簽驗章

        validator.exeValidate();

        // 4. 如果沒有異常拋出說明驗證成功。

        }

        3.3 文檔的查看

        OFD有多款成熟的閱讀器,閱讀體驗與PDF沒有太大的差別,學習成本較低。閱讀器可對OFD文檔進行注釋、標注或者文檔頁面進行操作。

        閱讀器也提供了多種主流瀏覽器的插件,除了在B/S結(jié)構(gòu)中展示,也可以集成到C/S架構(gòu)中。無論程序采用何種架構(gòu)進行客戶化開發(fā),都能實現(xiàn)閱讀查看功能。

        3.4 文檔的打印

        對于OFD文檔,要實現(xiàn)打印功能,可以通過閱讀器提供的打印功能將文檔打印成紙質(zhì)介質(zhì)或者其他格式的電子文檔,客戶化開發(fā)中也可以通過調(diào)用系統(tǒng)API執(zhí)行打印功能。

        3.5 文檔的歸檔與分發(fā)

        OFD文檔的保存方式與PDF文檔相同,在文檔審閱完成后即可歸檔并提供查閱功能。對于需要對外分發(fā)的文檔,可以使用成熟產(chǎn)品提供分發(fā)保護,也可以通過SDK在客戶化的程序中實現(xiàn)密碼加密、添加水印等自動化操作。OFD 支持國產(chǎn)密碼算法及國際密碼算法,可有效的防止信息被竊取。

        可以使用開源的“OFD Reader & Writer”庫在客戶化程序中添加水印,實現(xiàn)方式如下:

        public void addWatermark() throws IOException {

        Path srcP = Paths.get("src/test/resources", "AddAttachment.ofd");

        Path outP = Paths.get("target/AddWatermarkAnnot.ofd");

        try (OFDReader reader = new OFDReader(srcP);

        OFDDoc ofdDoc = new OFDDoc(reader, outP)) {

        Double width = ofdDoc.getPageLayout().getWidth();

        Double height = ofdDoc.getPageLayout().getHeight();

        Annotation annotation = new Annotation(new ST_Box(0d, 0d, width, height), AnnotType.Watermark, ctx -> {

        FontSetting setting = new FontSetting(8, FontName.SimSun.font());

        ctx.setFillColor(170, 160, 165)

        .setFont(setting)

        .setGlobalAlpha(0.4);

        for (int i = 0; i <= 8; i++) {

        for (int j = 0; j <= 8; j++) {

        ctx.save();

        ctx.translate(22.4 * i, j * 50);

        ctx.rotate(45);

        ctx.fillText("保密", 10, 10);

        ctx.restore();

        }

        }

        });

        ofdDoc.addAnnotation(1, annotation);

        }

        System.out.println(outP.toAbsolutePath().toString());

        }

        }

        除水印外,還可采用密碼加密、打印控制、遮蔽信息等方式對文檔進行保護。加密技術(shù)包括密碼加密和證書加密。密碼加密可根據(jù)需求采用SM系列國密算法,或AES、RC4等國際算法;證書加密通過數(shù)字證書對文檔進行加密,同樣可以根據(jù)需求采用SM系列國密算法,或AES、RC4、 SHA1、SHA256、RSA等國際算法。除此之外主流的保護手段OFD格式文檔基本都支持[6]。

        4 基于OFD的開發(fā)

        OFD格式采用XML標記語言描述,并采用開放標準。通過參考OFD的標準,可以實現(xiàn)以OFD文檔為載體的客戶化定制,在開發(fā)語言選擇上也比較豐富,主流的C++,C#,JAVA,PYTHON等均可進行開發(fā)。同時也有較多的開源庫可供引用,在定制開發(fā)上有很大的靈活性及開放性。

        5 結(jié)束語

        通過對OFD格式及現(xiàn)有成熟解決方案的研究,OFD文檔在自主知識產(chǎn)權(quán)、技術(shù)門檻、數(shù)據(jù)化結(jié)構(gòu)、網(wǎng)絡傳輸、拓展性、定制化上有一定優(yōu)勢,并且與PDF格式具有很多共性,學習轉(zhuǎn)移成本低。在“自主可控”“國產(chǎn)化替代”的發(fā)展趨勢下,通過采用OFD格式替代PDF格式,完全可以無縫平移地實現(xiàn)企業(yè)內(nèi)部電子文檔客戶化全流程流轉(zhuǎn)。

        參考文獻:

        [1] 百度百科.版式文檔[EB/OL].[2021-10-15].https://baike.baidu.com/item/%E7%89%88%E5%BC%8F%E6%96%87%E6%A1%A3/6845753?fr=aladdin.

        [2] GB/T 33190-2016,電子文件存儲與交換格式 版式文檔[S].

        [3] 王姝,徐華,王少康.OFD版式文檔應用研究[J].檔案學研究,2019(1):95-100.

        [4] 馮輝,李海波,叢培勇,等.OFD與PDF對比分析[J].信息技術(shù)與標準化,2016(10):45-48.

        [5] Github.ofdwr[EB/OL].[2021-10-15].https://github.com/Trisia/ofdrw.

        [6] 馮輝,陳留勇,樊孝龍,等.OFD的安全應用分析[J].信息技術(shù)與標準化,2017(11):49-53.

        【通聯(lián)編輯:梁書】

        少妇人妻偷人精品视频| 日本一区二区免费在线看| 欧美日本精品一区二区三区| 天天综合网天天综合色| 久久精品国产亚洲AⅤ无码| 久久国产精品一区二区| 国产免费观看久久黄av麻豆| 国产成人精品a视频| 一本色道久久综合狠狠躁| 亚洲人成无码网站十八禁| 国产三区三区三区看三区| 亚洲人成精品久久久久| 免费又黄又爽又猛的毛片| 97av在线播放| 网站在线观看视频一区二区| 少妇粉嫩小泬喷水视频| 国产亚洲精品久久久久久久久动漫| 国产成人精品无码一区二区老年人| 一本久道久久丁香狠狠躁| 日韩精品久久无码中文字幕| 国产精品熟妇视频国产偷人| 熟女系列丰满熟妇av| 日韩精品视频高清在线| 青春草在线视频免费观看| 91免费播放日韩一区二天天综合福利电影| 一区二区三区精彩视频在线观看| 不卡的av网站在线观看| 免费无码黄动漫在线观看| 成人在线免费视频亚洲| 青青草视频在线播放观看| 免费观看a级片| 99久久久无码国产aaa精品| 看全色黄大色大片免费久久久| 亚洲国产精品高清在线| av人摸人人人澡人人超碰妓女| 日韩欧美亚洲中字幕在线播放| 手机在线国产福利av| 无套中出丰满人妻无码| 大地资源网最新在线播放| 日韩精品极品视频在线免费| 日韩亚洲中文有码视频|