У вас есть папки с HTM- или HTML-файлами — собранные страницы, архивные бюллетени, выгруженные файлы справки, снимки интранета — и дальнейший пайплайн, которому нужен читаемый текст без какой-либо разметки. Поисковым индексаторам не нужен шум <div>. Токенизаторы NLP давятся встроенными скриптами. Юристам при проверке нужна проза, а не CSS. Total HTML Converter X удаляет HTM-разметку и пишет чистый Unicode-текст из командной строки, пакетно, без графического интерфейса и без браузерного движка. Установите его на сервер Windows, вызывайте из скрипта или через ActiveX, и пусть он питает ваш индексатор, вашу модель или ваш архив.
*.htm), и конвертер пройдёт по всем подходящим файлам за один запуск
(30 дней, без email)
(серверная лицензия, бессрочная)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
HTM (и HTML) — это язык разметки, предназначенный для браузеров. Файл смешивает прозу с тегами, атрибутами, инлайновыми стилями, JavaScript и ссылками на внешние ресурсы. Поисковый индексатор, проглатывающий сырой HTM, в итоге оценивает блоки <script> и имена CSS-классов наравне с реальным контентом. Токенизатор LLM расходует контекст на шум. Grep по HTM-архиву возвращает совпадения внутри атрибутов, а не в тексте тела.
Unicode TXT — это чистый текст в UTF-8 или UTF-16. Никаких тегов, никакой разметки, никакого форматирования — только читаемые символы документа. Любой поисковый движок, NLP-инструментарий, анализатор логов и архивная утилита потребляет его без предобработки. Конвертация задумана как lossy: изображения, макет и стили исчезают. Остаётся текстовое содержимое в правильном логическом порядке, с сохранённой исходной кодировкой.
| HTM | Unicode TXT | |
|---|---|---|
| Содержимое | Разметка, скрипты, стили, проза | Только проза |
| Шум при индексации | Высокий (теги, классы, скрипты) | Отсутствует |
| Кодировка | Объявлена в <meta>, часто непоследовательно | Явная UTF-8 или UTF-16 |
| Готовность к токенизации | Сначала нужен парсер | Да, сразу |
| Удобство для grep / awk | Плохое (совпадения внутри тегов) | Отличное |
| Аудитория | Браузеры | Поиск, NLP, аналитика, архивы |
Скачайте установщик по ссылке выше и запустите его на вашем сервере или рабочей станции Windows. Установка занимает меньше минуты. Браузер, Microsoft Office или среда выполнения Java не требуются — конвертер разбирает HTM собственным движком и пишет Unicode-текст напрямую.
Откройте cmd.exe или PowerShell. Исполняемый файл конвертера — HTMLConverter.exe, расположенный в папке установки (обычно C:\Program Files\CoolUtils\TotalHTMLConverterX\). Добавьте его в системную переменную PATH или используйте полный путь в командах.
Простейшая команда удаляет разметку из каждого HTM-файла в папке и пишет UTF-8 текст:
HTMLConverter.exe C:\Pages\*.htm C:\Output\ -c TXT -Encoding UTF-8
Эта команда обрабатывает каждый файл .htm в папке C:\Pages\ и сохраняет полученные файлы .txt в C:\Output\. Каждый HTM создаёт один TXT с тем же базовым именем и текстом тела в UTF-8.
Настройте вывод под потребителя текста:
HTMLConverter.exe C:\Pages\*.htm C:\Output\ -c TXT -Encoding UTF-16 -BOM 1 -log C:\Logs\htm2txt.log
-Encoding UTF-8 — по умолчанию; работает для большинства поисковых и NLP-пайплайнов-Encoding UTF-16 — полезно для устаревшего инструментария Windows, ожидающего широкие символы-BOM 1 или -BOM 0 — записать или пропустить метку порядка байтов; многие индексаторы предпочитают без BOM-log C:\Logs\htm2txt.log — записывать каждый обработанный файл и любые предупреждения парсераСохраните команду в файле .bat и запланируйте его через Планировщик задач Windows:
@echo off "C:\Program Files\CoolUtils\TotalHTMLConverterX\HTMLConverter.exe" C:\Incoming\*.htm C:\Archive\TXT\ -c TXT -Encoding UTF-8 -BOM 0 -log C:\Logs\htm2txt.log
Эта команда запускается каждую ночь (или с любым заданным интервалом) и кладёт UTF-8 текст в архивную папку, готовую к подхвату поисковым индексатором, NLP-задачей или grep-проверкой.
Total HTML Converter X регистрируется как полноценный объект ActiveX. Вы можете вызывать его из любой COM-совместимой среды — .NET, VBScript, PHP, Python, Ruby или ASP. Это позволяет встроить извлечение Unicode-текста из HTM в ваш сервис загрузки данных, интранет-портал или NLP-пайплайн без запуска командной строки.
Пример (C#/.NET):
HTMLConverterX Cnv = new HTMLConverterX();
Cnv.Convert("C:\\Pages\\report.htm", "C:\\Output\\report.txt", "-c TXT -Encoding UTF-8 -BOM 0 -log c:\\Logs\\htm.log");
Пример (PHP):
$c = new COM("HTMLConverter.HTMLConverterX");
$c->convert("C:\\Pages\\report.htm", "C:\\Output\\report.txt", "-c TXT -Encoding UTF-8 -BOM 0 -log c:\\Logs\\htm.log");
Тот же вызов работает из ASP.NET, VBScript, Python, Ruby, Perl и JavaScript (Windows Script Host). Ваш сервис может принимать загруженный HTM и возвращать чистый Unicode-текст вызывающей стороне в том же запросе.
| Функция | Онлайн-конвертеры | Total HTML Converter X |
|---|---|---|
| Пакетная обработка | По одному файлу за раз | Неограниченное количество файлов за раз |
| Конфиденциальность файлов | Файлы загружаются на сторонний сервер | Файлы не покидают ваш компьютер |
| Управление кодировкой | Обычно только UTF-8 | UTF-8, UTF-16 LE/BE, переключение BOM |
| Не-латинские письменности | Непоследовательно (моджибаке на CJK, арабском) | Полное покрытие Unicode, BIDI сохранён |
| Автоматизация | Только вручную | Командная строка, .bat, Планировщик задач, ActiveX |
| Серверное развёртывание | Невозможно | Разработан для серверов, GUI не требуется |
| Пропускная способность | Ограничена скоростью загрузки | Локальный ввод-вывод, тысячи файлов в час |
| Требуется интернет | Да | Нет |
class и JavaScript-строк. Grep по извлечённым TXT возвращает только совпадения в реальном тексте — именно тот ответ, который нужен аудитору.Вывод — это честный UTF-8 или UTF-16. Кириллица остаётся кириллицей, CJK остаётся CJK, арабский и иврит сохраняют свои символы в логическом порядке. Никакой транслитерации, никакого выкидывания символов, никакой замены на знак вопроса — что было читаемо в HTM, остаётся читаемым в TXT.
Total HTML Converter X создан для автоматической работы. Никаких окон GUI, диалоговых окон, запросов подтверждения. Он работает тихо из командной строки или как часть сервиса — именно то, что нужно индексирующей задаче, NLP-пайплайну или архивному воркеру.
Поисковые движки, NLP-инструментарии и устаревшие системы — каждый ожидает свои последовательности байтов. Конвертер выставляет кодировку и BOM как флаги командной строки, поэтому вы пишете UTF-8 без BOM для Elasticsearch, UTF-16 LE с BOM для инструмента только под Windows и UTF-8 с BOM для рецензента, работающего в Notepad — из одной установки.
Тот же инструмент командной строки конвертирует HTM в PDF, DOC, XLS, TIFF, JPEG, RTF и другие форматы. Одна установка покрывает все потребности извлечения из HTM на сервере. Замените -c TXT на -c PDF, и вы получите архивный PDF на выходе с теми же функциями пакетной обработки и автоматизации.
(30 дней, без email и кредитной карты)
(серверная лицензия, бессрочная)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
HTMLConverter.exe C:\Pages\*.htm C:\Output\ -c TXT -Encoding UTF-8. Она удаляет разметку из каждого HTM-файла и пишет чистый UTF-8 текст. Добавьте -Encoding UTF-16, -BOM 0 или -log для управления выходным файлом.-Encoding UTF-8 для поисковых индексаторов и NLP-пайплайнов, -Encoding UTF-16 для устаревшего инструментария Windows, ожидающего широкие символы. По умолчанию используется UTF-8 без BOM, что подходит Elasticsearch, Solr и большинству современных потребителей.-BOM 1 записывает BOM в начале каждого файла (EF BB BF для UTF-8, FF FE для UTF-16 LE). -BOM 0 пропускает её. Большинство поисковых и NLP-цепочек предпочитают без BOM; некоторые просмотрщики только под Windows и инструменты SQL bulk-import требуют её.<script>, <style> и HTML-комментарии удаляются перед записью текста. Вывод содержит только читаемое содержимое тела — то, что человек увидел бы в браузере, минус макет. Это именно то, что нужно поисковому индексатору или токенизатору LLM.HTMLConverter.HTMLConverterX). Вызывайте его из .NET, PHP, Python, VBScript, ASP, Ruby или Perl. Ваш сервис принимает загруженный HTM и возвращает Unicode-текст в том же запросе, без необходимости запускать командную строку.
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;
Скачайте пробную версию и конвертируйте файлы за считанные минуты.
Не требуется ни банковская карта, ни email.

Связанные темы
Конвертация HTML в PDF через командную строку — серверный пакетный конвертер