0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PDF解析程序架構(gòu)設(shè)計(jì)詳細(xì)

jqYd_gh_7579151 ? 來(lái)源:未知 ? 作者:李建兵 ? 2018-03-17 09:13 ? 次閱讀

在做大數(shù)據(jù)的時(shí)候,首先第一步就是要解決數(shù)據(jù)的來(lái)源,我們采用的設(shè)計(jì)方案就是使用Python來(lái)從一些政府網(wǎng)站爬數(shù)據(jù),將披露的銀行、證券、股票、信托等行業(yè)中三大報(bào)表(利潤(rùn)表、資產(chǎn)負(fù)債表、現(xiàn)金流量表)數(shù)據(jù)解析并錄入數(shù)據(jù)庫(kù),我們采用java編程來(lái)實(shí)現(xiàn)三大報(bào)表數(shù)據(jù)解析。

程序設(shè)計(jì)采用java面向?qū)ο笤O(shè)計(jì)的概念,利用java繼承、封裝、多態(tài)的特性來(lái)設(shè)計(jì),可以減去程序更改的麻煩,以前寫的類可以繼續(xù)使用。

程序設(shè)計(jì)架構(gòu)采用如下所示:

ParentTable包含三個(gè)函數(shù)。

MatchStartLine():用于查找三大報(bào)表的起始行。

MatchEndline():用于查找三大報(bào)表的結(jié)束行。

Anla():用于解析查找到的報(bào)表行。

在解析不用的PDF文件時(shí),直接進(jìn)行override這三個(gè)函數(shù),就可以實(shí)現(xiàn)解決不同的表格匹配問(wèn)題。

新建一個(gè)PDFFile類,在這個(gè)類中實(shí)現(xiàn)調(diào)用ParentTable的anla函數(shù),來(lái)解析所有的PDF文件中的所有表格。

public boolean anla(){

for(ParentTable table : tables){

int nIndexStart = table.matchStartLine(lines);

int nIndexEnd = table.matchEndLine(lines);

/*取出表內(nèi)容*/

String[] arrTableLines =newString[nIndexEnd - nIndexStart +1];

System.arraycopy(lines, nIndexStart, arrTableLines,0, nTableLineCount);

if(arrTableLines.length <=0)

continue;

table.setTableLines(arrTableLines);

/*分析表內(nèi)容*/

table.anla();

}

}

在主程序中,調(diào)用PDFFile類中的anla()函數(shù),將依次解析tables參數(shù)中所有表格類型,將解決匹配所有PDF文件中表格。

下一節(jié)將解決如何使用多線程來(lái)解析PDF文件。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2967

    瀏覽量

    104758
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3787

    瀏覽量

    81049
  • PDF
    PDF
    +關(guān)注

    關(guān)注

    1

    文章

    168

    瀏覽量

    33701

原文標(biāo)題:PDF解析程序架構(gòu)設(shè)計(jì)

