Web便利ノート
cman.jp cman.jp > Web便利ノート > PDF > 解析・変換 > PDF→HTML
広告
広告
広告

pdftohtml - PDFをHTMLに変換

フリーソフトPopplerのpdftohtmlコマンドを利用するとPDFをHTMLに変換することが出来ます。

pdftohtml

広告

pdftohtml の詳細

PopplerとはPDFビューア(XpdfReader)やPDF解析・変換ツールのフリーソフトです。PopplerはXpdf(フリーソフト)をベースとして機能を拡張して提供されています。
ソースコードも提供されているライブラリとなります。コマンドライン実行のため、VBAや他プログラムからも利用可能となります。

コマンド
pdftohtml [options] <PDF-file> [<html-file> <xml-file>]
オプション
指定なし PDFをHTMLに変換します。
「-c」「-s」のオプションを付けた方が見た目が奇麗に変換できます。
-p .pdfリンクを.htmlに変換します。
-c 1ページずつのHTMLが生成されます。
-s 全ページが1つのHTMLが生成されます。
-i PDF内の画像は無視されます。
-noframes PDFをフレームなしのHTMLに変換します。
-stdout 生成したHTMLテキストを画面に表示します。
-zoom <fp> 生成するHTMLの大きさを指定します。
-xml HTMLではなくXMLとして出力されます。
-noroundcoord XML内の座標値を丸めないで生成する。(XMLのみ)
-hidden 隠しテキストを出力する。
-nomerge 段落を結合しない。
-fmt <string> 画像ファイルの出力形式(png または jpg)。
-nodrm ドキュメントのDRM設定を上書きする。
-wbt <fp> 単語区切りのしきい値を設定します。
-fontfullname HTML内のフォント定義がフルネームで出力されます。
-enc <string> 文字コードを指定します
-q 変換時のメッセージ/エラーメッセージを非表示にします
-f <int> 解析を行うPDFの開始ページを指定します
-l <int> 解析を行うPDFの終了ページを指定します
-opw <string> オーナーパスワード設定されている場合にパスワードを指定します
-upw <string> ユーザーパスワード設定されている場合にパスワードを指定します
-v バージョンとコピーライトを表示します
-h コマンドの使用方法を表示します
ページTOP
広告
ページTOP

pdftohtml 実行例

オプションなし

PDFをフレーム付きのHTMLに変換します。「-c」「-s」のオプションを付けた方が見た目は奇麗に変換されます。

>pdftohtml ../Sample_tohtml.pdf out_none.html
 link to page 2 Page-1
Page-2

>dir none
     7,598 out_none-1_1.jpg
     8,001 out_none-1_2.jpg
     5,504 out_none-2_1.jpg
       386 out_none.html
     2,804 out_nones.html
       266 out_none_ind.html
>
元PDF 抽出後テキスト
Sample_tohtml.pdf (342KB)
ページTOP

「-p」 .pdfリンクを.htmlに変換

>pdftohtml -p ../Sample_tohtml.pdf out_p.html
 link to page 2 Page-1
Page-2

>dir p
     7,598 out_p-1_1.jpg
     8,001 out_p-1_2.jpg
     5,504 out_p-2_1.jpg
       419 out_p.html
     2,845 out_ps.html
       260 out_p_ind.html
>

.pdfを.htmlに変換する機能と思われますが、PDF内の.pdfは変換されませんでした。
当サンプルは使用方法が間違っている可能性があります。

ページTOP

「-c」 1ページずつのHTMLが生成

1ページずつのHTMLが生成されます。フレームのインデックスでページ切り替えが可能です。
「-c」はページ単位にテキスト部分以外が画像化され、テキストが上に配置されます。このため、ページの表示は見やすくなりますが、HTML全体のサイズが大きくなります。

>pdftohtml -c Sample_tohtml.pdf c/out_c.html
 link to page 2 Page-1
Page-2

>dir c
       6,576 out_c-1.html
       8,518 out_c-2.html
         422 out_c.html
     270,891 out_c001.png
     105,633 out_c002.png
         258 out_c_ind.html
>
元PDF 抽出後テキスト
Sample_tohtml.pdf (342KB)
dir_c.zip (363KB)
ページTOP

「-s」 全ページが1つのHTMLが生成

全ページが1つのHTMLが生成されます。
「-s」はページ単位にテキスト部分以外が画像化され、テキストが上に配置されます。このため、ページの表示は見やすくなりますが、HTML全体のサイズが大きくなります。

>pdftohtml -s Sample_tohtml.pdf s/out_s.html
 link to page 2 Page-1
Page-2

