Поиск по блогу

четверг, 5 февраля 2015 г.

Справка, ссылки и первая проба конвертера pdf2htmlEX

Здесь я устанавливаю запускаю статический экзешник 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 -это первая и последняя страница, которые мы будем конвертировать. Все возможные опции распечатаны ниже в приложении.

In []:
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 блоков формируются так, что я пока не нашел за что можно зацепиться при рарсинге контента таблиц.

In [1]:
from IPython.display import Image
Image ('C:\\Users\\kiss\\Pictures\\pythonR\\pdf2htmlEX.png')
Out[1]:

Вот полный перечень опций

In []:
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 страниц без искажений.

In []:
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>


Посты чуть ниже также могут вас заинтересовать

Комментариев нет:

Отправить комментарий