Categories: Cシャープ

C#でDocuWorksファイルをPDFに変換する方法|業務自動化に役立つサンプルコード付き

DocuWorks(.xdw形式)は、富士フイルムビジネスイノベーション(旧:富士ゼロックス)が提供するドキュメント管理ソフトで使われる独自ファイル形式です。しかし業務上、PDF形式での共有や保存が求められるケースも多く、手動で変換するのは手間がかかります。
本記事では、C#を使ってDocuWorksファイルを自動的にPDFに変換する方法について、必要な準備から具体的なコード例まで詳しく解説します。業務効率化やRPA開発にも活用できる内容となっています。


DocuWorksファイルをPDFに変換するには

DocuWorksファイル(.xdw)をPDFに変換するには、基本的にDocuWorksがインストールされている環境で、DocuWorksのAPIまたはプリンタドライバ(DocuWorks PDF Creator)を使う必要があります。
C#から操作するためには、以下のいずれかの方法が使えます。

  • DocuWorks API(Document Operations SDKなど)
  • 仮想プリンタ(DocuWorks PDF Creator)への印刷命令

この記事では、一般的な環境で実装しやすい「仮想プリンタを使った方法」にフォーカスして解説します。


必要な環境と準備

1. DocuWorksのインストール

DocuWorksがインストールされている必要があります。DocuWorks PDF Creatorが含まれているバージョンであることを確認してください。

2. DocuWorks PDF Creatorが既定のプリンタとして利用可能であること

プリンタドライバ一覧に「DocuWorks PDF Creator」が表示されているか確認します。これがC#で印刷対象プリンタとして利用されます。

3. C#プロジェクトの準備

Visual Studioを使ってWindowsフォームまたはコンソールアプリケーションを作成します。印刷処理には System.Diagnostics.Process を使います。


C#でDocuWorksファイルをPDFに変換するサンプルコード

以下に、.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);
}
}
}

注意点

  • ファイル名や保存先はユーザーがプリンタ設定で指定するか、プリンタ側の設定で「自動保存」にしておく必要があります。
  • DocuWorks Viewerのインストール場所は環境により異なりますので、適宜パスを修正してください。
  • コマンドラインオプションは /p /t "プリンタ名" で印刷を指定します。

自動保存設定で完全自動化を実現する方法

DocuWorks PDF Creatorには、印刷時に自動で保存先とファイル名を決める「自動保存」機能があります。これを使えば、ユーザーの手を介さずに完全なバッチ処理が可能です。

自動保存の設定手順(DocuWorks側)

  1. [コントロールパネル] > [デバイスとプリンタ] > [DocuWorks PDF Creator] を右クリックし、[印刷設定] を選択
  2. 「ファイル保存」タブを選択
  3. 「自動保存を使用する」にチェックを入れる
  4. 保存先フォルダとファイル名規則を設定

この設定をした上で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×C#の連携で業務自動化を

DocuWorksのPDF変換は手動でも可能ですが、業務量が多くなると手間と時間がかかります。
C#を使って仮想プリンタ経由で自動化することで、定型作業の効率化が図れます。
また、DocuWorksにはSDKも提供されており、より細かい制御をしたい場合は公式ドキュメントを参考にすると良いでしょう。

本記事が、DocuWorks活用や業務効率化に役立てば幸いです。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。