PDFBox 資料組織思路

2021-10-24 20:40:32 字數 2613 閱讀 7032

一句話:資料與操作分離

類只負責操作字典,來減少類中所包含的主要起pojo作用的成員。

我想了想,可能這樣進行輸出的時候,資料組織的規則可以避免和類的結構進行耦合,只不過由於完全通過字典進行資料組織,字典本身的結構是另一種沒有被類的層級關係描述的規則

另外一篇 手記 提到了這幾個類的關係。皆位於org.apache.pdfbox.pdmodel中。

感興趣可以繼續往下看。

通過初始化其成員cosdocument document,

及該成員內部成員cosdictionary trailer

以字典樹(value 包含乙個 字典) 形式組織資料。

public

pddocument()

public

pddocument

(memoryusagesetting memusagesetting)

catch

(ioexception ioe)

catch

(ioexception ioe2)

}

document =

newcosdocument

(scratchfile)

; pdfsource = null;

// first we need a trailer

cosdictionary trailer =

newcosdictionary()

; document.

settrailer

(trailer)

;// next we need the root dictionary.

cosdictionary rootdictionary =

newcosdictionary()

; trailer.

setitem

(cosname.root, rootdictionary)

; rootdictionary.

setitem

(cosname.type, cosname.catalog)

; rootdictionary.

setitem

(cosname.version, cosname.

getpdfname

("1.4"))

;// next we need the pages tree structure

cosdictionary pages =

newcosdictionary()

; rootdictionary.

setitem

(cosname.pages, pages)

; pages.

setitem

(cosname.type, cosname.pages)

; cosarray kidsarray =

newcosarray()

; pages.

setitem

(cosname.kids, kidsarray)

; pages.

setitem

(cosname.count, cosinteger.zero)

;

此類的構造呼叫時機在pddocument.getpddocumentcatalog()中

1).如果由pddocument物件構建,那麼將其儲存在成員物件pddocument document中,作為上級物件儲存。並建立cosdictionary物件向上註冊給document.trailer作為root

2).如果傳過來pddocument documentcosdictionary root,那就不重建root

**如下:

public

pddocumentcatalog

(pddocument doc)

public

pddocumentcatalog

(pddocument doc, cosdictionary rootdictionary)

pddocumentcatalog其實就是pddocument中的非成員變數cosdictionary root的資料操作類。

以此類推,pdpagetree實際上是pddocument中的非成員變數cosdictionary pages的資料操作類。從其建構函式可以發現一樣的構造邏輯。

pdpage則是擁有成員cosdictionary page,裝載單個頁面所需要的全部東西。

當然,還是秉持乙個規則。類 操作 字典。

Hadoop HDFS資料組織

hadoop培訓內容 hdfs資料組織,1.資料塊,2.staging,3.流水線式的複製 1.資料塊 hdfs最適合的應用場景是處理大資料集合,同時這些應用多是一次寫入多次讀取,並且讀的速度要滿足流式讀,即write once read many的語義。乙個典型的block大小是64mb,因此檔案...

檔案資料組織

資料庫的基本概念 二 曾士熊 原文 http www.ascc.sinica.edu.tw nl 83 1009 section3 3.html 劉建文整理 http blog.csdn.net keminlau 本文接第10個卷08期68頁 常見的電腦檔案包括 可執行程式檔案,批處理檔案,文字檔案...

重新組織資料

將乙個值用於多個用途,就是催生混亂與bug的溫床 1.拆分變數 如果乙個變數有多個用途,就為每個用途宣告乙個變數。還有,如果要對引數改值,也先複製乙份,對副本改值,返回副本。2.字段改名 給字段取乙個準確的名字。好的命名及資料分布,能讓別人只看類的字段就理解這些類的行為。3.以查詢取代派生變數 盡量...