TotalPDFPrinterX: Uprość swoje zadania drukowania dzięki Serwerowi Batch PDF Printer zasilanemu przez ActiveX.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total PDF Printer X to serwerowy SDK, który drukuje pliki PDF w trybie wsadowym na drukarkach lokalnych lub sieciowych w systemach Windows Server — bezgłowo, bez uruchamiania programu Acrobat, Foxit ani żadnej przeglądarki PDF w łańcuchu drukowania. Działa cicho: bez interfejsu graficznego, bez okien dialogowych, bez wyskakujących komunikatów. Total PDF Printer X jest dostarczany zarówno jako plik wiersza poleceń, jak i interfejs ActiveX/COM, dzięki czemu można go zintegrować z ASP, PHP, .NET, Python, Ruby, Java oraz dowolnym innym zapleczem obsługującym COM. Należy pamiętać, że argument docelowy to nazwa drukarki, a nie ścieżka pliku — wynik trafia na drukarki fizyczne lub sieciowe, nie na dysk.
Total PDF Printer X obejmuje pełny scenariusz drukowania serwerowego:
-sort)
-rn), wiele kopii (-NumCopy), tryby dwustronne (-d vertical dla długiej krawędzi, -d horizontal dla krótkiej krawędzi)
-ps A4, Letter, Legal itd.) i tryb kolorów (-cl monochrome) dla każdego zadania
-list dla nienadzorowanych wzorców pracy
Typowe wdrożenie: folder odbiorczy FTP lub eksportu z systemu ERP otrzymuje pliki PDF (faktury, listy przewozowe, etykiety wysyłkowe, dokumenty sądowe); Folder Monitor przechwytuje każdy nowy plik i wywołuje Total PDF Printer X z nazwą drukarki i flagami; plik trafia na papier bez interwencji operatora. Dziesiątki tysięcy stron dziennie na serwer drukowania to norma.
Total PDF Printer X działa wyłącznie na serwerach Windows. Wypróbuj go za darmo (30-dniowy okres próbny, bez ograniczeń) i przekonaj się, że naprawdę warto.
(zawiera 30-dniowy DARMOWY okres próbny)
(tylko $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 to magazyn, w którym przechowujemy i dystrybuujemy produkty dla naszych klientów. Używamy Total PDF Printer X razem z Total Folder Monitor, aby zautomatyzować drukowanie plików PDF od naszych klientów i z naszego systemu ERP. Klienci przesyłają pliki PDF (np. faktury) na nasz serwer FTP, a Total PDF Printer X je drukuje, dzięki czemu możemy je dołączyć do wysyłanych towarów."
Frants Erikstrup
www.scanprint.dk
"Po zainstalowaniu wersji Total PDF Printer i Total PDF Printer X nie wystąpiły żadne problemy, więc moja opinia jest bardzo pozytywna. Dopiero zaczynamy używać tej nowej wersji (korzystaliśmy już z poprzedniej) i jeśli pojawią się pytania, postaram się wysłać wiadomość. Dziękuję i pozdrawiam."
Silverio Pattuelli
Ravenna, Italy, www.nobleagri.com
"Dwanaście lokalizacji magazynowych, każda z własną drukarką etykiet i drukarką listów przewozowych. Total PDF Printer X plus Folder Monitor: folder odbiorczy na drukarkę, ERP wrzuca PDF-y, papier pojawia się we właściwej stacji w ciągu kilku sekund. -p wybiera drukarkę po nazwie przyjaznej; -t umieszcza numer zamówienia w kolejce Windows, więc operatorzy mogą znaleźć zablokowane zadanie. Zastąpiliśmy domowy potok automatyzacji Acrobata, który psuł się przy każdej aktualizacji Acrobata. Pięć lat na PDF Printer X, żadnych awarii, które moglibyśmy przypisać konwerterowi."
Marcin Z.
Senior IT Engineer at a 3PL warehouse network
"Wbudowaliśmy Total PDF Printer X w nasz produkt do dokumentacji medycznej na licencji Royalty-Free. Jednorazowa opłata za projekt była ułamkiem tego, czego Aspose.PDF czy PDFTron żądały za prawa do redystrybucji w ścieżce drukowania. Nasz instalator wdraża i rejestruje ActiveX, nasza aplikacja wywołuje Print() bezpośrednio, użytkownicy końcowi widzą tylko nasz interfejs. Ograniczenie 32-bitowego ActiveX kosztowało nas kilka dni przebudowy potoku, ale wsparcie reagowało szybko, gdy pytaliśmy o obejścia."
Sasha P.
Independent Software Vendor
"Akta sądowe przychodzą jako PDF; drukujemy je ze znakami wodnymi z numerem sprawy i numerami stron do fizycznych akt. Arkusze rozdzielające między dokumentami utrzymują codzienny stos uporządkowany dla pracownika archiwum. -rn pozwala drukować tylko strony z podpisami, gdy tylko one są nam potrzebne. Deterministyczny w kolejnych uruchomieniach, co ma znaczenie dla audytu. CLI jest stabilne, dobrze udokumentowane, a flaga -xmllog daje nam wynik na zadanie czytelny dla maszyny do naszego śladu audytowego."
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 jest dostarczany z plikiem PDFPrinterX.exe, binarnym narzędziem konsolowym, które możesz uruchamiać ze skryptów, zaplanowanych zadań, hooków serwera druku lub dowolnej usługi backendowej, która potrzebuje wydruku papierowego. Zestaw flag jest zgodny z GUI PDFPrinter.exe; pełną dokumentację znajdziesz w dokumentacji wiersza poleceń. Zwróć uwagę, że argument docelowy to nazwa drukarki, a nie ścieżka pliku — wyjście idzie do fizycznych lub sieciowych drukarek, a nie na dysk.
Najprostsze możliwe wywołanie. Pomiń nazwę drukarki, a dokument idzie do tego, co Windows uważa za bieżącą drukarkę domyślną.
PDFPrinterX.exe "C:\docs\invoice.pdf"
-p akceptuje przyjazną nazwę drukarki, jaka pojawia się w panelu Drukarki Windows, lub dowolny unikalny jej fragment.
PDFPrinterX.exe "C:\docs\invoice.pdf" -p "HP LaserJet M404"
Częściowe dopasowania też działają — -p HP wybierze pierwszą drukarkę, której nazwa zawiera "HP".
Dla długich PDF-ów, gdzie potrzebujesz kilku arkuszy — strony tytułowej, strony z podpisem, pojedynczego rozdziału — użyj -rn, aby ograniczyć drukowany zakres.
PDFPrinterX.exe "C:\docs\contract.pdf" -p "Office Printer" -rn "1-3,7,12-14"
Typowy przypadek biurowy: rozdaj N kopii tego samego dokumentu, obustronnie, A4. -NumCopy ustawia liczbę kopii, -d vertical włącza dwustronność po długiej krawędzi, -ps A4 wymusza rozmiar papieru.
PDFPrinterX.exe "C:\docs\handout.pdf" -p "HP LaserJet M404" -NumCopy 25 -d vertical -ps A4
Wskaż binarny na symbol wieloznaczny, a wydrukuje każdy pasujący plik jako oddzielne zadanie. Przydatne dla nocnych wsadów wygenerowanych raportów.
PDFPrinterX.exe "C:\reports\daily\*.pdf" -p "Reports Printer" -sort name
Dodaj -Recurse, aby uwzględnić podfoldery, lub -combine, aby wysłać cały wsad jako jedno zlane zadanie wydruku zamiast jednego zadania na plik.
Drukarki współdzielone na serwerze druku Windows są adresowane przez ich nazwę udziału. Przekaż ścieżkę UNC dosłownie do -p.
PDFPrinterX.exe "C:\docs\report.pdf" -p "\\PRINTSRV01\Accounting-HP" -t "Q3 Report" -cl monochrome
-t ustawia tytuł zadania pokazywany w kolejce wydruku Windows, co ułatwia znalezienie lub anulowanie zadania.
Gdy zewnętrzny robotnik zapisuje plik kolejki, a drukarka go konsumuje, nie chcesz ścieżek plików w samym wierszu poleceń. -list czyta maski plików (po jednej na linię) z pliku tekstowego.
PDFPrinterX.exe -list "C:\queues\print-queue.txt" -p "Office Printer" -fo
-fo wymusza przetwarzanie bez monitów; połącz z -do, jeśli robotnik kolejki spodziewa się również usunięcia oryginałów po pomyślnym wydruku.
Gdy PDFPrinterX.exe działa jako usługa lub zaplanowane zadanie, log jest jedynym sygnałem tego, co się faktycznie stało. -verbosity detail pisze jedną linię na plik; -logmode append zachowuje historię między uruchomieniami; -xmllog emituje przyjazny dla parsera plik towarzyszący.
PDFPrinterX.exe "C:\spool\*.pdf" -p "Warehouse Label Printer" -log "C:\logs\pdfprint.log" -verbosity detail -logmode append -xmllog "C:\logs\pdfprint.xml"
Zaktualizowano Fri, 01 May 2026
(tylko $450.00)
-p: -p "HP LaserJet M404". Częściowe dopasowania też działają, więc -p HP wybiera pierwszą drukarkę, której nazwa zawiera "HP". Dla drukarek udostępnionych na serwerze drukowania Windows używaj ścieżki udziału UNC: -p "\\PRINTSRV01\Accounting-HP". Pomiń -p, aby drukować na bieżącej domyślnej drukarce Windows.new COM("PDFPrinter.PDFPrinterX") w PHP, new PDFPrinterX() w .NET, win32com.client.Dispatch("PDFPrinter.PDFPrinterX") w Python, WIN32OLE.new('PDFPrinter.PDFPrinterX') w Ruby. Zwróć uwagę, że nazwa metody COM to Print, a nie Convert — celem jest nazwa drukarki, a nie ścieżka pliku. Alternatywnie binarny plik wiersza poleceń PDFPrinterX.exe może być wywołany z dowolnego procesu, harmonogramu lub skryptu powłoki.-rn "1-3,7,12-14" dla dowolnych zakresów stron. -NumCopy 25 ustawia liczbę kopii. -d vertical włącza druk dwustronny po długiej krawędzi (typowa oprawa "książkowa"); -d horizontal to druk dwustronny po krótkiej krawędzi (oprawa "kalendarzowa"). -ps A4/Letter/Legal wymusza rozmiar papieru; -cl monochrome wymusza wydruk czarno-biały nawet na drukarce kolorowej.PDFPrinterX.exe z nazwą drukarki i skonfigurowanymi flagami. To kanoniczna konfiguracja dla magazynów (automatyczny druk listów przewozowych), księgowości (automatyczny druk faktur) i integracji ERP (automatyczny druk eksportów). Flaga pliku kolejki -list obsługuje potoki sterowane przez procesy robocze, gdzie inny proces zapisuje kolejkę drukowania.Pobierz wersję próbną i konwertuj pliki w kilka minut.
Nie jest wymagana karta kredytowa ani e-mail.