>dir s
       7,598 out_s-1_1.jpg
       8,001 out_s-1_2.jpg
       5,504 out_s-2_3.jpg
       9,829 out_s-html.html
     270,891 out_s001.png
     105,633 out_s002.png
         665 out_ss.html
>
元PDF 抽出後テキスト
Sample_tohtml.pdf (342KB)
dir_s.zip (382KB)
ページTOP

「-i」 PDF内の画像を無視する

>pdftohtml -i Sample_tohtml.pdf i/out_i.html
 link to page 2 Page-1
Page-2

>dir i
       421 out_i.html
     2,746 out_is.html
       260 out_i_ind.html
>
元PDF 抽出後テキスト
Sample_tohtml.pdf (342KB)
dir_i.zip (2KB)
ページTOP

「-noframes」 フレームなしのHTMLに変換

>pdftohtml -noframes ../Sample_tohtml.pdf out_noframes.html
 link to page 2 Page-1
Page-2

>dir noframes
     7,598 out_noframes-1_1.jpg
     8,001 out_noframes-1_2.jpg
     5,504 out_noframes-2_1.jpg
     3,206 out_noframes.html
>
元PDF 抽出後テキスト
Sample_tohtml.pdf (342KB)
ページTOP

「-stdout」 生成したHTMLテキストを画面に表示

生成したHTMLテキストを画面に表示します。画像は指定ディレクトリに格納されます。

>pdftohtml -stdout -enc Shift-JIS Sample_tohtml.pdf stdout/out_stdout.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<title>stdout/out_stdout</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS"/>
<meta name="generator" content="pdftohtml 0.36"/>
<meta name="author" content="testUser"/>
<meta name="date" content="2025-09-12T14:16:21+00:00"/>
<style type="text/css">
<!--
.xflip {
    -moz-transform: scaleX(-1);
    -webkit-transform: scaleX(-1);
    -o-transform: scaleX(-1);
    transform: scaleX(-1);
    filter: fliph;
}
.yflip {
    -moz-transform: scaleY(-1);
    -webkit-transform: scaleY(-1);
    -o-transform: scaleY(-1);
    transform: scaleY(-1);
    filter: flipv;
}
.xyflip {
    -moz-transform: scaleX(-1) scaleY(-1);
    -webkit-transform: scaleX(-1) scaleY(-1);
    -o-transform: scaleX(-1) scaleY(-1);
    transform: scaleX(-1) scaleY(-1);
    filter: fliph + flipv;
}
-->
</style>
</head>
<body bgcolor="#A0A0A0" vlink="blue" link="blue">
 link to page 2 <a name=1></a><img src="stdout/out_stdout-1_1.jpg"/><br/>
<img src="stdout/out_stdout-1_2.jpg"/><br/>
HTML 変換用 PDF <br/>
 <br/>
pdftohtml コマンドを利用して、PDF を HTML に変換するための PDF ファイルです。 <br/>
This  is  a  PDF  file  for  converting  PDF  to  HTML  using  the  pdftohtml <br/>
command. <br/>
 <br/>
 <br/>
 <br/>
 <br/>
フォントサイズ<br/>
30pt<br/>
    10pt    20pt   <br/>
 <br/>
フォント種類など    ゴシック  明朝  斜体  太字  下線  取り消し線 <br/>
リンク <br/>
<a href="https://note.cman.jp/">https://note.cman.jp/ </a><br/>
<a href="out_stdout.html#2">次ページ</a>   <br/>
<a href="https://note.cman.jp/pdf/poppler/SamplePDF/pdftohtml/Sample_tohtml_LInk2.pdf">PDF へリンク </a><br/>
<hr/>
<a name=2></a><img src="stdout/out_stdout-2_1.jpg"/><br/>
 <br/>
<b>No. </b><br/>
<b>商品 </b><br/>
<b>売上 </b><br/>
<b>前年比 </b><br/>
<b>担当 </b><br/>
<b>1  </b>商品 A <br/>
10,000 円 <br/>
150.8%  第一営業 <br/>
<b>2  </b>商品 B <br/>
20,000 円 <br/>
91.1% <br/>
<b>3  </b>商品 C <br/>
30,000 円 <br/>
266.6%  第二営業 <br/>
<b>4  </b>商品 D <br/>
40,000 円 <br/>
100.5%  第一営業 <br/>
 <br/>
グラフ タイトル<br/>
10<br/>
5<br/>
0<br/>
カテゴリ 1<br/>
カテゴリ 2<br/>
カテゴリ 3<br/>
カテゴリ 4<br/>
系列 1<br/>
系列 2<br/>
系列 3<br/>
 <br/>
 <br/> <br/> <br/> <br/>
オブジェクト内文字 <br/>
 <br/> <br/> <br/>
 <br/>
