TotalPDFPrinterX: Optimice sus tareas de impresión con el Servidor de Impresión por Lote de PDF potenciado por ActiveX.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total PDF Printer X es un SDK del lado del servidor que imprime archivos PDF por lotes en impresoras físicas o de red en servidores Windows — de forma headless, sin abrir Acrobat, Foxit ni ningún visor de PDF en la cadena de impresión. Funciona en silencio: sin interfaz gráfica, sin diálogos, sin ventanas emergentes. Total PDF Printer X incluye tanto un binario de línea de comandos como una interfaz ActiveX/COM, por lo que se integra en ASP, PHP, .NET, Python, Ruby, Java y cualquier otro backend compatible con COM. Tenga en cuenta que el argumento de destino es un nombre de impresora, no una ruta de archivo — la salida se envía a impresoras físicas o de red, no al disco.
Total PDF Printer X cubre el escenario completo de impresión en servidor:
-sort)
-rn), múltiples copias (-NumCopy), modos dúplex (-d vertical para borde largo, -d horizontal para borde corto)
-ps A4, Letter, Legal, etc.) y modo de color (-cl monochrome) por trabajo
-list para patrones de trabajadores desatendidos
Despliegue típico: una carpeta de descarga FTP o de exportación de ERP recibe PDFs (facturas, albaranes, etiquetas de envío, expedientes judiciales); Folder Monitor detecta cada archivo nuevo e invoca Total PDF Printer X con un nombre de impresora y banderas; el archivo aparece en papel sin intervención del operador. Decenas de miles de páginas al día por servidor de impresión es lo habitual.
Tenga en cuenta que Total PDF Printer X solo se ejecuta en servidores Windows. Pruébelo gratis (30 días de prueba, sin limitaciones) y compruebe que merece la pena cada céntimo.
(incluye 30 días de prueba GRATUITA)
(solo $450.00)
string src = @"C:\test\test1.pdf";
string printer = "HP LaserJet M404";
var prn = new PDFPrinterX();
prn.Print(src, printer, "-NumCopy 2 -d vertical -ps A4 -log c:\\test\\Printer.log");
if (!string.IsNullOrEmpty(prn.ErrorMessage))
throw new Exception(prn.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}\Printer\PDFPrinterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.pdf";
var printerName = "HP LaserJet M404";
startInfo.FileName = executablePath;
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}\" -p \"{printerName}\"";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
sbLogs.AppendLine("Print job submitted.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("PDFPrinter.PDFPrinterX")
C.Print "c:\test\source.pdf", "HP LaserJet M404", "-NumCopy 2 -ps A4 -log c:\test\PrintPDF.log"
Response.Write C.ErrorMessage
set C = nothing
$src = "C:\\test\\test.pdf";
$printer = "My Printer Name";
$c = new COM("PDFPrinter.PDFPrinterX");
$c->Print($src, $printer, "-ps A4 -NumCopy 2");
if ($c->ErrorMessage == "") echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('PDFPrinter.PDFPrinterX')
src = "C:\\test\\test.pdf"
printer = "HP LaserJet M404"
c.Print(src, printer, "-NumCopy 2 -d vertical -log c:\\test\\PDFPrinter.log")
if c.ErrorMessage != ""
puts c.ErrorMessage
end
import win32com.client
c = win32com.client.Dispatch("PDFPrinter.PDFPrinterX")
src = "C:\\test\\test.pdf"
printer = "HP LaserJet M404"
c.Print(src, printer, "-NumCopy 2 -d vertical -log c:\\test\\PDFPrinter.log")
if c.ErrorMessage:
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('PDFPrinter.PDFPrinterX');
c.Print('c:\test\source.pdf', 'HP LaserJet M404', '-NumCopy 2 -ps A4 -log c:\test\PDFPrinter.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("PDFPrinter.PDFPrinterX");
c.Print("C:\\test\\source.pdf", "HP LaserJet M404", "-NumCopy 2 -ps A4");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test1.pdf"; my $printer = "HP LaserJet M404"; my $c = CreateObject Win32::OLE 'PDFPrinter.PDFPrinterX'; $c->Print($src, $printer, "-NumCopy 2 -log c:\\test\\PDFPrinter.log"); print $c->ErrorMessage if $c->ErrorMessage ne "";
"Scanprint Logistics es un almacén donde guardamos y distribuimos productos para nuestros clientes. Usamos Total PDF Printer X junto con Total Folder Monitor para automatizar la impresión de archivos PDF de nuestros clientes y de nuestro sistema ERP. Los clientes suben archivos PDF (por ejemplo, facturas) a nuestro servidor FTP y entonces Total PDF Printer X los imprime para que podamos incluirlos con la mercancía que enviamos."
Frants Erikstrup
www.scanprint.dk
"Tras instalar la versión de Total PDF Printer y Total PDF Printer X no se han encontrado problemas, así que mi opinión es muy positiva. Estamos empezando a usar esta nueva versión (ya usábamos una anterior) y, si surgen dudas, me encargaré de enviaros un mensaje. Gracias y un cordial saludo."
Silverio Pattuelli
Ravenna, Italy, www.nobleagri.com
"Doce centros de almacén, cada uno con su propia impresora de etiquetas y de albaranes. Total PDF Printer X más Folder Monitor: una carpeta de entrada por impresora, el ERP suelta los PDFs y el papel aparece en la estación correcta en cuestión de segundos. -p selecciona la impresora por nombre descriptivo; -t pone el número de pedido en la cola de Windows para que los operarios localicen un trabajo atascado. Sustituimos un pipeline casero de automatización de Acrobat que se rompía cada vez que Acrobat se actualizaba. Cinco años con PDF Printer X, sin fallos atribuibles al conversor."
Marcin Z.
Senior IT Engineer at a 3PL warehouse network
"Integramos Total PDF Printer X en nuestro producto de historiales médicos bajo la Licencia Libre de Royalties. La tarifa única por proyecto fue una fracción de lo que pedían Aspose.PDF o PDFTron por los derechos de redistribución en el flujo de impresión. Nuestro instalador despliega y registra el ActiveX, nuestra aplicación llama a Print() directamente y los usuarios finales solo ven nuestra interfaz. La limitación de ActiveX a 32 bits nos costó un par de días de reajuste del pipeline, pero el soporte respondió con rapidez cuando preguntamos por soluciones alternativas."
Sasha P.
Independent Software Vendor
"Los expedientes judiciales llegan en PDF; los imprimimos con marcas de agua del número de caso y numeración de páginas para el expediente físico. Las hojas separadoras entre documentos mantienen ordenada la pila diaria para el archivero. -rn nos permite imprimir solo las páginas de firma cuando es lo único que necesitamos. Determinista entre ejecuciones, lo que importa para auditoría. La CLI es estable, está bien documentada y la bandera -xmllog nos da una salida legible por máquina por trabajo para nuestro registro de auditoría."
Eleni V.
Lead Developer at a court-records office
IT teams that automate batch PDF printing on Windows servers via command line and ActiveX
Print PDF files on servers without any user interaction
IT departments deploy Total PDF PrinterX on Windows servers to print incoming PDF documents automatically. The application runs silently with no GUI or pop-up messages, printing batches of PDFs via command line on schedule — ideal for invoices, reports, and documents that need to be printed as soon as they arrive.
Batch-print thousands of PDF invoices in date order
Accounting departments print daily batches of PDF invoices, statements, and financial reports sorted by file date or time. Total PDF PrinterX adds page numbers or company watermarks to each sheet, and separator pages between documents keep the printed stack organized for distribution or mailing.
Add PDF printing to your web app via ActiveX
Software developers integrate Total PDF PrinterX via ActiveX into web applications, ERP systems, and document management platforms. Users trigger print jobs from a browser, and the server handles printing silently — no desktop software or user intervention required on the server side.
Auto-print packing slips and shipping labels from a server
Warehouses and distribution centers auto-print PDF packing slips, shipping labels, and delivery notes as orders flow in. Auto-rotate and fit-to-page options handle different document sizes without manual adjustment, and duplex-safe separator sheets prevent documents from bleeding across double-sided pages.
Print case files with watermarks and page numbering
Government agencies and legal departments batch-print PDF filings, case documents, and regulatory submissions on dedicated print servers. Add text watermarks with confidentiality notices or copyright information to every page, and stamp page numbers for organized physical records — all hands-free via command line.
Total PDF Printer X incluye PDFPrinterX.exe, un binario de consola que puedes controlar desde scripts, tareas programadas, ganchos de servidor de impresión o cualquier servicio de backend que necesite salida en papel. El conjunto de opciones coincide con la GUI PDFPrinter.exe; para la referencia completa consulta la documentación de la línea de comandos. Ten en cuenta que el argumento de destino es un nombre de impresora, no una ruta de archivo — la salida va a impresoras físicas o de red, no a disco.
La llamada más sencilla posible. Omite el nombre de impresora y el documento va a lo que Windows considera la impresora predeterminada actual.
PDFPrinterX.exe "C:\docs\invoice.pdf"
-p acepta el nombre amigable de la impresora tal como aparece en el panel Impresoras de Windows, o cualquier fragmento único del mismo.
PDFPrinterX.exe "C:\docs\invoice.pdf" -p "HP LaserJet M404"
Las coincidencias parciales también funcionan — -p HP escogerá la primera impresora cuyo nombre contenga "HP".
Para PDFs largos donde necesitas unas pocas hojas — portada, página de firma, un solo capítulo — usa -rn para limitar el rango impreso.
PDFPrinterX.exe "C:\docs\contract.pdf" -p "Office Printer" -rn "1-3,7,12-14"
Caso típico de oficina: repartir N copias del mismo documento, a doble cara, en A4. -NumCopy establece el número de copias, -d vertical activa el dúplex de borde largo, -ps A4 fuerza el tamaño de papel.
PDFPrinterX.exe "C:\docs\handout.pdf" -p "HP LaserJet M404" -NumCopy 25 -d vertical -ps A4
Apunta el binario a un comodín y imprimirá cada archivo coincidente como un trabajo separado. Útil para lotes nocturnos de informes generados.
PDFPrinterX.exe "C:\reports\daily\*.pdf" -p "Reports Printer" -sort name
Añade -Recurse para incluir subcarpetas, o -combine para enviar el lote completo como un único trabajo de impresión fusionado en lugar de un trabajo por archivo.
Las impresoras compartidas en un servidor de impresión Windows se direccionan por su nombre de recurso compartido. Pasa la ruta UNC textualmente a -p.
PDFPrinterX.exe "C:\docs\report.pdf" -p "\\PRINTSRV01\Accounting-HP" -t "Q3 Report" -cl monochrome
-t establece el título del trabajo mostrado en la cola de impresión de Windows, lo que facilita encontrarlo o cancelarlo.
Cuando un trabajador externo escribe un archivo de cola y la impresora lo consume, no quieres las rutas de archivo en la propia línea de comandos. -list lee máscaras de archivo (una por línea) desde un archivo de texto plano.
PDFPrinterX.exe -list "C:\queues\print-queue.txt" -p "Office Printer" -fo
-fo fuerza el procesamiento sin avisos; combina con -do si el trabajador de la cola también espera que los originales se borren tras una impresión correcta.
Una vez que PDFPrinterX.exe corre como servicio o tarea programada, el registro es la única señal de lo que realmente pasó. -verbosity detail escribe una línea por archivo; -logmode append conserva el historial entre ejecuciones; -xmllog emite un archivo compañero amigable para parsers.
PDFPrinterX.exe "C:\spool\*.pdf" -p "Warehouse Label Printer" -log "C:\logs\pdfprint.log" -verbosity detail -logmode append -xmllog "C:\logs\pdfprint.xml"
Actualizado Fri, 01 May 2026
(solo $450.00)
-p: -p "HP LaserJet M404". También funcionan coincidencias parciales, así que -p HP selecciona la primera impresora cuyo nombre contenga "HP". Para impresoras compartidas en un servidor de impresión Windows, utilice la ruta UNC del recurso: -p "\\PRINTSRV01\Accounting-HP". Omita -p para imprimir en la impresora predeterminada actual de Windows.new COM("PDFPrinter.PDFPrinterX") en PHP, new PDFPrinterX() en .NET, win32com.client.Dispatch("PDFPrinter.PDFPrinterX") en Python, WIN32OLE.new('PDFPrinter.PDFPrinterX') en Ruby. Tenga en cuenta que el método COM se llama Print, no Convert — el destino es un nombre de impresora, no una ruta de archivo. Como alternativa, el binario de línea de comandos PDFPrinterX.exe puede invocarse desde cualquier proceso, planificador o script de shell.-rn "1-3,7,12-14" para rangos de páginas arbitrarios. -NumCopy 25 establece el número de copias. -d vertical activa el dúplex por borde largo (la encuadernación típica de "libro"); -d horizontal es dúplex por borde corto (encuadernación de "calendario"). -ps A4/Letter/Legal fuerza el tamaño de papel; -cl monochrome fuerza la salida en blanco y negro incluso en una impresora a color.PDFPrinterX.exe con el nombre de impresora y las banderas que haya configurado. Esta es la configuración canónica para almacenes (impresión automática de albaranes), contabilidad (impresión automática de facturas) e integraciones de ERP (impresión automática de exportaciones). La bandera de archivo de cola -list cubre los pipelines basados en trabajadores donde otro proceso escribe la cola de impresión.Descargue la versión de prueba y convierta sus archivos en minutos.
No se requiere tarjeta de crédito ni email.