- 使用 OutprocLoader 物件處理文件,並取得每一頁的版面配置。使用 SaveToStream 方法將取得的版面配置寫入資料串流。
- 使用 InprocLoader 物件,透過 CreateLayoutFromStream 方法還原原始版面配置的副本。後續可使用此副本逐項走訪版面配置內容。
- 使用以處理序外伺服器形式載入的 Engine 物件處理文件,並取得每一頁的版面配置。使用 SaveToArray 方法將取得的版面配置寫出為位元組陣列。
- 使用以原生方式載入的 Engine 物件 (亦即從 libFREngine.so 程式庫載入至目前處理序中) ,透過您實作的 IReadStream 介面讀取取得的位元組陣列。
- 使用以原生方式載入的 Engine 物件,透過 CreateLayoutFromStream 方法還原原始版面配置的副本。後續可使用此副本逐項走訪版面配置內容。
版面配置區塊
文字區塊
文字區塊
這種類型的區塊對應於被辨識為格式化文字的影像區域。此區塊的 屬性 可透過 TextBlock 物件 存取。此 物件 也可存取由該區塊圈選之影像部分中的辨識文字。
表格區塊
表格區塊
這種類型的區塊對應於表格。此類型的區塊只能是矩形 (區域僅包含一個矩形) 。此區塊類型的 屬性 可透過 TableBlock 物件 存取。表格結構由兩組表格分隔線集合 (水平與垂直的 TableSeparators objects) 以及表格儲存格集合 (TableCells 物件) 描述。每個表格儲存格都會視為某種類型的區塊。辨識文字是單一儲存格的 屬性,而不是整個表格的 屬性。如果儲存格是圖片,則儲存格邊界內的影像不會被辨識,而會在辨識文字中顯示為圖片。表格分隔線可能有不同的類型。分隔線類型是針對分隔線上位於其與其他分隔線最近交點之間的線段所定義。分隔線可分為以下類型:
- Absent。此類型會指派給那些在合併儲存格中「應該穿過」的表格分隔線。
- Unknown。此類型預設會指派給每一條新加入的表格分隔線。
- Invisible。此類型會指派給因表格結構分析而建立的「虛擬」表格分隔線,其位置是原始表格中雖然沒有分隔線,但在邏輯上應該存在分隔線之處。
- Explicit。此類型的表格分隔線會出現在原始表格黑線所在的位置。
-
Multiple。這種類型的分隔線可能因表格編輯而出現。

點陣圖片區塊
點陣圖片區塊
這種類型的區塊代表被視為點陣圖片的影像區域。此區塊所圈選的影像部分不會被辨識,且區塊會「原樣」匯出。此區塊類型的 屬性 由 RasterPictureBlock 物件 表示。
向量圖片區塊
向量圖片區塊
這種類型的區塊代表被視為向量圖片的影像區域。只有在頁面已使用 IPageAnalysisParams::DetectVectorGraphics 屬性 設為 TRUE 進行分析時,版面配置中才可能出現此類型的區塊。通常,背景圖片會被辨識為此類型的區塊。此區塊類型的 屬性 由 VectorPictureBlock 物件 表示。
條碼區塊
條碼區塊
影像中由此類型區塊框選的部分會被視為條碼。ABBYY FineReader Engine 可辨識多種類型的條碼,也能自動偵測條碼類型。已辨識條碼中讀取的資訊,可透過由 BarcodeBlock 物件表示的條碼區塊專屬屬性存取。
核取記號區塊
核取記號區塊
影像中由此類型區塊框選的部分會被視為核取記號。它對應於被辨識為核取記號的影像區域。已辨識核取記號中讀取的資訊,可透過由 CheckmarkBlock 物件表示的核取記號區塊專屬屬性存取。
核取記號群組區塊
核取記號群組區塊
影像中由此類型區塊框選的部分會被視為核取記號群組。它對應於被辨識為核取記號群組的影像區域。已辨識核取記號群組中讀取的資訊,可透過由 CheckmarkGroup 物件表示的核取記號群組區塊專屬屬性存取。
分隔線區塊
分隔線區塊
影像中由此類型區塊框選的部分會被視為分隔線。分隔線是在頁面版面分析期間偵測到的線條,可能是表格的一部分、用來分隔不同文字元素的線條等。分隔線的座標和類型可透過 SeparatorBlock 物件存取。
分隔線群組區塊
分隔線群組區塊
影像中由此類型區塊框選的部分會被視為分隔線群組。它對應於被辨識為一組分隔線的影像區域。分隔線群組通常包含四條構成矩形的分隔線。例如,表格邊框的四條線會被辨識為分隔線群組。每個分隔線群組都包含一組分隔線區塊集合。分隔線群組區塊的專屬屬性由 SeparatorGroup 物件表示。
此外,還有自動分析區塊,僅用於 Visual Components (Windows 版 FRE 的一部分) 。這些區塊無法透過 FineReader Engine API 建立或辨識,只能透過 ILayout::VisualBlocks 屬性使用。
手動新增區塊
- 開啟 FRPage 物件,並透過 Layout 屬性取得頁面版面配置。
- 使用 IEngine::CreateRegion 方法為區塊建立 Region 物件,並使用 IRegion::AddRect 方法將矩形新增至其中。
- 建立所需類型的區塊,並使用 LayoutBlocks 物件的 AddNew 方法,將其新增至版面配置區塊集合。
- 設定區塊所需的參數 (使用與區塊類型對應的區塊屬性物件) 。
變更區塊類型
- 使用 IEngine::CreateRegion 方法建立 Region 物件,然後使用 IRegion::CopyFrom 方法,複製您要取代之區塊的區域。
- 呼叫 ILayoutBlocks::DeleteAt 方法,從版面配置中刪除舊區塊。
- 建立所需類型的新區塊,並使用 LayoutBlocks 物件的 AddNew 方法,將其新增至版面配置區塊集合中。將您從舊區塊複製的 Region 作為必要參數之一傳入。
