0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C# で PDF を Word に変換する:2 つの変換モードの使い分け

0
Posted at

PDF は共有や印刷、アーカイブに適した形式ですが、内容を編集・修正したい場面では Word の方が柔軟に対応できます。本記事では、.NET 環境で PDF を Word 文書に変換する方法を解説します。

環境構築

変換には Spire.PDF for .NET を使用します。NuGet パッケージマネージャーコンソールから以下のコマンドでインストールできます。

PM> Install-Package Spire.PDF

なお、Free Spire.PDF for .NET にはページ数の制限があり、PDF の読み込み・作成時に 10 ページまで、PDF から画像への変換では最初の 3 ページまでという制約があります。PDF から Word への変換におけるページ数制限については明確な記載がありませんが、大規模な文書を扱う場合は事前に動作を確認することをおすすめします。

2 つの変換モード

Spire.PDF for .NET では、PDF から Word への変換に 2 種類のモードが用意されています。それぞれの特性を理解することが、適切な変換結果を得るための鍵となります。

固定レイアウトモード

固定レイアウトモードは変換速度が速く、PDF ファイルの元の外観を最大限に保持できます。ただし、PDF 内の各行のテキストが生成された Word 文書内で個別のフレームに配置されるため、編集可能な範囲が制限されます。

このモードは、PDF の見た目をそのまま維持したい場合や、変換後の文書を主に閲覧目的で使用する場合に適しています。

フロー認識モード

フロー認識モードは完全な認識モードであり、変換された内容はフレーム形式で表示されず、文書構造が流動的になります。生成された Word 文書は再編集が容易ですが、元の PDF ファイルとは見た目が異なる場合があります。

このモードは、変換後の文書を積極的に編集・加工したい場合に適しています。なお、フロー認識モードを利用するには、PS モードと呼ばれる別の変換エンジンを有効にする必要があります。

固定レイアウトモードでの変換

デフォルトでは、SaveToFile() メソッドは固定レイアウトモードで PDF を Word に変換します。以下は基本的な実装例です。

using Spire.Pdf;

namespace ConvertPdfToFixedLayoutWord
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocument オブジェクトを作成
            PdfDocument doc = new PdfDocument();
            
            // PDF ファイルを読み込む
            doc.LoadFromFile("sample.pdf");
            
            // PDF を Doc 形式に変換して保存
            doc.SaveToFile("output/ToDoc.doc", FileFormat.DOC);
            
            // PDF を Docx 形式に変換して保存
            doc.SaveToFile("output/ToDocx.docx", FileFormat.DOCX);
            
            doc.Close();
        }
    }
}

Doc 形式は従来の Word 文書形式であり、Docx 形式はよりファイルサイズが小さく、応答速度にも優れています。特に理由がなければ Docx 形式を選択するのが無難です。

フロー認識モードでの変換

フロー認識モードを利用するには、ConvertOptions.SetPdfToDocOptions() メソッドを使用して PS モードを有効にします。

using Spire.Pdf;

namespace ConvertPdfToFlowWord
{
    class Program
    {
        static void Main(string[] args)
        {
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile("sample.pdf");
            
            // PS モードとフロー認識モードを有効化
            doc.ConvertOptions.SetPdfToDocOptions(true, true);
            
            // PDF を Docx 形式に変換して保存
            doc.SaveToFile("output/ToDocx_Flow.docx", FileFormat.DOCX);
            
            doc.Close();
        }
    }
}

第 1 引数の usePsModetrue を指定することで PS 変換エンジンが有効になり、第 2 引数の useFlowRecognitionModetrue を指定することでフロー認識モードが適用されます。

モード選択の指針

どちらのモードを選択するかは、変換後の文書をどのように利用するかによって決まります。

固定レイアウトモードは、PDF のレイアウトや書式をできるだけ維持したい場合に適しています。契約書や請求書など、見た目の正確さが重要な文書に向いています。一方、フロー認識モードは、変換後の文書を編集する予定がある場合に適しています。レポートやマニュアルなど、内容の修正や再利用を想定している文書に向いています。

実際の運用では、まず固定レイアウトモードで変換してみて、編集が困難であればフロー認識モードを試すというアプローチも有効です。

まとめ

Spire.PDF for .NET を使用することで、C# で PDF を Word 文書に変換できます。固定レイアウトモードとフロー認識モードという 2 つの変換モードがあり、それぞれの特性を理解した上で用途に応じて選択することが重要です。

固定レイアウトモードは元の外観の維持に優れ、フロー認識モードは編集のしやすさに優れています。変換対象の PDF の性質と、変換後の Word 文書の用途を考慮して、適切なモードを選択してください。

本記事で紹介したコード例は基本的な実装であり、実際のプロジェクトではエラー処理やリソース管理を適切に追加することをおすすめします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?