ウェブサーバー上でPDFファイルを他の形式に変換するための適切な解決策
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total PDF Converter X は、PDF ファイルを DOC、RTF、XLS、HTML、XHTML、EPS、PS、TXT、CSV、BMP、JPEG、GIF、WMF、EMF、PNG、TIFF に変換するサーバーサイド SDK です — サーバー上に Adobe Acrobat、Foxit、その他の外部 PDF ライブラリを必要としません。サイレントに動作します。GUI、ダイアログ、ポップアップは一切ありません。Total PDF Converter X には コマンドラインバイナリと ActiveX/COM インターフェースの両方が付属しており、ASP、PHP、.NET、Python、Ruby、Java、その他あらゆる COM 対応バックエンドに組み込めます。
出力対応は 3 つのトラックに分かれます:
Total PDF Converter X はサーバーサイドのあらゆるシナリオに対応します。パスワード保護された PDF (-Pass "wb-pwd" を渡す)、バッチ結合 (複数の PDF を 1 つの出力ドキュメントまたは 1 つの画像にまとめる)、ページ単位の抽出 (複数ページの PDF を N 個の単一ページファイルに分割)、フォルダーマスク + 再帰処理 (-Recurse -kfs) によるツリー全体の処理、キューファイル駆動の実行 (-list)、そして Total Folder Monitor と組み合わせたファイル到着時のホットフォルダー自動変換。
マルチスレッドエンジンが最高速度でバッチを処理します。IIS、Docker、Citrix、Wine と互換性があります。無料でお試しください (30 日間試用、機能制限なし)。価格に見合う価値があると実感していただけます。
現在サポートされているファイル形式変換の一部:
|
|
|
LLM エージェント (Claude、ChatGPT、Cursor、Cline) や検索フレームワーク (LangChain、LlamaIndex、Haystack) は PDF を読みません — テキストを読みます。Total PDF Converter X は PDF を、構造化された frontmatter とオプションの Docling 互換サイドカー付きの GitHub-Flavored Markdown として書き出します。これにより、PDF は見出し、テーブル、ページアンカーが無傷のままベクトルストアに格納されます — カラムがマージされ、ヘッダーが失われる pdftotext 形式の平坦化されたスープではなく。
Markdown 出力を指定したときに得られるもの:
# / ## / ### レベルを駆動します。PDF アウトライン (ブックマーク) が存在する場合はそれが尊重されます
source_file、format (MIME)、PDF メタデータから取得した title と author、page_count、generator、created、検出された languages、出所追跡用の binary_hash
.docling.json サイドカー — テーブルの境界矩形、ページごとのアンカー、フォント/スタイルのヒント、スプリッタが読み取れる chunks_hint 配列を含む Docling スキーマの JSON
これはCoolUtils RAG Adapterです — すべての Total Converter X 製品で共有される統一された Markdown 規約。完全な仕様、サンプル .md + .docling.json、統合スニペットは Coolutils Converter X — RAG Adapter ページにあります。
(30日間の無料試用を含む)
(のみ $550.00)
string src = @"C:\test\Source.pdf";
string dest = @"C:\test\Dest.docx";
var cnv = new PDFConverterX();
cnv.Convert(src, dest, "-cDOC -log c:\\test\\PDF.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\PDFConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.pdf";
var outPath = Path.GetTempFileName() + ".docx";
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}\" -cDOC";
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("PDFConverter.PDFConverterX")
C.Convert "c:\test\source.pdf", "c:\test\dest.docx", "-cDOC -log c:\test\PDF.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("PDFConverter.PDFConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=test.docx"
Response.BinaryWrite C.ConvertToStream("C:\www\ASP\Source.pdf", "C:\www\ASP", "-cDOC -log c:\html.log")
set C = nothing
$src="C:\\test\\test.pdf";
$dest="C:\\test\\test.docx";
if (file_exists($dest)) unlink($dest);
$c= new COM("PDFConverter.PDFConverterX");
$c->convert($src,$dest, "-cDOC -log c:\\test\\PDF.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('PDFConverter.PDFConverterX')
src = "C:\\test\\test.pdf"
dest = "C:\\test\\test.docx"
c.convert(src, dest, "-cDOC -log c:\\test\\PDF.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("PDFConverter.PDFConverterX")
src = "C:\\test\\test.pdf"
dest = "C:\\test\\test.docx"
c.convert(src, dest, "-cDOC -log c:\\test\\PDF.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('PDFConverter.PDFConverterX');
c.Convert('c:\test\source.pdf', 'c:\test\dest.docx', '-cDOC -log c:\test\PDF.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("PDFConverter.PDFConverterX");
c.Convert("C:\\test\\source.pdf", "C:\\test\\dest.docx", "-cDOC");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.pdf"; my $dest = "C:\\test\\test.docx"; my $c = CreateObject Win32::OLE 'PDFConverter.PDFConverterX'; $c->convert($src, $dest, "-cDOC -log c:\\test\\PDF.log"); print $c->ErrorMessage if -e $dest;
「今のところ、このツールは Windows のスケジュールタスク内でコマンドラインを使用して PDF ファイルを Excel ファイルに変換するという仕事を正しくこなしています。何か問題があれば、必ずご連絡します。」
Sofiane Hamri
Independent Developer
「ご支援いただきありがとうございました。Total PDF Converter X は素晴らしく動作しています。競合製品が Windows サービスから実行するとハングアップしていたため、これは非常に必要な解決策でした。御社の協力と迅速な対応のおかげで、お客様の納期に間に合わせることができ、本当に救われました。」
Michael J. Balmer
Lead Integration Engineer, www.QuestDiagnostics.com
「お客様から数十種類のベンダーテンプレートで PDF 請求書が送られてきます。当社では明細を XLS に抽出して会計システムに取り込んでいます。-cXLS と -FirstRowIsHeader を組み合わせた Total PDF Converter X は、競合製品ではセルが乱れた結合状態になっていたところを、きれいなスプレッドシートとして出力します。当社のハードウェアでスループットは毎分約 200 件の請求書。本番運用 5 年。あらゆる不正な PDF でハングアップしていた Acrobat 自動化のパイプラインを置き換えました。組み込みパーサーは同じファイルを文句なく処理します。」
Aleksei P.
Senior Backend Developer at an invoice-processing platform
「お客様から提供される PDF 一式は、案件ごとのパスワードで保護された状態で届きます。Total PDF Converter X の -Pass を使えば変換と同じ呼び出しでロックを解除できるため、当社のパイプラインに別の復号ステップは不要です。-cExtract はレビューツールのサムネイルストリップ用にページごとに 1 枚の PNG を出力します。Windows Server Core 上でヘッドレス動作、Acrobat 不要、4 年間の本番運用でライセンス上の予期せぬ問題はありません。」
Yaiza R.
DevOps Engineer at a legal e-discovery platform
「Total PDF Converter X を Royalty-Free License で当社のドキュメント管理製品にバンドルしました。プロジェクトごとの一度限りの料金は、Aspose.PDF や PDFTron が要求する開発者ごとのサブスクリプションのほんの一部でした。当社のインストーラーが ActiveX を出荷・登録し、当社のアプリが直接呼び出すため、エンドユーザーには当社の UI しか見えません。ActiveX が 32 ビットのみという制限のためにパイプラインの再構築に数日かかりましたが、回避策について問い合わせるとサポートは迅速に対応してくれました。」
Mateusz B.
Independent Software Vendor
ActiveXとコマンドラインでサーバーアプリケーションにPDF変換を統合する開発者とITチームのために
WebアプリにPDFからDOCおよびPDFから画像への変換を追加
Web開発者はTotal PDF ConverterXをActiveX経由でASP、PHP、または.NETアプリケーションに統合します。ユーザーがブラウザからPDFファイルをアップロードすると、サーバーがGUIなしに静かにDOC、XLS、HTML、または画像に変換し、結果を返します。統合を高速化するためのサンプルコードファイルが含まれています。
文書管理システム内でPDFを自動変換
文書管理およびエンタープライズコンテンツプラットフォームは、アップロードされたPDFをアーカイブ用TIFF、全文インデックス用テキスト、またはプレビューサムネイル用画像に変換するためにTotal PDF ConverterXを使用します。SDKは最小限のコード変更で既存のワークフローに組み込め、資格情報が提供された場合はパスワード保護されたPDFも処理します。
ユーザー操作なしにサーバー上で数千のPDFを変換
エンタープライズITチームはTotal PDF ConverterXをスケジュールされたバッチジョブでコマンドライン経由に実行します。受信PDFは編集用DOC、データ抽出用CSV、または印刷前工程用EPSに変換されます。すべて無人実行です。複数ページのPDFは個別ページファイルに分割するか、フォルダごとに1つの出力文書に結合できます。
印刷ワークフロー用にPDFファイルをTIFF、JPEG、EPSに変換
印刷店と印刷前工程部門は、本番サーバー上でPDFファイルを高品質なTIFF、JPEG、またはEPS画像に変換します。ジョブごとに用紙の向き、出力品質、画像サイズを制御します。複数ページのPDFを個別ページ画像として処理するか、複数のPDFを面付け用の1つの複数ページTIFFに結合できます。
デスクトップまたはサーバーソフトウェアにPDF変換を組み込む
ソフトウェアベンダーは、変換エンジンをゼロから構築することなく自社製品にPDFエクスポート機能を追加するためにTotal PDF ConverterXを組み込みます。ActiveXインターフェースはシンプルなAPIコールですべての変換機能を提供し、すでに数百の開発者が商用アプリケーションに統合しています。
Total PDF ConverterX には PDFConverterX.exe が同梱されており、スクリプト、スケジュールタスク、CI ランナー、あるいは任意のバックエンドサービスから呼び出せるコンソールバイナリです。フラグの体系は GUI 版の PDFConverter.exe と一致しています。すべてのオプションはコマンドライン ドキュメントを参照してください。以下のレシピは、SDK のお客様から最も多く寄せられるユースケースを取り上げています。
最小の呼び出し方 — ソースファイル 1 つ、出力 1 つ、ターゲット形式 1 つ。受信した PDF から編集可能な Word 文書を取り出す必要があるときに最適です。
PDFConverterX.exe "C:\pdfs\report.pdf" "C:\out\report.doc" -cDOC
財務諸表、請求書、レポートはしばしば PDF で届きますが、Excel に着地させる必要があります。フォルダマスクをコンバーターに指定して、すべてのファイルを処理させます。
PDFConverterX.exe "C:\pdfs\*.pdf" "C:\out\" -cXLS
全文検索インデックス、NLP パイプライン、または別のツールへのコンテンツのパイプ用。-e はページ間にフォームフィード文字を挿入するため、後で結果をページに分割し直すことができます。
PDFConverterX.exe "C:\pdfs\*.pdf" "C:\out\" -cTXT -e
サムネイル、プレビュー画像、または OCR の入力 — 各ページを印刷品質の DPI でラスタライズします。-s はページごとに 1 つの画像を書き出し、テンプレートはファイルの命名を制御します。
PDFConverterX.exe "C:\pdfs\brochure.pdf" "C:\out\" -cPNG -dpi 300 -s -t "[Name].page#.png"
-cPNG を -cJPG に切り替え、-jq 85 を追加して JPEG の品質を制御します。
実際に必要なページだけを取り出します — たとえば、長いレポートの 1〜3 ページにあるエグゼクティブサマリーなど。
PDFConverterX.exe "C:\pdfs\report.pdf" "C:\out\summary.pdf" -cPDF -p "1-3"
ページリストには個別の番号と組み合わせも指定できます(例:-p "1,3,5-7,10")。
Web スタックで直接配信する、検索エンジンにインデックスさせる、CMS に埋め込む、といった目的で PDF のフォルダを HTML ページに変換します。
PDFConverterX.exe "C:\pdfs\*.pdf" "C:\www\docs\" -cHTML
文書リポジトリがフラットな 1 フォルダに収まることはまずありません。-Recurse はサブディレクトリを走査し、-kfs はすべてを 1 つのバケットにフラット化する代わりに、出力側に同じツリーを再現します。
PDFConverterX.exe "C:\archive\*.pdf" "C:\out\archive\" -cDOC -Recurse -kfs
案件ファイルごとに 1 つの TIFF を期待する文書アーカイブシステム向け。-combine はすべてのソースを 1 つの出力にマージし、-tc G4FAX はすべてのビューアが受け入れる標準の白黒ファックス圧縮を選びます。
PDFConverterX.exe "C:\pdfs\case123\*.pdf" "C:\archive\case123.tif" -cTIF -combine -tc G4FAX -dpi 300
PDFConverterX.exe がサービスやスケジュールジョブとして動作し始めたら、何が起きたかを知る唯一の手段はログです。-verbosity detail はファイルごとに 1 行を書き込み、-logmode append は実行をまたいで履歴を維持します。
PDFConverterX.exe "C:\pdfs\*.pdf" "C:\out\" -cDOC -log "C:\logs\pdfconv.log" -verbosity detail -logmode append
ワーカーがキューファイルを書き出し、コンバーターがそれを消費する場合、コマンドラインそのものにファイルパスを書きたくないでしょう。-list はテキストファイルから 1 行 1 ファイルマスクを読み込みます。
PDFConverterX.exe -list "C:\queues\batch.txt" "C:\out\" -cRTF
法的拘束力のある署名 PDF を必要とするワークフロー向け — 契約書、請求書、規制対象文書など。.pfx 証明書、そのパスワード、署名イベントに関するオプションのメタデータを指定します。
PDFConverterX.exe "C:\pdfs\contract.pdf" "C:\out\contract-signed.pdf" -cPDF -PFXFile "C:\certs\company.pfx" -PFXPass "secret" -SignLoc "Wilmington, DE" -SignRes "Approved"
更新 Thu, 11 Jun 2026
(のみ $550.00)
|
|
|
-Pass "workbook-pwd" を使用)、暗号化された PDF (40 ビット、128 ビット、256 ビット AES)、埋め込みフォント、ベクターグラフィック、ラスター画像、テーブルに対応しています。出力は DOC、DOCX、RTF、XLS、CSV、HTML、XHTML、TXT、EPS、PS、JPEG、PNG、BMP、GIF、TIFF (単一または複数ページ)、WMF、EMF をカバーします。new COM("PDFConverter.PDFConverterX")、.NET では new PDFConverterX()、Python では win32com.client.Dispatch("PDFConverter.PDFConverterX")、Ruby では WIN32OLE.new('PDFConverter.PDFConverterX')。代替手段として、PDFConverterX.exe コマンドラインバイナリを任意のプロセス、スケジューラー、シェルスクリプトから呼び出すこともできます。ASP/PHP の Web レスポンス向けに ConvertToStream による直接ストリーミングも利用可能です。-cExtract は各 PDF ページを個別の出力ファイルとして書き出します (サムネイルやページごとのレビューに最適)。一方、デフォルトの動作では入力 PDF ごとに 1 つの出力ファイルが生成されます。-combine は複数の入力 PDF を 1 つの出力ドキュメントまたは 1 つの複数ページ TIFF に統合します。-rn "1-3,7" で特定のページを選択できます。-sort name はフォルダー内のファイルを結合する際の入力順序を制御します。-cXLS は PDF から表形式のデータを Excel 形式に抽出し、ソース PDF に検出可能なテーブルがある場合は列構造を保持します。-cCSV は同じデータをカスタム区切り文字で書き出します (ヨーロッパロケール向けに -separator ";"、引用符文字に -comma '"')。-FirstRowIsHeader と組み合わせれば、スキャンされたレポートや明細書 PDF を手動でクリーンアップすることなくスプレッドシート対応のデータに変換できます。.md を指定すると、コンバーターはセクション対応の構造を持つ GitHub-Flavored Markdown を書き出します: 検出された見出しが #/##/### レベルを駆動し、PDF アウトライン (ブックマーク) が存在する場合は尊重され、テーブルは単一のテキスト列に平坦化されるのではなく GFM テーブルとして残り、ページ境界に注釈が付与されるため引用が正確なソースページに解決できます。YAML frontmatter ブロックには source_file、PDF メタデータから取得した title と author、page_count、generator、バイナリハッシュが格納されます。これは CoolUtils RAG Adapter の一部です — すべての Total Converter X 製品で同じ Markdown 規約が共有されます。binary_hash、chunks_hint 配列。コマンドラインで -Docling を指定して有効化します。JSON は Markdown から独立しています — インデックスに両方を投入することも、.md のみを使うこともできます。.md ファイルは YAML frontmatter ブロックを持つプレーンな GFM なので、LangChain の UnstructuredMarkdownLoader、LlamaIndex の MarkdownReader、Haystack の MarkdownToDocument、Claude Code の MCP ファイルツールがそのまま読み込めます。Claude、ChatGPT、その他のチャット UI では、Markdown をそのままコンテキストに貼り付けることができます — 目次が認識可能なまま残り、テーブルがレンダリングされ、ページアンカー注釈によりモデルは元の PDF に戻って引用できます。PDFConverterX.exe "C:\inbox\*.pdf" "C:\out\" -cMD -Docling -Recurse。-cMD は Markdown を選択し、-Docling は .docling.json サイドカーも書き出し、-Recurse はサブディレクトリを走査します。OCR テキストレイヤーを持つ PDF も、ネイティブテキスト PDF と同じバッチ内で処理されます — 別のコードパスは不要です。パスワード保護されたソースには -Pass "workbook-pwd" を追加してください。生成された Markdown は、任意のベクトルストアでチャンク化、埋め込み、インデックス作成できる状態です。無料トライアルをダウンロードして、ファイルを数分で変換。
クレジットカードもメールアドレスも不要。