<hr/>
</body>
</html>


>dir stdout
     7,598 out_stdout-1_1.jpg
     8,001 out_stdout-1_2.jpg
     5,504 out_stdout-2_1.jpg
>
ページTOP

「-zoom <fp>」 HTMLの大きさを指定

生成するHTMLの大きさを指定します(デフォルト1.5)

>pdftohtml -zoom 0.8 -s Sample_tohtml.pdf zoom/out_zoom08.html
 link to page 2 Page-1
Page-2
>pdftohtml -zoom 2.2 -s Sample_tohtml.pdf zoom/out_zoom22.html
 link to page 2 Page-1
Page-2

>dir zoom
       7,598 out_zoom08-1_1.jpg
       8,001 out_zoom08-1_2.jpg
       5,504 out_zoom08-2_3.jpg
       9,750 out_zoom08-html.html
     110,607 out_zoom08001.png
      43,652 out_zoom08002.png
         665 out_zoom08s.html
       7,598 out_zoom22-1_1.jpg
       8,001 out_zoom22-1_2.jpg
       5,504 out_zoom22-2_3.jpg
       9,888 out_zoom22-html.html
     452,334 out_zoom22001.png
     179,285 out_zoom22002.png
         665 out_zoom22s.html
>
元PDF 抽出後テキスト
Sample_tohtml.pdf (342KB)
dir_zoom.zip (792KB)
ページTOP

「-xml」 HTMLではなくXMLとして出力

>pdftohtml -xml Sample_tohtml.pdf xml/out_xml
 link to page 2 Page-1
Page-2

>dir xml
      7,598 out_xml-1_1.jpg
      8,001 out_xml-1_2.jpg
      5,504 out_xml-2_1.jpg
     12,069 out_xml.xml
>
元PDF 抽出後テキスト
Sample_tohtml.pdf (342KB)
dir_xml.zip (363KB)
ページTOP

「-noroundcoord」 XML内の座標値を丸めない

XML内の座標値を丸めないで生成する。(XMLのみ)

>pdftohtml -noroundcoord -xml Sample_tohtml.pdf noroundcoord/out_noroundcoord
 link to page 2 Page-1
Page-2

>dir noroundcoord
      7,598 out_noroundcoord-1_1.jpg
      8,001 out_noroundcoord-1_2.jpg
      5,504 out_noroundcoord-2_1.jpg
     15,604 out_noroundcoord.xml
>
元PDF 抽出後テキスト
Sample_tohtml.pdf (342KB)
ページTOP

「-hidden」 隠しテキストを出力

>pdftohtml -hidden -s Sample_tohtml.pdf hidden/out_hidden.html
 link to page 2 Page-1
Page-2

>dir hidden
       7,598 out_hidden-1_1.jpg
       8,001 out_hidden-1_2.jpg
       5,504 out_hidden-2_3.jpg
       9,864 out_hidden-html.html
     270,891 out_hidden001.png
     105,633 out_hidden002.png
         665 out_hiddens.html
>
ページTOP

「-nomerge」 段落を結合しない

>pdftohtml -nomerge -s Sample_tohtml.pdf nomerge/out_nomerge.html
 link to page 2 Page-1
Page-2

>dir nomerge
       7,598 out_nomerge-1_1.jpg
       8,001 out_nomerge-1_2.jpg
       5,504 out_nomerge-2_3.jpg
      10,277 out_nomerge-html.html
     270,891 out_nomerge001.png
     105,633 out_nomerge002.png
         665 out_nomerges.html
>
ページTOP

「-fmt <string>」 画像ファイルも出力形式を指定

画像ファイルも出力形式(png または jpg)。
PDF内に埋め込まれている画像ではなく「-s」「-i」等で背景として使用する画像の出力形式のようです。

>pdftohtml -fmt jpeg -s Sample_tohtml.pdf fmt/out_fmt.html
 link to page 2 Page-1
Page-2

>dir fmt
       7,598 out_fmt-1_1.jpg
       8,001 out_fmt-1_2.jpg
       5,504 out_fmt-2_3.jpg
       9,845 out_fmt-html.htm
     270,891 out_fmt001.jpeg
     105,633 out_fmt002.jpeg
         665 out_fmts.html
>

拡張子は.jpegに変わったのですが、中身はpngのままのようです。使用方法が違っている可能性があります。

ページTOP

「-nodrm」 ドキュメントのDRM設定を上書き

>pdftohtml -nodrm -s Sample_tohtml.pdf nodrm/out_nodrm.html
 link to page 2 Page-1
Page-2

