.NETでPDFをMicrosoft Wordドキュメントに変換する

概要

この記事では、C#を使用してPDFをMicrosoft Wordドキュメントに変換する方法について説明します。以下のトピックをカバーしています。

フォーマット: DOC

フォーマット: DOCX

フォーマット: Word

以下のコードスニペットは、Aspose.PDF.Drawing ライブラリでも動作します。

PDFからDOCおよびDOCXへの変換

最も人気のある機能の1つは、PDFをMicrosoft Word DOCに変換することで、コンテンツ管理をより容易にします。Aspose.PDF for .NET は、PDFファイルを迅速かつ効率的にDOCおよびDOCX形式に変換することができます。

PDFをDOC(Microsoft Word 97-2003)ファイルに変換

PDFファイルをDOC形式に簡単に完全に制御して変換します。Aspose.PDF for .NETは柔軟で、多種多様な変換をサポートしています。たとえば、PDFドキュメントのページを画像に変換する機能は非常に人気があります。

多くのお客様がPDFからDOCへの変換を要求しています。PDFファイルをMicrosoft Wordドキュメントに変換することです。お客様がこれを望む理由は、PDFファイルは簡単に編集できないのに対し、Wordドキュメントは編集が可能だからです。一部の企業では、ユーザーがPDFとして開始したファイルでテキスト、テーブル、画像を操作できるようにしたいと考えています。

物事をシンプルでわかりやすく保つ伝統を守りながら、Aspose.PDF for .NETは、ソースPDFファイルをDOCファイルに変換するために2行のコードで変換できます。 シンプルで理解しやすい伝統を継承し、Aspose.PDF for .NETでは、ソースPDFファイルをDOCファイルに変換するために2行のコードだけで変換できます。

以下のC#コードスニペットは、PDFファイルをDOC形式に変換する方法を示しています。

手順: C#でPDFをDOCに変換する

  1. ソースPDFドキュメントを使用してDocumentオブジェクトのインスタンスを作成します。
  2. Document.Save() メソッドを呼び出して、SaveFormat.Doc 形式で保存します。
public static void ConvertPDFtoWord()
{
    // ソースPDFドキュメントを開く
    Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");
    // ファイルをMSドキュメント形式で保存
    pdfDocument.Save(_dataDir + "PDFToDOC_out.doc", SaveFormat.Doc);

}

DocSaveOptionsクラスの使用

DocSaveOptions クラスには、PDFファイルをDOC形式に変換する際に役立つ多くのプロパティが用意されています。 DocSaveOptions クラスは、PDFファイルをDOC形式に変換する際に多くのプロパティを提供します。

  • Textbox モードは、PDFファイルのオリジナルの外観を保持するのに適しており、高速ですが、結果として得られるドキュメントの編集性は限定的かもしれません。オリジナルのPDFに視覚的にグループ化されたテキストブロックは、出力ドキュメントでテキストボックスに変換されます。これにより、オリジナルに最大限似せることができるので、出力ドキュメントは見た目が良いですが、全てテキストボックスで構成されており、Microsoft Wordでの編集はかなり困難です。
  • Flow は完全認識モードで、エンジンがグルーピングと多層分析を実行して、作者の意図に基づいてオリジナルドキュメントを復元しながら、簡単に編集可能なドキュメントを生成します。
  • Flow は完全認識モードで、エンジンがグループ化と多層分析を行い、著者の意図に基づいて元の文書を復元しつつ、編集しやすい文書を生成します。

RelativeHorizontalProximity プロパティは、テキスト要素間の相対的な近接性を制御するために使用できます。これは、距離がフォントサイズによって標準化されることを意味します。大きなフォントは、音節間に大きな空間があっても単一の全体と見なされる場合があります。例えば、1 = 100% として指定されます。これは、12ptの2つの文字が12pt離れて配置されている場合、近接しているということを意味します。

  • RecognitionBullets は変換中に弾丸認識をオンにするために使用されます。
public static void ConvertPDFtoWordDocAdvanced()
{
    var pdfFile = Path.Combine(_dataDir, "PDF-to-DOC.pdf");
    var docFile = Path.Combine(_dataDir, "PDF-to-DOC.doc");
    Document pdfDocument = new Document(pdfFile);
    DocSaveOptions saveOptions = new DocSaveOptions
    {
        Format = DocSaveOptions.DocFormat.Doc,
        // フロー認識モードを設定
        Mode = DocSaveOptions.RecognitionMode.Flow,
        // 横方向の近接性を2.5に設定
        RelativeHorizontalProximity = 2.5f,
        // 変換プロセス中に弾丸を認識するための値を有効にする
        RecognizeBullets = true
    };
    pdfDocument.Save(docFile, saveOptions);
}

PDFをDOCX(Microsoft Word 2007-2021ファイル)に変換

Aspose.PDF for .NET APIを使用すると、C#や.NET言語を使用してPDF文書をDOCXに変換することができます。DOCXは、Microsoft Wordの文書のためのよく知られた形式で、構造がプレーンバイナリからXMLとバイナリファイルの組み合わせに変更されました。DocxファイルはWord 2007以降のバージョンで開くことができますが、以前のバージョンのMS Wordでは開くことができません。これはDOCファイル拡張子をサポートしているからです。

次のC#コードスニペットは、PDFファイルをDOCX形式に変換する方法を示しています。

手順: C#でPDFをDOCXに変換する

  1. SaveFormat.DocX 形式で保存します。Document.Save() メソッドを呼び出してください。
public static void ConvertPDFtoWord_DOCX_Format()
{
    // ソースPDFドキュメントを開く
    Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");
    // 結果のDOCファイルを保存
    pdfDocument.Save(_dataDir + "saveOptionsOutput_out.doc", SaveFormat.DocX);
}

PDFをDOCXに拡張モードで変換

PDFをDOCXに変換する際、より良い結果を得るために EnhancedFlow モードを使用できます。 FlowとEnhanced Flowの主な違いは、境界線の有無にかかわらずテーブルが実際のテーブルとして認識されること、背景に画像のあるテキストではないことです。 また、番号付きリストの認識やその他の細かな点もあります。

public static void ConvertPDFtoWord_Advanced_DOCX_Format()
{    
    // ソースPDFドキュメントを開く
    Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");

    // DocSaveOptionsオブジェクトをインスタンス化
    DocSaveOptions saveOptions = new DocSaveOptions
    {
        // 出力形式としてDOCXを指定
        Format = DocSaveOptions.DocFormat.DocX
        // 他のDocSaveOptionsパラメータを設定
        Mode = DocSaveOptions.RecognitionMode.EnhancedFlow
    };
    // docx形式でドキュメントを保存
    pdfDocument.Save("ConvertToDOCX_out.docx", saveOptions);
}

参照

この記事では、上記と同じコードを使用して、以下のトピックもカバーしています。

Format: Word

Format: DOC

Format: DOCX