لديك مجلدات من ملفات HTM أو HTML — صفحات مسحوبة، نشرات مؤرشفة، ملفات مساعدة مُصدَّرة، لقطات إنترانت — وخط أنابيب تابع يحتاج النص القابل للقراءة دون أي ترميز. لا تريد مفهرسات البحث ضوضاء <div>. تختنق محلِّلات NLP من السكربتات المضمّنة. تريد المراجعة القانونية النثر، وليس CSS. Total HTML Converter X يجرِّد ترميز HTM ويكتب نص Unicode نظيفًا من سطر الأوامر، دفعةً، بدون واجهة رسومية وبدون محرّك متصفح. ثبّته على خادم Windows، استدعِه من سكربت أو عبر ActiveX، ودعه يُغذّي مفهرسك أو نموذجك أو أرشيفك.
*.htm) وسيمشي المحوّل عبر كل الملفات المطابقة في تشغيلة واحدة
(30 يومًا، بدون بريد إلكتروني)
(ترخيص خادم، دائم)
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 ومحلّل سجلات وأداة أرشفة يستهلكه دون معالجة مسبقة. التحويل ضائع بالتصميم: الصور والتخطيط والأنماط تختفي. ما يبقى هو محتوى النص، بترتيب منطقي صحيح، مع مجموعة الأحرف الأصلية سليمة.
| 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 Task Scheduler:
@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. يتيح لك ذلك دمج استخراج النص من HTM إلى Unicode في خدمة الاستيعاب الخاصة بك أو بوابة الإنترانت أو خط أنابيب 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 |
| الكتابات غير اللاتينية | غير متّسق (mojibake على CJK والعربية) | تغطية Unicode كاملة، يُحافظ على BIDI |
| الأتمتة | يدوي فقط | سطر الأوامر، .bat، Task Scheduler، ActiveX |
| النشر على الخادم | غير ممكن | مصمّم للخوادم، لا حاجة لواجهة رسومية |
| الإنتاجية | محدودة بسرعة الرفع | إدخال/إخراج محلي، آلاف الملفات في الساعة |
| يتطلب إنترنت | نعم | لا |
class وسلاسل JavaScript. grep على TXT المُستخرَج يُعيد فقط تطابقات في النثر الفعلي — الإجابة التي يريدها المدقّق.الإخراج هو UTF-8 أو UTF-16 صادق. تبقى السيريلية سيريلية، وCJK تبقى CJK، وتحافظ العربية والعبرية على أحرفها بترتيب منطقي. لا يوجد كتابة بحروف لاتينية، ولا إسقاط أحرف، ولا استبدال بعلامة استفهام — ما كان قابلًا للقراءة في HTM يبقى قابلًا للقراءة في TXT.
صُمِّم Total HTML Converter X للاستخدام دون إشراف. لا نوافذ واجهة رسومية، لا مربعات حوار، لا مطالبات تأكيد. يعمل بصمت من سطر الأوامر أو كجزء من خدمة — تمامًا ما تحتاجه مهمة الفهرسة أو خط أنابيب 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 يومًا، بدون بريد إلكتروني أو بطاقة ائتمان)
(ترخيص خادم، دائم)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"كنّا نحرق رموز السياق على وسوم HTM الخام قبل أن يرى نموذج التضمين لدينا النص الفعلي. يُسقط Total HTML Converter X UTF-8 نظيفًا في حاوية الاستيعاب الخاصة بنا كل ساعة. تنجو صفحات السيريلية والديفاناغاري سليمة، تخرج تتابعات BIDI بترتيب منطقي، ومُحلِّلنا سعيد. انخفض الـperplexity على نفس النص بمجرد أن توقّفنا عن تغذيته بالترميز."
Priya Krishnamurthy NLP Engineer, Conversational AI Startup
"تفهرس مجموعة Elasticsearch لدينا 2.3 مليون نشرة HTM مؤرشفة عبر تسع لغات. خفّض الاستخراج المسبق لـUTF-8 خالص بهذا المحوّل حجم الفهرس بنحو أربعين بالمئة وجعل استعلامات العبارات تُرجع فعلًا نتائج ذات صلة بدلًا من أسماء فئات CSS. إعداد .bat مع Task Scheduler يعمل دون إشراف على جهاز Server 2019 ولم يفشل ولو مرة واحدة في ستة أشهر."
Stefan Holzer Search Architect, EU Public Sector Portal
"نحتفظ بنسخ HTM من الاتصالات الموجّهة للعملاء لأغراض الحفظ القانوني. احتاج المراجعون إلى نسخ نصية صديقة لـgrep لعمليات المسح بالكلمات المفتاحية. يُنتج المحوّل UTF-8 بدون BOM تمامًا بالطريقة التي تتوقّعها منصة الاكتشاف الإلكتروني لدينا، وملف السجل مفصّل بما يكفي لإرضاء مسار التدقيق لدينا. يمكن أن تكون الوثائق حول علامة BOM أوضح، لكن الدعم وضّحها في نفس اليوم الذي سألنا فيه."
Margaret Whitlock Compliance Lead, Insurance Holding Group
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.<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;
قم بتنزيل النسخة التجريبية المجانية وحول ملفاتك في دقائق.
لا تحتاج إلى بطاقة ائتمان أو بريد إلكتروني.