文章出處:【微信號(hào):gh_757915171cb5,微信公眾號(hào):FPGA自學(xué)筆記】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    kintex產(chǎn)品架構(gòu)設(shè)計(jì)文檔(成為架構(gòu)師也是電子人不錯(cuò)的選...

    kintex產(chǎn)品架構(gòu)設(shè)計(jì)文檔(成為架構(gòu)師也是電子人不錯(cuò)的選擇) ROCE(儒仕),用心為每一位電子人!Xilinx7系列普及講座,架構(gòu)師設(shè)計(jì)方案模板,交流學(xué)習(xí) 內(nèi)容請(qǐng)下載附件pdf,更
    發(fā)表于 04-30 16:41

    【W(wǎng)EBENCH 大賽作品】WEBENCH Processor Power Architect 電源架構(gòu)設(shè)計(jì)

    利用WEBENCH Processor Power Architect 設(shè)計(jì)工具進(jìn)行設(shè)計(jì),基于TPS54335A原件的電源架構(gòu)設(shè)計(jì)。輸入電壓為直流10V-20V,輸出電壓為3.3V,2A作品地址
    發(fā)表于 07-16 14:24

    軟件架構(gòu)設(shè)計(jì)教程

    軟件架構(gòu)設(shè)計(jì)教程
    發(fā)表于 09-26 15:27

    汽車電子電氣架構(gòu)設(shè)計(jì)及優(yōu)化措施

    我國(guó)公路建設(shè)事業(yè)的蓬勃發(fā)展導(dǎo)致在汽車行業(yè)中的電子電氣架構(gòu)設(shè)計(jì)越來(lái)越體現(xiàn)消費(fèi)者對(duì)汽車人性化、舒適化與美觀性的現(xiàn)實(shí)需求。設(shè)計(jì)汽車的電子電氣架構(gòu)是一項(xiàng)工程量較大的工作,它涉及了硬件、軟件、網(wǎng)絡(luò)、線束等方面
    發(fā)表于 10-18 22:10

    STM32軟件架構(gòu)設(shè)計(jì)的意義

    STM32軟件架構(gòu)1、架構(gòu)設(shè)計(jì)的意義(1)應(yīng)用代碼邏輯清晰,且避免代碼冗余;(2)代碼通用性,方便軟件高速、有效的移植;(3)各功能獨(dú)立,低耦合高內(nèi)聚;2、總體架構(gòu)圖3、結(jié)構(gòu)層說(shuō)明4、遵循規(guī)則5、優(yōu)劣評(píng)估6、STM32實(shí)例說(shuō)明
    發(fā)表于 08-04 07:23

    ARM嵌入式應(yīng)用程序架構(gòu)設(shè)計(jì)工具-DLTools

    ARM嵌入式應(yīng)用程序架構(gòu)設(shè)計(jì)實(shí)例精講--ARM嵌入式應(yīng)用程序架構(gòu)設(shè)計(jì)工具-DLTools
    發(fā)表于 07-08 11:08 ?4次下載

    ARM嵌入式應(yīng)用程序架構(gòu)設(shè)計(jì)工具-字庫(kù)

    ARM嵌入式應(yīng)用程序架構(gòu)設(shè)計(jì)實(shí)例精講--ARM嵌入式應(yīng)用程序架構(gòu)設(shè)計(jì)工具-字庫(kù)
    發(fā)表于 07-08 11:08 ?10次下載

    ARM嵌入式應(yīng)用程序架構(gòu)設(shè)計(jì)工具

    電子專業(yè)單片機(jī)相關(guān)知識(shí)學(xué)習(xí)教材資料——ARM嵌入式應(yīng)用程序架構(gòu)設(shè)計(jì)工具
    發(fā)表于 09-13 17:23 ?0次下載

    如何使用Autosar的進(jìn)行整車電子電氣架構(gòu)設(shè)計(jì)詳細(xì)方法概述

    提出一種基于Autosar理念的整車電子電氣架構(gòu)設(shè)計(jì)方法。通過(guò)整車需求定義、原子邏輯單元搭建實(shí)現(xiàn)整車功能邏輯的實(shí)體化,然后利用模型設(shè)計(jì)分析方法,將功能需求分配到各個(gè)電子控制單元,利用
    發(fā)表于 11-01 08:00 ?43次下載
    如何使用Autosar的進(jìn)行整車電子電氣<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)<b class='flag-5'>詳細(xì)</b>方法概述

    系統(tǒng)架構(gòu)設(shè)計(jì)的詳細(xì)講解

    上一篇,我們討論了故障度量和安全機(jī)制的ASIL等級(jí)。本篇我們來(lái)聊一聊系統(tǒng)架構(gòu)設(shè)計(jì)相關(guān)內(nèi)容。01系統(tǒng)架構(gòu)設(shè)計(jì)和TSC當(dāng)我們開始寫TSC時(shí),會(huì)涉及到下圖中一系列的內(nèi)容:當(dāng)我們完成前三期(鏈接見文末)提到的安全機(jī)制規(guī)范后,我們就要開始整理好所有的安全需求并在系統(tǒng)
    的頭像 發(fā)表于 12-24 14:33 ?1729次閱讀

    SWE.2的軟件架構(gòu)設(shè)計(jì)

    過(guò)程ID:SWE.2 過(guò)程名稱:軟件架構(gòu)設(shè)計(jì) 過(guò)程目的:軟件架構(gòu)設(shè)計(jì)過(guò)程目的是建立一個(gè)架構(gòu)設(shè)計(jì),識(shí)別哪些軟件需求應(yīng)該分配給軟件的哪些要素,并根據(jù)已定義的標(biāo)準(zhǔn)評(píng)估軟件架構(gòu)設(shè)計(jì)。 ? 過(guò)程
    的頭像 發(fā)表于 01-11 10:36 ?2773次閱讀

    SYS.3的系統(tǒng)架構(gòu)設(shè)計(jì)

    系統(tǒng)架構(gòu)設(shè)計(jì) 過(guò)程ID:SYS.3 過(guò)程名稱:系統(tǒng)架構(gòu)設(shè)計(jì) ? 過(guò)程目的:系統(tǒng)架構(gòu)設(shè)計(jì)過(guò)程目的,是建立系統(tǒng)架構(gòu)設(shè)計(jì),并確定將哪些系統(tǒng)需求分配給系統(tǒng)的哪些要素,以及根據(jù)已定義的準(zhǔn)則評(píng)估系
    的頭像 發(fā)表于 02-13 16:02 ?2697次閱讀

    幾種軟件架構(gòu)設(shè)計(jì)的思維方式

    一個(gè)優(yōu)秀的程序員要想成為一名優(yōu)秀的架構(gòu)設(shè)計(jì)師,就改變編程的思維,學(xué)會(huì)使用架構(gòu)設(shè)計(jì)的思維方式。
    的頭像 發(fā)表于 03-08 15:30 ?4930次閱讀

    架構(gòu)與微架構(gòu)設(shè)計(jì)

    下面將從芯片的架構(gòu)設(shè)計(jì)、微架構(gòu)設(shè)計(jì)、使用設(shè)計(jì)文檔、設(shè)計(jì)分區(qū)、時(shí)鐘域和時(shí)鐘組、架構(gòu)調(diào)整與性能改進(jìn)、處理器微架構(gòu)設(shè)計(jì)策略等角度進(jìn)行說(shuō)明,并以視頻H.264編碼器設(shè)計(jì)為例。
    的頭像 發(fā)表于 05-08 10:42 ?1203次閱讀
    <b class='flag-5'>架構(gòu)</b>與微<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)

    NetApp VMware和Broadcom驗(yàn)證架構(gòu)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《NetApp VMware和Broadcom驗(yàn)證架構(gòu)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 08-23 15:17 ?0次下載
    NetApp VMware和Broadcom驗(yàn)證<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)