TotalPDFPrinterX: Simplifique suas tarefas de impressão com a impressora PDF em lote do servidor com tecnologia ActiveX.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total PDF Printer X é um SDK do lado do servidor que imprime arquivos PDF em lote para impressoras físicas ou de rede em servidores Windows — de forma headless, sem abrir o Acrobat, Foxit ou qualquer visualizador de PDF no pipeline de impressão. Funciona em silêncio: sem interface gráfica, sem diálogos, sem pop-ups. O Total PDF Printer X vem tanto com um binário de linha de comando quanto com uma interface ActiveX/COM, então se integra a ASP, PHP, .NET, Python, Ruby, Java e qualquer outro backend compatível com COM. Observe que o argumento de destino é um nome de impressora, não um caminho de arquivo — a saída vai para impressoras físicas ou de rede, não para disco.
O Total PDF Printer X cobre todo o cenário de impressão em servidor:
-sort)
-rn), múltiplas cópias (-NumCopy), modos duplex (-d vertical para borda longa, -d horizontal para borda curta)
-ps A4, Letter, Legal, etc.) e modo de cor (-cl monochrome) por trabalho
-list para padrões de worker não assistidos
Implantação típica: uma pasta de FTP ou de exportação de ERP recebe PDFs (faturas, romaneios, etiquetas de envio, peças processuais); o Folder Monitor captura cada novo arquivo e invoca o Total PDF Printer X com um nome de impressora e flags; o arquivo aparece em papel sem intervenção do operador. Dezenas de milhares de páginas por dia por servidor de impressão são normais.
Observe que o Total PDF Printer X funciona apenas em servidores Windows. Experimente gratuitamente (período de teste de 30 dias, sem limitações) e descubra que ele realmente vale o investimento.
(inclui 30 dias de teste GRATUITO)
(apenas $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 "";
"A Scanprint Logistics é um depósito onde armazenamos e distribuímos produtos para nossos clientes. Usamos o Total PDF Printer X em conjunto com o Total Folder Monitor para automatizar a impressão de arquivos PDF dos nossos clientes e do nosso sistema ERP. Os clientes enviam arquivos PDF (por exemplo, faturas) para o nosso servidor FTP, e então o Total PDF Printer X os imprime, para que possamos incluí-los junto com as mercadorias que despachamos."
Frants Erikstrup
www.scanprint.dk
"Após instalar a versão do Total PDF Printer e do Total PDF Printer X, nenhum problema foi encontrado, então meu retorno é muito positivo. Estamos apenas começando a usar esta nova versão (já usávamos uma versão anterior) e, caso tenhamos dúvidas, terei o cuidado de enviar uma mensagem. Obrigado e cordiais saudações."
Silverio Pattuelli
Ravenna, Italy, www.nobleagri.com
"Doze unidades de depósito, cada uma com sua própria impressora de etiquetas e impressora de romaneio. Total PDF Printer X mais Folder Monitor: uma pasta de entrada por impressora, o ERP solta os PDFs e o papel aparece na estação correta em poucos segundos. -p seleciona a impressora pelo nome amigável; -t coloca o número do pedido na fila do Windows para que os operadores possam encontrar um trabalho travado. Substituímos um pipeline caseiro de automação do Acrobat que quebrava toda vez que o Acrobat era atualizado. Cinco anos no PDF Printer X, sem falhas que possamos atribuir ao conversor."
Marcin Z.
Senior IT Engineer at a 3PL warehouse network
"Embutimos o Total PDF Printer X no nosso produto de prontuários médicos sob a Licença Royalty-Free. A taxa única por projeto foi uma fração do que o Aspose.PDF ou o PDFTron pediam pelos direitos de redistribuição no caminho de impressão. Nosso instalador entrega e registra o ActiveX, nosso aplicativo chama Print() diretamente, os usuários finais veem apenas a nossa interface. A limitação do ActiveX de 32 bits nos custou alguns dias de retrabalho no pipeline, mas o suporte respondeu rápido quando perguntamos sobre soluções alternativas."
Sasha P.
Independent Software Vendor
"Peças processuais chegam em PDF; nós as imprimimos com marcas d'água de número de processo e numeração de página para o arquivo físico do caso. Folhas separadoras entre os documentos mantêm a pilha diária organizada para o escrivão. -rn nos permite imprimir apenas as páginas de assinatura quando é só isso que precisamos. Determinístico entre execuções, o que importa para auditoria. A CLI é estável, bem documentada, e a flag -xmllog nos dá saída legível por máquina por trabalho para nossa trilha de auditoria."
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.
O Total PDF Printer X inclui o PDFPrinterX.exe, um binario de console que pode ser acionado a partir de scripts, tarefas agendadas, hooks de servidor de impressao ou qualquer servico de back-end que precise de saida em papel. O conjunto de flags corresponde ao da GUI PDFPrinter.exe; para a referencia completa, consulte a documentacao da linha de comando. Observe que o argumento de destino e um nome de impressora, nao um caminho de arquivo — a saida vai para impressoras fisicas ou de rede, nao para o disco.
A chamada mais simples possivel. Omita o nome da impressora e o documento vai para o que o Windows considera a impressora padrao atual.
PDFPrinterX.exe "C:\docs\invoice.pdf"
-p aceita o nome amigavel da impressora como aparece no painel de Impressoras do Windows, ou qualquer fragmento unico dele.
PDFPrinterX.exe "C:\docs\invoice.pdf" -p "HP LaserJet M404"
Correspondencias parciais tambem funcionam — -p HP selecionara a primeira impressora cujo nome contem "HP".
Para PDFs longos onde voce precisa de algumas folhas — capa, pagina de assinatura, um unico capitulo — use -rn para limitar o intervalo impresso.
PDFPrinterX.exe "C:\docs\contract.pdf" -p "Office Printer" -rn "1-3,7,12-14"
Caso tipico de escritorio: distribua N copias do mesmo documento, frente e verso, A4. -NumCopy define a contagem de copias, -d vertical habilita duplex pela borda longa, -ps A4 forca o tamanho do papel.
PDFPrinterX.exe "C:\docs\handout.pdf" -p "HP LaserJet M404" -NumCopy 25 -d vertical -ps A4
Aponte o binario para um curinga e ele imprime cada arquivo correspondente como um job separado. Util para lotes noturnos de relatorios gerados.
PDFPrinterX.exe "C:\reports\daily\*.pdf" -p "Reports Printer" -sort name
Adicione -Recurse para incluir subpastas, ou -combine para enviar o lote inteiro como um unico job de impressao mesclado em vez de um job por arquivo.
Impressoras compartilhadas em um servidor de impressao Windows sao enderecadas pelo nome de seu compartilhamento. Passe o caminho UNC literalmente para -p.
PDFPrinterX.exe "C:\docs\report.pdf" -p "\\PRINTSRV01\Accounting-HP" -t "Q3 Report" -cl monochrome
-t define o titulo do job mostrado na fila de impressao do Windows, o que torna o job facil de encontrar ou cancelar.
Quando um worker externo grava um arquivo de fila e a impressora o consome, voce nao quer os caminhos de arquivo na propria linha de comando. -list le mascaras de arquivo (uma por linha) de um arquivo de texto simples.
PDFPrinterX.exe -list "C:\queues\print-queue.txt" -p "Office Printer" -fo
-fo forca o processamento sem solicitacoes; combine com -do se o worker da fila tambem espera que os originais sejam excluidos apos uma impressao bem-sucedida.
Quando o PDFPrinterX.exe roda como um servico ou tarefa agendada, o log e o unico sinal do que realmente aconteceu. -verbosity detail grava uma linha por arquivo; -logmode append mantem o historico entre execucoes; -xmllog emite um arquivo companheiro amigavel para parser.
PDFPrinterX.exe "C:\spool\*.pdf" -p "Warehouse Label Printer" -log "C:\logs\pdfprint.log" -verbosity detail -logmode append -xmllog "C:\logs\pdfprint.xml"
Atualizado Fri, 01 May 2026
(apenas $450.00)
-p: -p "HP LaserJet M404". Correspondências parciais também funcionam, então -p HP seleciona a primeira impressora cujo nome contém "HP". Para impressoras compartilhadas em um servidor de impressão Windows, use o caminho UNC do compartilhamento: -p "\\PRINTSRV01\Accounting-HP". Omita -p para imprimir na impressora padrão atual do Windows.new COM("PDFPrinter.PDFPrinterX") em PHP, new PDFPrinterX() em .NET, win32com.client.Dispatch("PDFPrinter.PDFPrinterX") em Python, WIN32OLE.new('PDFPrinter.PDFPrinterX') em Ruby. Note que o nome do método COM é Print, não Convert — o destino é um nome de impressora, não um caminho de arquivo. Como alternativa, o binário de linha de comando PDFPrinterX.exe pode ser invocado a partir de qualquer processo, agendador ou script de shell.-rn "1-3,7,12-14" para intervalos de páginas arbitrários. -NumCopy 25 define o número de cópias. -d vertical ativa o duplex de borda longa (a encadernação típica de "livro"); -d horizontal é o duplex de borda curta (encadernação de "calendário"). -ps A4/Letter/Legal força o tamanho do papel; -cl monochrome força a saída em preto e branco mesmo em uma impressora colorida.PDFPrinterX.exe com o nome da impressora e as flags configuradas. Esta é a configuração canônica para depósitos (impressão automática de romaneios), contabilidade (impressão automática de faturas) e integrações com ERP (impressão automática de exportações). A flag de arquivo de fila -list cobre pipelines orientados por workers, em que outro processo escreve a fila de impressão.Baixe a versão de teste gratuita e converta seus arquivos em minutos.
Não é necessário cartão de crédito ou email.