>dir nodrm
       7,598 out_nodrm-1_1.jpg
       8,001 out_nodrm-1_2.jpg
       5,504 out_nodrm-2_3.jpg
       9,857 out_nodrm-html.htm
     270,891 out_nodrm001.png
     105,633 out_nodrm002.png
         665 out_nodrms.html
>
ページTOP

「-wbt <fp>」 単語区切りのしきい値を設定

単語区切りのしきい値を設定します(デフォルトは10パーセント)。

>pdftohtml -wbt 05 -s Sample_tohtml.pdf wbt/out_wbt05.html
 link to page 2 Page-1
Page-2
>pdftohtml -wbt 50 -s Sample_tohtml.pdf wbt/out_wbt50.html
 link to page 2 Page-1
Page-2

>dir wbt
       7,598 out_wbt05-1_1.jpg
       8,001 out_wbt05-1_2.jpg
       5,504 out_wbt05-2_3.jpg
       9,871 out_wbt05-html.html
     270,891 out_wbt05001.png
     105,633 out_wbt05002.png
         665 out_wbt05s.html
       7,598 out_wbt50-1_1.jpg
       8,001 out_wbt50-1_2.jpg
       5,504 out_wbt50-2_3.jpg
       9,553 out_wbt50-html.html
     270,891 out_wbt50001.png
     105,633 out_wbt50002.png
         665 out_wbt50s.html
>

一部で単語間隔が変わります。サンプルでは1行目の単語間隔に違いがあります。

元PDF 抽出後テキスト
Sample_tohtml.pdf (342KB)
dir_wbt.zip (363KB)
ページTOP

「-fontfullname」 フォント定義がフルネームで出力

HTML内のフォント定義がフルネームで出力されます。

>pdftohtml -fontfullname -s Sample_tohtml.pdf fontfullname/out_fontfullname.html
 link to page 2 Page-1
Page-2

>dir fontfullname
       7,598 out_fontfullname-1_1.jpg
       8,001 out_fontfullname-1_2.jpg
       5,504 out_fontfullname-2_3.jpg
       9,974 out_fontfullname-html.html
     270,891 out_fontfullname001.png
     105,633 out_fontfullname002.png
         665 out_fontfullnames.html
>
ページTOP

コマンド共通オプション

共通的に使用されるコマンドオプション「-f」「-l」「-enc」「-opw」「-upw」「-v」「-h」等のオプションは こちら でご確認ください。

ページTOP
広告

使用したバージョンなど

Windows版を使用しています。

pdftohtml version 24.08.0
Copyright 2005-2024 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1999-2003 Gueorgui Ovtcharov and Rainer Dorsch
Copyright 1996-2011, 2022 Glyph & Cog, LLC

Usage: pdftohtml [options] <PDF-file> [<html-file> <xml-file>]
  -f <int>              : first page to convert
  -l <int>              : last page to convert
  -q                    : don't print any messages or errors
  -h                    : print usage information
  -?                    : print usage information
  -help                 : print usage information
  --help                : print usage information
  -p                    : exchange .pdf links by .html
  -c                    : generate complex document
  -s                    : generate single document that includes all pages
  -i                    : ignore images
  -noframes             : generate no frames
  -stdout               : use standard output
  -zoom <fp>            : zoom the pdf document (default 1.5)
  -xml                  : output for XML post-processing
  -noroundcoord         : do not round coordinates (with XML output only)
  -hidden               : output hidden text
  -nomerge              : do not merge paragraphs
  -enc <string>         : output text encoding name
  -fmt <string>         : image file format for Splash output (png or jpg)
  -v                    : print copyright and version info
  -opw <string>         : owner password (for encrypted files)
  -upw <string>         : user password (for encrypted files)
  -nodrm                : override document DRM settings
  -wbt <fp>             : word break threshold (default 10 percent)
  -fontfullname         : outputs font full name
ページTOP

その他のPopplerツール機能

主な機能 概要
pdfattach PDFファイルに添付ファイルを埋め込みします
pdfdetach PDF内に添付(埋め込み)されているファイルの一覧表示や抽出を行います
pdffonts PDFファイルで使用されているフォントやフォントの埋め込み有無を調べる
pdfimages PDFファイルで使用(埋め込み)されている画像を抽出する
pdfinfo PDFファイルの情報(作成者、作成日時、ページ数など)を表示する
pdfseparate PDFファイルを1ページごとに分割する
pdftocairo PDFファイルを画像に変換する(Cairoベクターグラフィックスを使用)
pdftoppm PDFファイルを画像に変換する
pdftops PDFファイルをPostScriptファイルに変換する
pdftotext PDFファイルからテキストを抽出する
pdfunite 複数のPDFファイルをページ結合する
ページTOP
広告
QrCode
このページのURL
スマートフォン・タブレット運営:株式会社シーマン