Masz foldery z plikami HTM lub HTML — zeskrobane strony, zarchiwizowane biuletyny, eksportowane pliki pomocy, migawki intranetu — oraz potok następujący po nim, który potrzebuje czytelnego tekstu bez znaczników. Indeksery wyszukiwania nie chcą szumu <div>. Tokenizatory NLP dławią się skryptami inline. Recenzja prawna chce prozy, a nie CSS. Total HTML Converter X usuwa znaczniki HTM i zapisuje czysty tekst Unicode z wiersza poleceń, wsadowo, bez GUI i bez silnika przeglądarki. Zainstaluj go na serwerze Windows, wywołaj ze skryptu lub przez ActiveX i pozwól mu zasilać Twój indekser, model lub archiwum.
*.htm), a konwerter przejdzie każdy pasujący plik w jednym przebiegu
(30 dni, bez e-maila)
(licencja serwerowa, wieczysta)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
HTM (i HTML) to język znaczników przeznaczony dla przeglądarek. Plik miesza prozę ze znacznikami, atrybutami, stylami inline, JavaScript i odwołaniami do zewnętrznych zasobów. Indekser wyszukiwania, który połyka surowe HTM, kończy ocenianiem bloków <script> i nazw klas CSS razem z rzeczywistą treścią. Tokenizator LLM marnuje kontekst na szum. Grep po archiwum HTM zwraca dopasowania wewnątrz atrybutów, a nie w tekście.
TXT Unicode to zwykły tekst w UTF-8 lub UTF-16. Brak znaczników, brak markupu, brak formatowania — tylko czytelne znaki dokumentu. Każda wyszukiwarka, zestaw narzędzi NLP, analizator logów i narzędzie archiwizujące konsumuje go bez wstępnego przetwarzania. Konwersja jest stratna z założenia: obrazy, układ i style znikają. Pozostaje zawartość tekstowa, w prawidłowym porządku logicznym, z nienaruszonym oryginalnym zestawem znaków.
| HTM | TXT Unicode | |
|---|---|---|
| Zawartość | Znaczniki, skrypty, style, proza | Tylko proza |
| Szum indeksowalny | Wysoki (znaczniki, klasy, skrypty) | Żaden |
| Kodowanie | Deklarowane w <meta>, często niespójne | Jawne UTF-8 lub UTF-16 |
| Gotowe dla tokenizatora | Najpierw potrzebuje parsera | Tak, natychmiast |
| Przyjazne dla grep / awk | Słabe (dopasowania w znacznikach) | Doskonałe |
| Odbiorcy | Przeglądarki | Wyszukiwanie, NLP, analityka, archiwa |
Pobierz instalator z linku powyżej i uruchom go na serwerze lub stacji roboczej Windows. Instalacja trwa mniej niż minutę. Nie wymaga przeglądarki, Microsoft Office ani środowiska Java — konwerter parsuje HTM własnym silnikiem i zapisuje tekst Unicode bezpośrednio.
Otwórz cmd.exe lub PowerShell. Plik wykonywalny konwertera to HTMLConverter.exe, znajdujący się w folderze instalacyjnym (zwykle C:\Program Files\CoolUtils\TotalHTMLConverterX\). Dodaj go do systemowej zmiennej PATH lub używaj pełnej ścieżki w poleceniach.
Najprostsze polecenie usuwa znaczniki z każdego pliku HTM w folderze i zapisuje tekst UTF-8:
HTMLConverter.exe C:\Pages\*.htm C:\Output\ -c TXT -Encoding UTF-8
Przetwarza każdy plik .htm w folderze C:\Pages\ i zapisuje wynikowe pliki .txt w C:\Output\. Każdy HTM tworzy jeden TXT o tej samej nazwie bazowej z tekstem w UTF-8.
Dostosuj wyjście do konsumenta tekstu:
HTMLConverter.exe C:\Pages\*.htm C:\Output\ -c TXT -Encoding UTF-16 -BOM 1 -log C:\Logs\htm2txt.log
-Encoding UTF-8 — domyślne; działa dla większości potoków wyszukiwania i NLP-Encoding UTF-16 — przydatne dla starszych narzędzi Windows oczekujących szerokich znaków-BOM 1 lub -BOM 0 — zapisz lub pomiń znacznik kolejności bajtów; wiele indekserów preferuje brak BOM-log C:\Logs\htm2txt.log — rejestruj każdy przetworzony plik i ostrzeżenia o parsowaniuZapisz polecenie w pliku .bat i zaplanuj je za pomocą Harmonogramu zadań systemu 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
Uruchamia się co noc (lub z dowolną częstotliwością) i zrzuca tekst UTF-8 do folderu archiwum gotowy do podjęcia przez indekser wyszukiwania, zadanie NLP lub audyt oparty na grep.
Total HTML Converter X rejestruje się jako pełny obiekt ActiveX. Możesz go wywoływać z dowolnego środowiska zgodnego z COM — .NET, VBScript, PHP, Python, Ruby lub ASP. Pozwala to osadzić ekstrakcję HTM do tekstu Unicode we własnej usłudze pobierania, portalu intranetowym lub potoku NLP bez uruchamiania osobnego procesu z wiersza poleceń.
Przykład (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");
Przykład (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");
To samo wywołanie działa z ASP.NET, VBScript, Python, Ruby, Perl i JavaScript (Windows Script Host). Twoja usługa może przyjmować przesyłane HTM i zwracać czysty tekst Unicode wywołującemu w tym samym żądaniu.
| Funkcja | Konwertery online | Total HTML Converter X |
|---|---|---|
| Przetwarzanie wsadowe | Jeden plik naraz | Nieograniczona liczba plików na partię |
| Prywatność plików | Pliki wysyłane na serwer zewnętrzny | Pliki nigdy nie opuszczają Twojego komputera |
| Kontrola kodowania | Zwykle tylko UTF-8 | UTF-8, UTF-16 LE/BE, przełącznik BOM |
| Pisma niezłacińskie | Niespójne (mojibake na CJK, arabskim) | Pełne pokrycie Unicode, zachowane BIDI |
| Automatyzacja | Tylko ręcznie | Wiersz poleceń, .bat, Harmonogram zadań, ActiveX |
| Wdrożenie na serwerze | Niemożliwe | Zaprojektowany dla serwerów, bez GUI |
| Przepustowość | Ograniczona prędkością przesyłania | Lokalne I/O, tysiące plików na godzinę |
| Wymaga internetu | Tak | Nie |
class i łańcuchów JavaScript. Grep po wyodrębnionych TXT zwraca tylko dopasowania w rzeczywistej prozie — odpowiedź, której chce audytor.Wyjście to uczciwe UTF-8 lub UTF-16. Cyrylica pozostaje cyrylicą, CJK pozostaje CJK, arabski i hebrajski zachowują swoje znaki w porządku logicznym. Brak transliteracji, brak gubienia znaków, brak zastępowania znakami zapytania — co było czytelne w HTM, pozostaje czytelne w TXT.
Total HTML Converter X jest zbudowany do pracy bez nadzoru. Żadnych okien GUI, okien dialogowych ani monitów potwierdzenia. Działa cicho z wiersza poleceń lub jako część usługi — dokładnie tego, czego potrzebuje zadanie indeksujące, potok NLP lub pracownik archiwum.
Wyszukiwarki, zestawy narzędzi NLP i starsze systemy oczekują różnych sekwencji bajtów. Konwerter wystawia kodowanie i BOM jako flagi wiersza poleceń, dzięki czemu zapisujesz UTF-8 bez BOM dla Elasticsearch, UTF-16 LE z BOM dla narzędzia tylko dla Windows i UTF-8 z BOM dla recenzenta korzystającego z Notatnika — z tej samej instalacji.
To samo narzędzie wiersza poleceń konwertuje HTM do PDF, DOC, XLS, TIFF, JPEG, RTF i wielu innych formatów. Jedna instalacja pokrywa każdą potrzebę ekstrakcji HTM na serwerze. Zmień -c TXT na -c PDF, a otrzymasz archiwalne wyjście PDF z tymi samymi funkcjami wsadowymi i automatyzacji.
(30 dni, bez e-maila i karty kredytowej)
(licencja serwerowa, wieczysta)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
HTMLConverter.exe C:\Pages\*.htm C:\Output\ -c TXT -Encoding UTF-8. Usuwa znaczniki z każdego pliku HTM i zapisuje czysty tekst UTF-8. Dodaj -Encoding UTF-16, -BOM 0 lub -log, aby kontrolować wyjście.-Encoding UTF-8 dla indekserów wyszukiwania i potoków NLP, -Encoding UTF-16 dla starszych narzędzi Windows oczekujących szerokich znaków. Domyślnie jest UTF-8 bez BOM, co odpowiada Elasticsearch, Solr i większości nowoczesnych konsumentów.-BOM 1 zapisuje BOM na początku każdego pliku (EF BB BF dla UTF-8, FF FE dla UTF-16 LE). -BOM 0 go pomija. Większość łańcuchów narzędzi wyszukiwania i NLP preferuje brak BOM; niektóre przeglądarki tylko dla Windows i narzędzia importu zbiorczego SQL go wymagają.<script>, <style> i komentarze HTML są usuwane przed zapisaniem tekstu. Wyjście zawiera tylko czytelną treść ciała — to, co człowiek widziałby w przeglądarce, minus układ. Dokładnie tego chce indekser wyszukiwania lub tokenizator LLM.HTMLConverter.HTMLConverterX). Wywołuj go z .NET, PHP, Python, VBScript, ASP, Ruby lub Perl. Twoja usługa przyjmuje przesyłany HTM i zwraca tekst Unicode w tym samym żądaniu, bez konieczności uruchamiania wiersza poleceń.
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;
Pobierz wersję próbną i konwertuj pliki w kilka minut.
Nie jest wymagana karta kredytowa ani e-mail.