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

четверг, 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>


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

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

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