Convert any file (PDF, DOC, XLS, HTML, TXT, MSG, EML, images and 30+ formats) to PDF, DOC, TIFF, XPS on Windows servers — one binary, no external runtimes.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016 / 2019/2022 Server
and
Docker / Citrix / Wine
Coolutils Converter X is a universal server-side SDK that takes 30+ input file types — PDF, DOCX, XLSX, HTML, MHT, EML, MSG, TXT, RTF, EPS, XPS, PCL, images, and more — and produces PDF, DOC, TIFF, or XPS output. One binary replaces a stack of format-specific libraries; no Microsoft Office, Adobe Acrobat, Outlook, or other external runtimes required on the server. It runs silent: no GUI, no dialogs, no popups. Coolutils Converter X ships with both a command-line binary and an ActiveX/COM interface, so it drops into ASP, PHP, .NET, Python, Ruby, Java, and any other COM-aware backend.
Full input format coverage:
Output formats: PDF (with AES-256 encryption, password protection, per-permission flags, X.509 digital signatures, PDF/A archival profile), DOC, TIFF (single or multi-page), XPS. Bates-style stamping, custom headers/footers (date, page count, confidentiality stamps, company logo), and watermarks apply uniformly across every input format — the same flags work whether the source is a DOCX, an EML, a JPEG, or an HTML page.
Multi-user friendly: install once on your Windows server and expose conversion as a service to your entire network or as a web endpoint to external customers. Multithreaded engine processes batches at maximum speed. Compatible with IIS, Docker, Citrix, and Wine.
Coolutils Converter X is the right pick when your application accepts arbitrary user uploads — you don't have to maintain a separate codepath for every format. One Convert(src, dest, params) call handles the lot. Try it for free (30 days trial period, no limitations) and find out that it is really worth its money.
Some of the currently supported input-to-output combinations:
|
|
|
(includes 30 day FREE trial)
(only $2400.00)
string src = @"C:\test\Source.docx";
string dest = @"C:\test\Dest.pdf";
var cnv = new CoolConverterX();
cnv.Convert(src, dest, "-cPDF -log c:\\test\\Cool.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\CoolConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.docx";
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("CoolConverter.CoolConverterX")
C.Convert "c:\test\source.docx", "c:\test\dest.pdf", "-cPDF -log c:\Cool.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("CoolConverter.CoolConverterX")
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.docx", "C:\www\ASP", "-cpdf -log c:\Cool.log")
set C = nothing
$src="C:\\test\\test.docx";
$dest="C:\\test\\test.pdf";
if (file_exists($dest)) unlink($dest);
$c= new COM("CoolConverter.CoolConverterX");
$c->convert($src,$dest, "-cPDF -log c:\\Cool.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('CoolConverter.CoolConverterX')
src = "C:\\test\\test.docx"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\Cool.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("CoolConverter.CoolConverterX")
src = "C:\\test\\test.docx"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\Cool.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('CoolConverter.CoolConverterX');
c.Convert('c:\test\source.docx', 'c:\test\dest.pdf', '-cPDF -log c:\test\Cool.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("CoolConverter.CoolConverterX");
c.Convert("C:\\test\\source.docx", "C:\\test\\dest.pdf", "-cPDF");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.docx"; my $dest = "C:\\test\\test.pdf"; my $c = CreateObject Win32::OLE 'CoolConverter.CoolConverterX'; $c->convert($src, $dest, "-cPDF -log c:\\test\\Cool.log"); print $c->ErrorMessage if -e $dest;
"Thank you for Coolutils Converter X. It handles large bulk jobs on our server and we are happy with the performance."
Ji Prasertcharoensuk
IT Lead
"I use Coolutils Converter X to convert PDF, DOC, and JPG scans into PDF/A for our electronic document system. From the customer's standpoint it's pretty intuitive."
Tom Cioni
GammaView LLC
"Customers upload arbitrary files: DOCX, XLSX, MSG, JPEG, HTML scrapes, even PCL print spool. We need one PDF per upload regardless of source format. Coolutils Converter X is the one binary that handles every type with the same Convert() call. We replaced a stack of three Aspose libraries plus an Office-Interop fallback. Five years in production, throughput around 8,000 mixed-type files per hour on our hardware."
Maxim G.
Senior Backend Developer at a document-management SaaS
"We archive customer correspondence in mixed formats: emails as MSG, contracts as DOCX, scans as TIFF, web printouts as MHT. Everything has to land in our DMS as digitally-signed PDF/A. -pdfa plus -PFXFile/-PFXPass works uniformly across every input format, which means our pipeline is one binary call regardless of source. Headless on Windows Server Core, no Office, no Acrobat, no surprises."
Bridget T.
DevOps Engineer at a regulatory-archive provider
"Bundled Coolutils Converter X into our intake-portal product under the Royalty-Free License. The one-time per-project fee was a fraction of what licensing five separate Aspose products would have cost. Our installer ships and registers the ActiveX, our app calls it directly, end users see only our UI. The 32-bit ActiveX limitation cost us a couple of days of pipeline rework, but support was responsive when we asked about workarounds."
Henrique A.
Independent Software Vendor
Coolutils Converter X ships with CoolUtilsConverterX.exe, a console binary you can drive from scripts, scheduled tasks, CI runners, or any backend service. Output formats are PDF, TIFF, DOC, and XPS; input is auto-detected across the formats supported by the GUI. The recipes below cover the cases we hear about most often from SDK customers.
The smallest possible call — one source, one destination, one target format.
CoolUtilsConverterX.exe "C:\inbox\report.docx" "C:\out\report.pdf" -cPDF
Process every matching file in a folder. The mask can mix formats — CoolutilsConverterX accepts the full input list, so a single run can swallow Word, HTML, RTF, image, and email files together.
CoolUtilsConverterX.exe "C:\inbox\*.*" "C:\out\" -cPDF
Upload pipelines often hand you files with wrong or missing extensions. -filesig tells the converter to look at the file header instead of the name.
CoolUtilsConverterX.exe "C:\uploads\*.*" "C:\out\" -cPDF -filesig
On a multi-core box, parallelise the queue. -threads 0 picks the optimal thread count automatically; specify a number to cap it.
CoolUtilsConverterX.exe "C:\inbox\*.*" "C:\out\" -cPDF -threads 0
Combine with -IgnoreInvalidSource if you'd rather skip a bad file than abort the whole run.
The standard backend pattern: a watcher drops files into inbox, the converter clears it, processed files land in done, files it couldn't handle land in quarantine for review.
CoolUtilsConverterX.exe "C:\inbox\*.*" "C:\out\" -cPDF -msuccess "C:\done" -merror "C:\quarantine" -threads 0
-combine merges every input into a single PDF; -dco TOC generates a clickable table of contents from the source filenames.
CoolUtilsConverterX.exe "C:\reports\*.*" "C:\out\compendium.pdf" -cPDF -combine -dco TOC
Add -dco EveryFileNewPage to ensure each source starts on a fresh page.
For email attachment caps or storage tiers, set a size ceiling and the converter will produce as many sequential PDFs as needed.
CoolUtilsConverterX.exe "C:\reports\*.*" "C:\out\bundle.pdf" -cPDF -combine -pdflimit 10485760
The number is bytes — 10485760 is 10 MB. Output filenames get auto-incremented.
For records-management workflows requiring ISO 19005-compliant PDF/A. -pdfaver 2u targets PDF/A-2u; supported variants are 1b, 2b, 2u, 3b, 3u.
CoolUtilsConverterX.exe "C:\inbox\*.*" "C:\archive\" -cPDF -pdfa -pdfaver 2u -PDFAuthor "Acme Corp" -PDFTitle "Q3 Records" -PDFSubject "Records retention 2026" -FontEmbedding Full
Standard for sending sensitive documents to third parties: an owner password locks editing/printing rights, a user password gates opening the file, and AES-256 encryption replaces the legacy RC4 default.
CoolUtilsConverterX.exe "C:\inbox\*.*" "C:\out\" -cPDF -mp "owner-pwd" -up "user-pwd" -perm Print -perm Copy -EncryptStrength es256AES
Pass -perm multiple times to grant a combination of Print, Copy, Modify, Annotation, FormFill, HighResPrint.
The destination accepts <DATE> and <TIME> macros, so each run writes to its own bucket without scripting on top.
CoolUtilsConverterX.exe "C:\inbox\*.*" "C:\out\<DATE>_<TIME:hhmm>\" -cPDF -log "C:\logs\cucx.log" -verbosity detail -logmode append
For repeatable parameter sets across cron jobs, lift the flags into a config file and pass -optionfile "C:\configs\nightly.opt" instead.
Updated Fri, 01 May 2026
(only $2400.00)
new COM("CoolConverter.CoolConverterX") in PHP, new CoolConverterX() in .NET, win32com.client.Dispatch("CoolConverter.CoolConverterX") in Python, WIN32OLE.new('CoolConverter.CoolConverterX') in Ruby. Alternatively, the CoolConverterX.exe command-line binary can be invoked from any process, scheduler, or shell script. Direct streaming via ConvertToStream is also available for ASP/PHP web responses.-pdfa enables ISO 19005 (PDF/A) compliance. -PFXFile "C:\certs\acme.pfx" -PFXPass "cert-pwd" -SignLoc -SignCon -SignRes attaches an X.509 digital signature with metadata. Watermarks (text or image) are added with -WatermarkText or -WatermarkImage; Bates header/footer stamping with -HeadText/-FootText using [page], [date], [time] placeholders. Same flags work for any input format.CoolConverterX.exe "C:\inbox\*.*" "C:\out\" -cPDF. The converter detects each file's format from its extension and content, applies the right parser, and produces uniform PDF output. -Recurse walks subdirectories, -kfs mirrors folder structure on output, -list "queue.txt" reads a queue file, and -msuccess/-merror route processed and failed sources into separate folders for unattended worker pipelines.Updated Fri, 01 May 2026
(only $2400.00)
Download free trial and convert your files in minutes.
No credit card or email required.