TotalPDFPrinterX: Server Batch PDF Printer powered by ActiveXで印刷タスクを効率化します。
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total PDF Printer X は、Windows サーバー上で PDF ファイルを物理プリンターやネットワークプリンターへバッチ印刷するサーバーサイド SDK です — ヘッドレスで動作し、印刷パイプラインで Acrobat、Foxit、その他いかなる PDF ビューアも開きません。完全サイレント動作で、GUI もダイアログもポップアップもありません。Total PDF Printer X にはコマンドラインバイナリと ActiveX/COM インターフェースの両方が同梱されており、ASP、PHP、.NET、Python、Ruby、Java、その他あらゆる COM 対応バックエンドに組み込めます。なお、出力先引数はプリンター名であってファイルパスではありません — 出力先はディスクではなく物理プリンターまたはネットワークプリンターです。
Total PDF Printer X はサーバー印刷シナリオを完全にカバーします:
-sort)
-rn)、複数部数 (-NumCopy)、両面印刷モード(長辺綴じは -d vertical、短辺綴じは -d horizontal)
-ps A4、Letter、Legal など) およびカラーモード (-cl monochrome)
-list によるキューファイル処理
典型的な導入例: FTP のドロップ先や ERP のエクスポートフォルダーが PDF(請求書、納品書、配送ラベル、裁判所提出書類)を受信し、Folder Monitor が新規ファイルを検知するたびに、プリンター名とフラグを指定して Total PDF Printer X を呼び出します。オペレーターの介入なしに、ファイルが紙に出力されます。1 台の印刷サーバーで 1 日あたり数万ページの処理は通常運用範囲内です。
なお、Total PDF Printer X は Windows サーバー上でのみ動作します。30 日間の無料試用版(機能制限なし)で実際にお試しいただき、価格に見合う価値があることをご確認ください。
(30日間の無料試用を含む)
(のみ $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 は倉庫業を営み、お客様の商品を保管・配送しています。当社では Total PDF Printer X と Total Folder Monitor を併用して、お客様や ERP システムからの PDF ファイルの印刷を自動化しています。お客様は PDF ファイル(例えば請求書)を当社の FTP サーバーにアップロードし、Total PDF Printer X が印刷を行うので、出荷する商品に同梱できます。」
Frants Erikstrup
www.scanprint.dk
「Total PDF Printer と Total PDF Printer X のバージョンをインストールしましたが、問題は一切見つかりませんでした。したがって私の評価は非常に肯定的です。新バージョンの利用を始めたばかりで(以前のバージョンも使用していました)、もし疑問があれば必ずメッセージをお送りします。ありがとうございます、よろしくお願いします。」
Silverio Pattuelli
Ravenna, Italy, www.nobleagri.com
「12 拠点の倉庫があり、それぞれにラベルプリンターと納品書プリンターがあります。Total PDF Printer X と Folder Monitor の組み合わせ:プリンターごとに受信フォルダーを用意し、ERP が PDF を投入すると、数秒以内に正しいステーションに紙が出てきます。-p はフレンドリー名でプリンターを選択し、-t は注文番号を Windows キューに書き込むので、オペレーターは詰まったジョブをすぐ見つけられます。Acrobat が更新されるたびに壊れていた自作の Acrobat 自動化パイプラインを置き換えました。PDF Printer X 運用 5 年、コンバーター起因と判定できる障害はゼロです。」
Marcin Z.
Senior IT Engineer at a 3PL warehouse network
「当社の医療記録製品に Royalty-Free ライセンスで Total PDF Printer X を組み込みました。プロジェクト単位の一回払い料金は、Aspose.PDF や PDFTron が印刷経路の再配布権で要求してきた金額のごく一部でした。当社のインストーラーが ActiveX を配布・登録し、アプリは Print() を直接呼び出し、エンドユーザーには当社の UI しか見えません。32 ビット ActiveX の制約でパイプラインの作り直しに数日を要しましたが、回避策について問い合わせたときのサポートの対応は迅速でした。」
Sasha P.
Independent Software Vendor
「裁判所の提出書類は PDF で届きます。物理ケースファイル用に、案件番号の透かしとページ番号を付けて印刷しています。ドキュメント間の区切りシートのおかげで、記録係担当者の日次スタックが整理された状態に保たれます。-rn により署名ページだけが必要な場合にそれだけを印刷できます。実行間で結果が決定的に同じになるので、監査において重要です。CLI は安定しており文書も整っており、-xmllog フラグはジョブごとの機械可読出力を提供してくれて監査証跡に役立っています。」
Eleni V.
Lead Developer at a court-records office
コマンドラインとActiveXでWindowsサーバー上のバッチPDF印刷を自動化するITチームのために
ユーザー操作なしにサーバー上でPDFを印刷
IT部門はTotal PDF PrinterXをWindowsサーバーに展開し、受信PDFドキュメントを自動的に印刷します。アプリケーションはGUIやポップアップメッセージなしに静かに動作し、スケジュールに従ってコマンドラインでPDFのバッチを印刷します。請求書、レポート、到着次第印刷が必要な文書に最適です。
何千ものPDF請求書を日付順に一括印刷
経理部門はファイルの日付または時間でソートしたPDF請求書、明細書、財務レポートの日次バッチを印刷します。Total PDF PrinterXは各シートにページ番号や会社の透かしを追加し、文書間のセパレーターページで印刷されたスタックを配布または郵送のために整理します。
ActiveX経由でWebアプリにPDF印刷を追加
ソフトウェア開発者はTotal PDF PrinterXをActiveX経由でWebアプリケーション、ERPシステム、文書管理プラットフォームに統合します。ユーザーがブラウザから印刷ジョブをトリガーすると、サーバーが静かに印刷を処理します。サーバーサイドではデスクトップソフトウェアやユーザー操作は不要です。
サーバーから梱包明細と配送ラベルを自動印刷
倉庫と流通センターは、注文が流入するにつれてPDF梱包明細、配送ラベル、配達通知書を自動印刷します。自動回転とページへのフィットオプションが手動調整なしに異なる文書サイズを処理し、両面安全セパレーターシートが文書が両面ページをまたがるのを防ぎます。
透かしとページ番号付きでケースファイルを印刷
政府機関や法務部門は、専用の印刷サーバー上でPDF申請書類、ケース文書、規制提出物をバッチ印刷します。すべてのページに機密情報の注意書きや著作権情報のテキスト透かしを追加し、整理された物理記録のためにページ番号を付けます。すべてコマンドライン経由で無人実行できます。
Total PDF Printer X には PDFPrinterX.exe が同梱されており、スクリプト、スケジュールタスク、印刷サーバーのフック、あるいは紙への出力が必要な任意のバックエンドサービスから呼び出せるコンソールバイナリです。フラグの体系は GUI 版の PDFPrinter.exe と一致しています。すべてのオプションはコマンドライン ドキュメントを参照してください。引数の出力先はファイルパスではなくプリンター名です — 出力は物理またはネットワークのプリンターに送られ、ディスクには送られません。
最小の呼び出し方。プリンター名を省略すると、Windows が現在の既定プリンターと見なすものに送られます。
PDFPrinterX.exe "C:\docs\invoice.pdf"
-p は Windows のプリンターパネルに表示されるフレンドリ名、またはその一意な部分を受け入れます。
PDFPrinterX.exe "C:\docs\invoice.pdf" -p "HP LaserJet M404"
部分一致も使えます — -p HP は名前に "HP" を含む最初のプリンターを選びます。
長い PDF で数枚だけが必要な場合 — 表紙、署名ページ、1 つの章 — -rn で印刷範囲を制限します。
PDFPrinterX.exe "C:\docs\contract.pdf" -p "Office Printer" -rn "1-3,7,12-14"
典型的なオフィスケース:同じ文書を N 部、両面、A4 で配布します。-NumCopy は部数を設定し、-d vertical は長辺綴じの両面印刷を有効にし、-ps A4 は用紙サイズを強制します。
PDFPrinterX.exe "C:\docs\handout.pdf" -p "HP LaserJet M404" -NumCopy 25 -d vertical -ps A4
バイナリにワイルドカードを指定すると、一致する各ファイルを別個のジョブとして印刷します。生成されたレポートの夜間バッチに便利です。
PDFPrinterX.exe "C:\reports\daily\*.pdf" -p "Reports Printer" -sort name
サブフォルダを含めるには -Recurse を、ファイルごとに 1 ジョブではなくバッチ全体を 1 つのマージされた印刷ジョブとして送るには -combine を追加します。
Windows の印刷サーバー上の共有プリンターは共有名で指定します。UNC パスをそのまま -p に渡してください。
PDFPrinterX.exe "C:\docs\report.pdf" -p "\\PRINTSRV01\Accounting-HP" -t "Q3 Report" -cl monochrome
-t は Windows の印刷キューに表示されるジョブタイトルを設定するので、ジョブを見つけたりキャンセルしたりするのが容易になります。
外部のワーカーがキューファイルを書き出し、プリンターがそれを消費する場合、コマンドラインそのものにファイルパスを置きたくないでしょう。-list はプレーンテキストファイルから 1 行 1 ファイルマスクを読み込みます。
PDFPrinterX.exe -list "C:\queues\print-queue.txt" -p "Office Printer" -fo
-fo はプロンプトなしで処理を強制します。キューワーカーが印刷成功後に元ファイルの削除も期待する場合は -do と組み合わせてください。
PDFPrinterX.exe がサービスやスケジュールタスクとして動作し始めたら、何が実際に起きたかを知る唯一の信号はログです。-verbosity detail はファイルごとに 1 行を書き込み、-logmode append は実行をまたいで履歴を維持し、-xmllog はパーサーフレンドリな付随ファイルを出力します。
PDFPrinterX.exe "C:\spool\*.pdf" -p "Warehouse Label Printer" -log "C:\logs\pdfprint.log" -verbosity detail -logmode append -xmllog "C:\logs\pdfprint.xml"
更新 Fri, 01 May 2026
(のみ $450.00)
-p に渡します: -p "HP LaserJet M404"。部分一致もサポートされており、-p HP は名前に「HP」を含む最初のプリンターを選択します。Windows プリントサーバー上の共有プリンターには UNC 共有パスを使用します: -p "\\PRINTSRV01\Accounting-HP"。-p を省略すると、現在の Windows 既定のプリンターに印刷されます。new COM("PDFPrinter.PDFPrinterX")、.NET では new PDFPrinterX()、Python では win32com.client.Dispatch("PDFPrinter.PDFPrinterX")、Ruby では WIN32OLE.new('PDFPrinter.PDFPrinterX') です。COM のメソッド名は Convert ではなく Print である点にご注意ください — 出力先はファイルパスではなくプリンター名です。あるいは、PDFPrinterX.exe コマンドラインバイナリを任意のプロセス、スケジューラー、シェルスクリプトから呼び出すこともできます。-rn "1-3,7,12-14" を使用します。-NumCopy 25 で部数を設定します。-d vertical は長辺綴じ両面印刷(一般的な「書籍」綴じ)、-d horizontal は短辺綴じ両面印刷(「カレンダー」綴じ)です。-ps A4/Letter/Legal で用紙サイズを強制指定します。-cl monochrome はカラープリンターでもモノクロ出力を強制します。PDFPrinterX.exe を呼び出します。これは倉庫(納品書の自動印刷)、経理(請求書の自動印刷)、ERP 統合(エクスポートの自動印刷)における標準的なセットアップです。-list キューファイルフラグは、別プロセスが印刷キューを書き込むワーカー駆動型パイプラインに対応します。無料トライアルをダウンロードして、ファイルを数分で変換。
クレジットカードもメールアドレスも不要。