Здесь я устанавливаю запускаю статический экзешник pdf2htmlEX и получаю красивый html файл, но опять каждая ячейка таблицы - один div и никакой цветовой иерархии штано дивов. Получается, что проще использовать pdftotext (он у меня в наборе Program Files/Xpdf).
In one word, pdf2htmlEX is a tool that Convert PDF to HTML without losing text or format, bases on poppler, FontForge , and jQuery.
pdf2htmlex-windows-version - скачал отсюда pdf2htmlEX v0.12-win32-static
pdf2htmlEX downloadis available through several repositories, thanks to all the packagers!
pdf2htmlEX doc
Quick-Start
Font Files
Начнем с результатов¶
Программу не нужно устанавливать. Достаточно распаковать и запустить. После выполнения в папке (temp_for_TESTING) с файлом AEBru_2014_4.pdf появляется AEBru_2014_4.txt
Опции -f 2 -l 3 -это первая и последняя страница, которые мы будем конвертировать. Все возможные опции распечатаны ниже в приложении.
C:\Users\kiss\pdf2htmlEX>pdf2htmlEX -f 2 -l 3 temp_for_TESTING\AEBru_2014_4.pdf
Preprocessing: 2/2
Lookup 'mark' Mark Positioning lookup 7 has an
offset bigger than 65535 bytes. This means
FontForge must use an extension lookup to output it.
Not all applications support extension lookups.
Internal Error: Attempt to output 65878 into a 16-bit field. It will be truncated and the file may not be useful.
Lookup 'mark' Mark Positioning lookup 6 has an
offset bigger than 65535 bytes. This means
FontForge must use an extension lookup to output it.
Not all applications support extension lookups.
....
....
Working: 2/2
C:\Users\kiss\pdf2htmlEX>
Полученый html файл создан по принципу один блок div -это одна строчка, или одна ячейка таблицы. Последовательность блоков соответствует (нормальной) последовательности ячеек в строках. Кроме того, есть разбивка на страницы - родительские div. Но классы и id блоков формируются так, что я пока не нашел за что можно зацепиться при рарсинге контента таблиц.
from IPython.display import Image
Image ('C:\\Users\\kiss\\Pictures\\pythonR\\pdf2htmlEX.png')
Вот полный перечень опций¶
C:\Users\kiss\pdf2htmlEX>pdf2htmlEX -h
Usage: pdf2htmlEX [options] <input.pdf> [<output.html>]
-f,--first-page <int> first page to convert (default: 1)
-l,--last-page <int> last page to convert (default: 2147483647)
--zoom <fp> zoom ratio
--fit-width <fp> fit width to <fp> pixels
--fit-height <fp> fit height to <fp> pixels
--use-cropbox <int> use CropBox instead of MediaBox (default: 1)
--hdpi <fp> horizontal resolution for graphics in DPI (default: 144)
--vdpi <fp> vertical resolution for graphics in DPI (default: 144)
--embed <string> specify which elements should be embedded into output
--embed-css <int> embed CSS files into output (default: 1)
--embed-font <int> embed font files into output (default: 1)
--embed-image <int> embed image files into output (default: 1)
--embed-javascript <int> embed JavaScript files into output (default: 1)
--embed-outline <int> embed outlines into output (default: 1)
--split-pages <int> split pages into separate files (default: 0)
--dest-dir <string> specify destination directory (default: ".")
--css-filename <string> filename of the generated css file (default: "")
--page-filename <string> filename template for split pages (default: "")
--outline-filename <string> filename of the generated outline file (default: "")
--process-nontext <int> render graphics in addition to text (default: 1)
--process-outline <int> show outline in HTML (default: 1)
--process-annotation <int> show annotation in HTML (default: 0)
--printing <int> enable printing support (default: 1)
--fallback <int> output in fallback mode (default: 0)
--tmp-file-size-limit <int> Maximum size (in KB) used by temporary files, -1 for no limit. (default: -1)
--embed-external-font <int> embed local match for external fonts (default: 1)
--font-format <string> suffix for embedded font files (ttf,otf,woff,svg) (default: "woff")
--decompose-ligature <int> decompose ligatures, such as ямБ -> fi (default: 0)
--auto-hint <int> use fontforge autohint on fonts without hints (default: 0)
--external-hint-tool <string> external tool for hinting fonts (overrides --auto-hint) (default: "")
--stretch-narrow-glyph <int> stretch narrow glyphs instead of padding them (default: 0)
--squeeze-wide-glyph <int> shrink wide glyphs instead of truncating them (default: 1)
--override-fstype <int> clear the fstype bits in TTF/OTF fonts (default: 0)
--process-type3 <int> convert Type 3 fonts for web (experimental) (default: 0)
--heps <fp> horizontal threshold for merging text, in pixels (default: 1)
--veps <fp> vertical threshold for merging text, in pixels (default: 1)
--space-threshold <fp> word break threshold (threshold * em) (default: 0.125)
--font-size-multiplier <fp> a value greater than 1 increases the rendering accuracy (default: 4)
--space-as-offset <int> treat space characters as offsets (default: 0)
--tounicode <int> how to handle ToUnicode CMaps (0=auto, 1=force, -1=ignore) (default: 0)
--optimize-text <int> try to reduce the number of HTML elements used for text (default: 0)
--correct-text-visibility <int> try to detect texts covered by other graphics and properly arrange them (default: 0)
--bg-format <string> specify background image format (default: "png")
--svg-node-count-limit <int> if node count in a svg background image exceeds this limit, fall back this page to bitmap background
; negative value means no limit. (default: -1)
--svg-embed-bitmap <int> 1: embed bitmaps in svg background; 0: dump bitmaps to external files if possible. (default: 1)
-o,--owner-password <string> owner password (for encrypted files)
-u,--user-password <string> user password (for encrypted files)
--no-drm <int> override document DRM settings (default: 0)
--clean-tmp <int> remove temporary files after conversion (default: 1)
--tmp-dir <string> specify the location of temporary directory. (default: "C:\Users\kiss\AppData\Local\Temp/")
--data-dir <string> specify data directory (default: "C:\Users\kiss\pdf2htmlEX/data")
--debug <int> print debugging information (default: 0)
--proof <int> texts are drawn on both text layer and background for proof. (default: 0)
-v,--version print copyright and version info
-h,--help print usage information
C:\Users\kiss\pdf2htmlEX>
Структура папок программы¶
Видно, что здесь интегрирована знаменитая (share/) poppler... А изрядное количество азиатских шрифтов наталкивает на мысль о том, что главная цель - адаптировать poppler под эти шрифты для создания html страниц без искажений.
C:\Users\kiss\pdf2htmlEX>tree /f
Структура папок
Серийный номер тома: 0000004C 6017:2A0B
C:.
│ pdf2htmlEX.exe
│
├───data
│ base.css
│ base.css.in
│ base.min.css
│ build_css.sh
│ build_js.sh
│ compatibility.min.js
│ fancy.css
│ fancy.css.in
│ fancy.min.css
│ LICENSE
│ manifest
│ pdf2htmlEX-64x64.png
│ pdf2htmlEX.js
│ pdf2htmlEX.js.in
│ pdf2htmlEX.min.js
│
├───share
│ └───poppler
│ │ CMakeLists.txt
│ │ COPYING
│ │ COPYING.adobe
│ │ COPYING.gpl2
│ │ Makefile
│ │ README
│ │
│ ├───cidToUnicode
│ │ Adobe-CNS1
│ │ Adobe-GB1
│ │ Adobe-Japan1
│ │ Adobe-Korea1
│ │
│ ├───cMap
│ │ ├───Adobe-CNS1
│ │ │ Adobe-CNS1-0
│ │ │ Adobe-CNS1-1
│ │ │ Adobe-CNS1-2
│ │ │ Adobe-CNS1-3
│ │ │ Adobe-CNS1-4
│ │ │ Adobe-CNS1-5
│ │ │ Adobe-CNS1-6
│ │ │ Adobe-CNS1-B5pc
│ │ │ Adobe-CNS1-ETen-B5
│ │ │ Adobe-CNS1-H-CID
│ │ │ Adobe-CNS1-H-Host
│ │ │ Adobe-CNS1-H-Mac
│ │ │ Adobe-CNS1-UCS2
│ │ │ B5-H
│ │ │ B5-V
│ │ │ B5pc-H
│ │ │ B5pc-UCS2
│ │ │ B5pc-UCS2C
│ │ │ B5pc-V
│ │ │ CNS-EUC-H
│ │ │ CNS-EUC-V
│ │ │ CNS1-H
│ │ │ CNS1-V
│ │ │ CNS2-H
│ │ │ CNS2-V
│ │ │ ETen-B5-H
│ │ │ ETen-B5-UCS2
│ │ │ ETen-B5-V
│ │ │ ETenms-B5-H
│ │ │ ETenms-B5-V
│ │ │ ETHK-B5-H
│ │ │ ETHK-B5-V
│ │ │ HKdla-B5-H
│ │ │ HKdla-B5-V
│ │ │ HKdlb-B5-H
│ │ │ HKdlb-B5-V
│ │ │ HKgccs-B5-H
│ │ │ HKgccs-B5-V
│ │ │ HKm314-B5-H
│ │ │ HKm314-B5-V
│ │ │ HKm471-B5-H
│ │ │ HKm471-B5-V
│ │ │ HKscs-B5-H
│ │ │ HKscs-B5-V
│ │ │ UCS2-B5pc
│ │ │ UCS2-ETen-B5
│ │ │ UniCNS-UCS2-H
│ │ │ UniCNS-UCS2-V
│ │ │ UniCNS-UTF16-H
│ │ │ UniCNS-UTF16-V
│ │ │ UniCNS-UTF32-H
│ │ │ UniCNS-UTF32-V
│ │ │ UniCNS-UTF8-H
│ │ │ UniCNS-UTF8-V
│ │ │
│ │ ├───Adobe-GB1
│ │ │ Adobe-GB1-0
│ │ │ Adobe-GB1-1
│ │ │ Adobe-GB1-2
│ │ │ Adobe-GB1-3
│ │ │ Adobe-GB1-4
│ │ │ Adobe-GB1-5
│ │ │ Adobe-GB1-GBK-EUC
│ │ │ Adobe-GB1-GBpc-EUC
│ │ │ Adobe-GB1-H-CID
│ │ │ Adobe-GB1-H-Host
│ │ │ Adobe-GB1-H-Mac
│ │ │ Adobe-GB1-UCS2
│ │ │ GB-EUC-H
│ │ │ GB-EUC-V
│ │ │ GB-H
│ │ │ GB-V
│ │ │ GBK-EUC-H
│ │ │ GBK-EUC-UCS2
│ │ │ GBK-EUC-V
│ │ │ GBK2K-H
│ │ │ GBK2K-V
│ │ │ GBKp-EUC-H
│ │ │ GBKp-EUC-V
│ │ │ GBpc-EUC-H
│ │ │ GBpc-EUC-UCS2
│ │ │ GBpc-EUC-UCS2C
│ │ │ GBpc-EUC-V
│ │ │ GBT-EUC-H
│ │ │ GBT-EUC-V
│ │ │ GBT-H
│ │ │ GBT-V
│ │ │ GBTpc-EUC-H
│ │ │ GBTpc-EUC-V
│ │ │ UCS2-GBK-EUC
│ │ │ UCS2-GBpc-EUC
│ │ │ UniGB-UCS2-H
│ │ │ UniGB-UCS2-V
│ │ │ UniGB-UTF16-H
│ │ │ UniGB-UTF16-V
│ │ │ UniGB-UTF32-H
│ │ │ UniGB-UTF32-V
│ │ │ UniGB-UTF8-H
│ │ │ UniGB-UTF8-V
│ │ │
│ │ ├───Adobe-Japan1
│ │ │ 78-EUC-H
│ │ │ 78-EUC-V
│ │ │ 78-H
│ │ │ 78-RKSJ-H
│ │ │ 78-RKSJ-V
│ │ │ 78-V
│ │ │ 78ms-RKSJ-H
│ │ │ 78ms-RKSJ-V
│ │ │ 83pv-RKSJ-H
│ │ │ 90ms-RKSJ-H
│ │ │ 90ms-RKSJ-UCS2
│ │ │ 90ms-RKSJ-V
│ │ │ 90msp-RKSJ-H
│ │ │ 90msp-RKSJ-V
│ │ │ 90pv-RKSJ-H
│ │ │ 90pv-RKSJ-UCS2
│ │ │ 90pv-RKSJ-UCS2C
│ │ │ 90pv-RKSJ-V
│ │ │ Add-H
│ │ │ Add-RKSJ-H
│ │ │ Add-RKSJ-V
│ │ │ Add-V
│ │ │ Adobe-Japan1-0
│ │ │ Adobe-Japan1-1
│ │ │ Adobe-Japan1-2
│ │ │ Adobe-Japan1-3
│ │ │ Adobe-Japan1-4
│ │ │ Adobe-Japan1-5
│ │ │ Adobe-Japan1-6
│ │ │ Adobe-Japan1-90ms-RKSJ
│ │ │ Adobe-Japan1-90pv-RKSJ
│ │ │ Adobe-Japan1-H-CID
│ │ │ Adobe-Japan1-H-Host
│ │ │ Adobe-Japan1-H-Mac
│ │ │ Adobe-Japan1-PS-H
│ │ │ Adobe-Japan1-PS-V
│ │ │ Adobe-Japan1-UCS2
│ │ │ EUC-H
│ │ │ EUC-V
│ │ │ Ext-H
│ │ │ Ext-RKSJ-H
│ │ │ Ext-RKSJ-V
│ │ │ Ext-V
│ │ │ H
│ │ │ Hankaku
│ │ │ Hiragana
│ │ │ Hojo-EUC-H
│ │ │ Hojo-EUC-V
│ │ │ Hojo-H
│ │ │ Hojo-V
│ │ │ Katakana
│ │ │ NWP-H
│ │ │ NWP-V
│ │ │ RKSJ-H
│ │ │ RKSJ-V
│ │ │ Roman
│ │ │ UCS2-90ms-RKSJ
│ │ │ UCS2-90pv-RKSJ
│ │ │ UniHojo-UCS2-H
│ │ │ UniHojo-UCS2-V
│ │ │ UniHojo-UTF16-H
│ │ │ UniHojo-UTF16-V
│ │ │ UniHojo-UTF32-H
│ │ │ UniHojo-UTF32-V
│ │ │ UniHojo-UTF8-H
│ │ │ UniHojo-UTF8-V
│ │ │ UniJIS-UCS2-H
│ │ │ UniJIS-UCS2-HW-H
│ │ │ UniJIS-UCS2-HW-V
│ │ │ UniJIS-UCS2-V
│ │ │ UniJIS-UTF16-H
│ │ │ UniJIS-UTF16-V
│ │ │ UniJIS-UTF32-H
│ │ │ UniJIS-UTF32-V
│ │ │ UniJIS-UTF8-H
│ │ │ UniJIS-UTF8-V
│ │ │ UniJIS2004-UTF16-H
│ │ │ UniJIS2004-UTF16-V
│ │ │ UniJIS2004-UTF32-H
│ │ │ UniJIS2004-UTF32-V
│ │ │ UniJIS2004-UTF8-H
│ │ │ UniJIS2004-UTF8-V
│ │ │ UniJISPro-UCS2-HW-V
│ │ │ UniJISPro-UCS2-V
│ │ │ UniJISPro-UTF8-V
│ │ │ UniJISX0213-UTF32-H
│ │ │ UniJISX0213-UTF32-V
│ │ │ UniJISX02132004-UTF32-H
│ │ │ UniJISX02132004-UTF32-V
│ │ │ V
│ │ │ WP-Symbol
│ │ │
│ │ ├───Adobe-Japan2
│ │ │ Adobe-Japan2-0
│ │ │
│ │ └───Adobe-Korea1
│ │ Adobe-Korea1-0
│ │ Adobe-Korea1-1
│ │ Adobe-Korea1-2
│ │ Adobe-Korea1-H-CID
│ │ Adobe-Korea1-H-Host
│ │ Adobe-Korea1-H-Mac
│ │ Adobe-Korea1-KSCms-UHC
│ │ Adobe-Korea1-KSCpc-EUC
│ │ Adobe-Korea1-UCS2
│ │ KSC-EUC-H
│ │ KSC-EUC-V
│ │ KSC-H
│ │ KSC-Johab-H
│ │ KSC-Johab-V
│ │ KSC-V
│ │ KSCms-UHC-H
│ │ KSCms-UHC-HW-H
│ │ KSCms-UHC-HW-V
│ │ KSCms-UHC-UCS2
│ │ KSCms-UHC-V
│ │ KSCpc-EUC-H
│ │ KSCpc-EUC-UCS2
│ │ KSCpc-EUC-UCS2C
│ │ KSCpc-EUC-V
│ │ UCS2-KSCms-UHC
│ │ UCS2-KSCpc-EUC
│ │ UniKS-UCS2-H
│ │ UniKS-UCS2-V
│ │ UniKS-UTF16-H
│ │ UniKS-UTF16-V
│ │ UniKS-UTF32-H
│ │ UniKS-UTF32-V
│ │ UniKS-UTF8-H
│ │ UniKS-UTF8-V
│ │
│ ├───nameToUnicode
│ │ Bulgarian
│ │ Greek
│ │ Thai
│ │
│ └───unicodeMap
│ Big5
│ Big5ascii
│ EUC-CN
│ EUC-JP
│ GBK
│ ISO-2022-CN
│ ISO-2022-JP
│ ISO-2022-KR
│ ISO-8859-6
│ ISO-8859-7
│ ISO-8859-8
│ ISO-8859-9
│ KOI8-R
│ Latin2
│ Shift-JIS
│ TIS-620
│ Windows-1255
│
└───test
│ test.py
│ test_naming.py
│
└───test_data
1-page.pdf
2-pages.pdf
3-pages.pdf
C:\Users\kiss\pdf2htmlEX>
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий