サーバー上でHTMLページをJPG画像としてレンダリングする必要がある場面 — サムネイル、アーカイブ、メールプレビュー、またはECパイプラインの商品スクリーンショット。変換のたびにヘッドレスブラウザを起動するのは重く、遅く、ブラウザのアップデートで脆くなります。Total HTML Converter Xは、ブラウザのインストールなしで、コマンドラインからHTMLファイルやライブURLをJPGにバッチでレンダリングします。Windowsサーバーにインストールし、スクリプトやActiveX経由で呼び出して、無人で実行できます。
*.html)を渡すだけで、一致するすべてのファイルを一回の実行でJPGに変換
(30日間、メール登録不要)
(サーバーライセンス、永続版)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
HTMLはブラウザ向けに設計されたマークアップ言語です。HTMLページはテキスト、CSSルール、埋め込み画像、外部リソースから構成されます。レンダリングはブラウザエンジン、インストールされたフォント、画面サイズに依存します。同じHTMLでもChrome、Firefox、Edgeで見た目が異なる場合があり、外部リソースが利用不可な場合は表示が完全に崩れることもあります。
JPGは固定のラスタ画像形式です。変換時のレンダリング結果をそのまま画像として保存し、外部リソースを埋め込まず、すべての画像ビューア、ブラウザ、SNSプラットフォームで開けます。JPGファイルは小さく、埋め込みやすく、サムネイル、プレビュー、アーカイブ用スナップショットに最適です。
| HTML | JPG | |
|---|---|---|
| 形式 | 外部依存があるマークアップ | 自己完結型のラスタ画像 |
| レンダリング | ブラウザ、フォント、画面サイズで異なる | 固定ピクセル — どこでも同一 |
| ファイルサイズ | 可変、リンク先リソースに依存 | 小さく、画質設定で制御可能 |
| 用途 | ライブWeb表示 | サムネイル、プレビュー、アーカイブ、メール |
| 編集性 | ソースコードの編集が可能 | 読み取り専用画像 |
| メールへの埋め込み | ブロックされたり崩れることが多い | すべてで対応 |
上のリンクからインストーラーをダウンロードし、Windowsサーバーまたはワークステーションで実行します。セットアップは1分以内で完了します。ブラウザ、Microsoft Office、.NETの前提条件は一切不要 — コンバーターはHTMLタグ、CSS 1/2スタイル、埋め込み画像を処理する独自のレンダリングエンジンを搭載しています。
cmd.exeまたはPowerShellを開きます。コンバーターの実行ファイルはHTMLConverter.exeで、インストールフォルダ(通常はC:\Program Files\CoolUtils\TotalHTMLConverterX\)にあります。システムPATHに追加するか、コマンドでフルパスを使用してください。
最もシンプルなコマンドは、フォルダ内のすべてのHTMLファイルをJPGに変換します:
HTMLConverter.exe C:\Pages\*.html C:\Output\ -c JPEG
このコマンドはC:\Pages\内のすべての.htmlファイルを処理し、同じベース名の.jpgをC:\Output\に保存します。HTMLファイル1つに対してJPG1つが出力されます。
追加のフラグでJPG出力を制御します:
HTMLConverter.exe C:\Pages\*.html C:\Output\ -c JPEG -ImgQuality 90 -ImgWidth 1024
-ImgQuality 90 — JPEG画質、1(最小、ブロック状)から100(最高画質、最大ファイル)。85–92が一般的な最適範囲。-ImgWidth 1024 — 出力幅をピクセル単位で指定。コンバーターがレンダリングを合わせてスケーリング-ImgHeight 768 — 出力高さをピクセル単位で指定。幅と組み合わせるか、どちらか一方だけ使用-combine — HTMLドキュメント全体をページ分割せず1枚の縦長JPGとしてレンダリング-log C:\Logs\html2jpg.log — 検証用の変換ログを出力ファイルパスの代わりにURLを渡します:
HTMLConverter.exe https://example.com/report C:\Output\report.jpg -c JPEG -ImgQuality 90
コンバーターはページ(リモートのスタイルシートや画像も含む)を取得し、結果をJPGとしてレンダリングします。ライブWebページのアーカイブ、自動スクリーンショットの取得、オンデマンドのプレビュー画像生成に便利です。
コマンドを.batファイルに保存し、Windowsタスクスケジューラでスケジュールします:
@echo off "C:\Program Files\CoolUtils\TotalHTMLConverterX\HTMLConverter.exe" C:\Incoming\*.html C:\Archive\JPG\ -c JPEG -ImgQuality 90 -ImgWidth 1280 -log C:\Logs\html2jpg.log
これは設定した任意の間隔(毎時、毎晩、ウォッチャー経由のファイル到着時)で実行され、コンソールを見続けなくても結果を検証できるログファイルを出力します。
Total HTML Converter Xには完全なActiveXインターフェースが含まれています。.NET、VBScript、PHP、Python、Ruby、ASPなど、あらゆるCOM互換環境からコンバーターを呼び出せます。これにより、コマンドラインプロセスを外部起動することなく、独自のウェブアプリケーション、イントラネットポータル、またはドキュメントワークフローにHTML-to-JPGレンダリングを組み込めます。
例(C#/.NET):
HTMLConverterX Cnv = new HTMLConverterX();
Cnv.Convert("C:\\Pages\\report.html", "C:\\Output\\report.jpg", "-c JPEG -ImgQuality 90 -ImgWidth 1024");
例(PHP):
$c = new COM("HTMLConverter.HTMLConverterX");
$c->convert("C:\\Pages\\report.html", "C:\\Output\\report.jpg", "-c JPEG -ImgQuality 90");
同じ呼び出しがASP.NET、VBScript、Python、Ruby、Perl、JavaScript(Windows Script Host)でも動作します。ウェブアプリケーションでアップロードされたHTMLやURLを受け取り、リアルタイムでレンダリング済みJPGをユーザーに返すことができます。
1ページだけの変換なら、無料のオンラインconvert HTML to JPGツールがインストール不要でブラウザ内で動作します。サーバーパイプラインや大量バッチには、Total HTML Converter Xが最適です。
| 機能 | オンラインコンバーター | Total HTML Converter X |
|---|---|---|
| バッチ処理 | 一度に1ファイルのみ | バッチあたりファイル数無制限 |
| ファイルのプライバシー | サードパーティサーバーにアップロード | ファイルは自分のマシンから外に出ない |
| JPEG画質制御 | 固定または制限あり | 1–100の全範囲 |
| 出力寸法 | 固定またはサービスの制限あり | 任意の幅と高さ |
| CSSレンダリング | 基本的で不安定 | CSS 1/2を完全サポート |
| ライブURL入力 | 制限あり、レート制限あり | 無制限のURL、自分の帯域幅 |
| 自動化 | 手動のみ | コマンドライン、.bat、タスクスケジューラ、ActiveX |
| サーバー展開 | 不可 | サーバー向け設計、GUI不要 |
| インターネット必要 | はい | いいえ(リモートURL取得時を除く) |
コンバーターは独自のレンダリングエンジンでHTMLとCSSを解析します。サーバーにChrome、Firefox、その他のブラウザをインストールする必要はありません。ブラウザのアップデート問題を排除し、サーバーのフットプリントを削減し、ヘッドレスブラウザ自動化の不安定さを回避します。
Total HTML Converter Xは無人運用向けに設計されています。GUIウィンドウ、ダイアログボックス、確認プロンプトはありません。コマンドラインから、またはサービスの一部としてサイレントに実行されます。本番サーバーに必要なものそのものです。
画質、寸法、複数ページ出力の結合の有無を設定できます。同一の入力に対して同一の結果を毎回生成します。バージョンドリフトもなく、Chromeのアップデートでレンダリングが変わる驚きもありません。
同じコマンドラインツールでHTMLをPDF、DOC、XLS、TIFF、JPG、RTF、TXTなどに変換できます。1回のインストールですべてのHTML変換ニーズに対応します。-c JPEGを-c PDFや-c TIFFに変えるだけで、同じバッチ機能と自動化機能で代替出力が得られます。
(30日間、メールやクレジットカード不要)
(サーバーライセンス、永続版)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"1年ほど前にPuppeteerベースのスクリーンショットパイプラインをTotal HTML Converter Xに置き換えました。Puppeteerの構成はChromeのアップデートのたびに面倒を見る必要があり、ワーカーごとに約400 MBのRAMを消費していました。CoolUtilsのコマンドラインはリソース消費がごく一部で、アップデートで壊れることもなく、一貫したJPG出力を生成します。一晩で約40,000の商品ページをレンダリングしていますが、1件の失敗もありません。"
Marek Dvorak Senior Backend Engineer
"規制当局からWebページをタイムスタンプ付きの画像スナップショットでアーカイブするよう求められています。CSVからURLリストを引いてHTMLConverter.exeを各URLに対して実行し、出力JPGに日付名を付ける小さな.batスクリプトを書きました。Windows Server 2019上で動作し、CPUは数パーセントしか使わず、いつ実行しても綺麗で同じ見た目のスクリーンショットを生成します。"
Janelle Foster Compliance Manager
"PHPイントラネットにActiveXインターフェースを統合して、HTMLレポートページをJPGプレビューとしてレンダリングしました。COM呼び出しは10行程度のコードで済みました。JPEG 90%の出力品質は素晴らしく、寸法フラグでサムネイルグリッドにぴったり合わせられます。Linuxビルドがあれば嬉しいですが、Windowsバックエンドではこちらの要件をきっちり満たしてくれます。"
Rohan Mehta Full-Stack Developer
HTMLConverter.exe C:\Pages\*.html C:\Output\ -c JPEGです。これでソースフォルダ内のすべてのHTMLファイルが同じベース名のJPGにレンダリングされます。-ImgQuality、-ImgWidth、-combineを追加して出力を制御できます。-ImgQualityフラグは1(最小、ブロック状)から100(最高画質、最大ファイル)までの値を受け付けます。85から92の間がWeb用途では一般的な最適範囲です。-ImgWidthと-ImgHeightのいずれかまたは両方で出力寸法をピクセル単位で指定できます。コンバーターはレンダリングしたページをレイアウトを保ったまま指定サイズに合わせてスケーリングします。HTMLConverter.exe https://example.com/page C:\Output\page.jpg -c JPEG。コンバーターはページ(リモートのスタイルシートや画像を含む)を取得し、結果をJPGとしてレンダリングします。HTMLConverter.HTMLConverterX)として登録されます。.NET、PHP、Python、VBScript、ASP、Ruby、Perl、その他のCOM互換環境から呼び出せます。-combineフラグを追加すると、コンバーターはHTMLドキュメント全体を複数の画像にページ分割せず、1枚の縦長JPGとしてレンダリングします。
string src = @"C:\test\Source.html";
string dest = @"C:\test\Dest.pdf";
var cnv = new HTMLConverterX();
cnv.Convert(src, dest, "-cPDF -log c:\\test\\HTML.log");
if (!string.IsNullOrEmpty(cnv.ErrorMessage))
throw new Exception(cnv.ErrorMessage);
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
StringBuilder sbLogs = new StringBuilder();
sbLogs.AppendLine("started...");
try
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
var assemblyDirectoryPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
assemblyDirectoryPath = assemblyDirectoryPath.Substring(0, assemblyDirectoryPath.Length - 4);
var executablePath = $@"{assemblyDirectoryPath}\Converter\HTMLConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.html";
var outPath = Path.GetTempFileName() + ".pdf";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(srcPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & source files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"\"{srcPath}\" \"{outPath}\" -cPDF";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
sbLogs.AppendLine("Conversion complete.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("HTMLConverter.HTMLConverterX")
C.Convert "c:\source.html", "c:\dest.jpg", "-cJPG -log c:\html.log"
C.Convert "https://www.coolutils.com/", "c:\URL Page.pdf", "-cPDF -log c:\html.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("HTMLConverter.HTMLConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=test.pdf"
Response.BinaryWrite C.ConvertToStream("C:\www\ASP\Source.html", "C:\www\ASP", "-cpdf -log c:\html.log")
set C = nothing
$src="C:\\test\\test.html";
$dest="C:\\test\\test.pdf";
if (file_exists($dest)) unlink($dest);
$c= new COM("HTMLConverter.HTMLConverterX");
$c->convert($src,$dest, "-cPDF -log c:\\HTML.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('HTMLConverter.HTMLConverterX')
src = "C:\\test\\test.html"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\HTML.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("HTMLConverter.HTMLConverterX")
src = "C:\\test\\test.html"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\HTML.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('HTMLConverter.HTMLConverterX');
c.Convert('c:\test\source.html', 'c:\test\dest.pdf', '-cPDF -log c:\test\HTML.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("HTMLConverter.HTMLConverterX");
c.Convert("C:\\test\\source.html", "C:\\test\\dest.pdf", "-cPDF");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.html"; my $dest = "C:\\test\\test.pdf"; my $c = CreateObject Win32::OLE 'HTMLConverter.HTMLConverterX'; $c->convert($src, $dest, "-cPDF -log c:\\test\\HTML.log"); print $c->ErrorMessage if -e $dest;
無料トライアルをダウンロードして、ファイルを数分で変換。
クレジットカードもメールアドレスも不要。