DocuWorks(.xdw形式)は、富士フイルムビジネスイノベーション(旧:富士ゼロックス)が提供するドキュメント管理ソフトで使われる独自ファイル形式です。しかし業務上、PDF形式での共有や保存が求められるケースも多く、手動で変換するのは手間がかかります。
本記事では、C#を使ってDocuWorksファイルを自動的にPDFに変換する方法について、必要な準備から具体的なコード例まで詳しく解説します。業務効率化やRPA開発にも活用できる内容となっています。
DocuWorksファイル(.xdw)をPDFに変換するには、基本的にDocuWorksがインストールされている環境で、DocuWorksのAPIまたはプリンタドライバ(DocuWorks PDF Creator)を使う必要があります。
C#から操作するためには、以下のいずれかの方法が使えます。
この記事では、一般的な環境で実装しやすい「仮想プリンタを使った方法」にフォーカスして解説します。
DocuWorksがインストールされている必要があります。DocuWorks PDF Creatorが含まれているバージョンであることを確認してください。
プリンタドライバ一覧に「DocuWorks PDF Creator」が表示されているか確認します。これがC#で印刷対象プリンタとして利用されます。
Visual Studioを使ってWindowsフォームまたはコンソールアプリケーションを作成します。印刷処理には System.Diagnostics.Process
を使います。
以下に、.xdwファイルをDocuWorks PDF Creator経由でPDFに変換する基本的なコード例を紹介します。
using System;
using System.Diagnostics;
using System.IO;
class DocuWorksToPDF
{
static void Main(string[] args)
{
string xdwPath = @"C:\DocuWorks\sample.xdw"; // DocuWorksファイルのパス
string outputPdfPath = @"C:\DocuWorks\output.pdf"; // 出力先PDFのパス
// DocuWorks Viewerを使って印刷処理
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "D:\\Program Files\\Fuji Xerox\\DocuWorks\\Dwviewer.exe",
Arguments = $"\"{xdwPath}\" /p /t \"DocuWorks PDF Creator\"",
UseShellExecute = false,
CreateNoWindow = true
};
try
{
Process process = Process.Start(psi);
process.WaitForExit();
Console.WriteLine("印刷処理を完了しました。PDFは指定フォルダに保存されます。");
}
catch (Exception ex)
{
Console.WriteLine("エラーが発生しました: " + ex.Message);
}
}
}
/p /t "プリンタ名"
で印刷を指定します。DocuWorks PDF Creatorには、印刷時に自動で保存先とファイル名を決める「自動保存」機能があります。これを使えば、ユーザーの手を介さずに完全なバッチ処理が可能です。
この設定をした上でC#から印刷すれば、指定先に自動でPDFが保存されるようになります。
複数の.xdwファイルをまとめてPDFに変換したい場合、以下のようなループ処理を追加することで対応可能です。
string[] xdwFiles = Directory.GetFiles(@"C:\DocuWorks\", "*.xdw");
foreach (string xdw in xdwFiles)
{
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "D:\\Program Files\\Fuji Xerox\\DocuWorks\\Dwviewer.exe",
Arguments = $"\"{xdw}\" /p /t \"DocuWorks PDF Creator\"",
UseShellExecute = false,
CreateNoWindow = true
};
Process proc = Process.Start(psi);
proc.WaitForExit();
}
このようにすれば、特定のフォルダにある複数のDocuWorksファイルを一括でPDFに変換できます。
DocuWorksのPDF変換は手動でも可能ですが、業務量が多くなると手間と時間がかかります。
C#を使って仮想プリンタ経由で自動化することで、定型作業の効率化が図れます。
また、DocuWorksにはSDKも提供されており、より細かい制御をしたい場合は公式ドキュメントを参考にすると良いでしょう。
本記事が、DocuWorks活用や業務効率化に役立てば幸いです。