C# を使用して Office インストール不要でサーバー上の Office ドキュメントを PDF に変換する方法

はじめに

現代のビジネス環境では、信頼性が高く、誰でもアクセスできる形式でドキュメントを共有およびアーカイブすることが最も重要です。Portable Document Format (PDF) は、さまざまなプラットフォーム間で一貫したプレゼンテーションを保証する、多用途で広くサポートされている形式として際立っています。Word、Excel、PowerPoint ファイルなどの Microsoft Office ドキュメントを PDF に変換することは一般的な要件です。

Apryse PDF SDK を複数の言語およびフレームワークで使用すると、クライアント側 (ブラウザ内) とサーバー側の両方で Office ドキュメントを PDF に変換できます。

このブログ記事では、サーバー上の .Net で実行される Apryse SDK C# を使用して Office ドキュメントを変換する方法を説明します。

Apyse .NET ライブラリは、数十のサンプルを含むパッケージと同様に、Node を使用してダウンロードできます。この記事では、 Word を PDF に変換するサンプルを使用し、それを拡張して使用可能な他の機能をいくつかご紹介します。

しかし、PDF の作成は簡単で、「Word からエクスポート」するだけでは?

Office がインストールされている場合は、それを使用して自分のマシンで PDF を簡単に作成できます。

理論的には、Office を使用して Web サーバー バックエンド内で変換を実行するサーバーをセットアップできますが、これにはいくつかの問題があります。

  • Office の一部のバージョンは、サービス コンポーネントとして使用することが推奨されません。
  • Office では、特に更新が必要な場合にモーダル ユーザー ダイアログが表示されることがあります。サービスには UI がないため、ダイアログを閉じることができず、アプリケーションがハングします。
  • この方法での Office のライセンスは、シングル ユーザーのデスクトップ マシンの場合と同じではないため、このソリューションを合法的にライセンスされた方法で使用するにはさらに複雑さが伴います。

Apryse ソリューションのすばらしい点は、変換を行うためにユーザーのマシンにもサーバーにも Office をインストールする必要がないことです。

ブラウザーではなくサーバー上で変換する必要があるのはなぜ?

ブラウザーで変換を実行することにはいくつかの利点がありますが、複雑で大きなファイルの場合はサーバーでの変換の方が速く、毎回同じ変換が行われる可能性があります。ファイルの変換は、少なくとも部分的にローカルで利用可能なフォントに依存するため、あるマシンで実行されるブラウザーベースの変換は、利用可能なフォントが異なる別のマシンで実行される同じファイルの変換とは異なる可能性があります。

Apryse はサーバー側とブラウザー内の両方の変換のソリューションを提供しますが、この例ではサーバー側のオプションのみを見ていきます。

ドキュメントを PDF に変換するためのサンプル プロジェクト

サンプル プロジェクトは、ハードコードされた場所にある単一のドキュメントを PDF に変換する方法を示すことを目的としています。

どのドキュメントを変換するか、また変換完了後に PDF をどうするかを指定できるようにしたいと思われるでしょう。そのため、このコードは、ドキュメント処理ソリューション全体を記述する方法のテンプレートとしてではなく、ファイルを変換して結果を確認する方法の例として参考としてください。

SDK トライアル キーの入手方法

Apryse アカウントをまだお持ちでない場合は、https://dev.apryse.com にアクセスして新しいアカウントを登録してください。これにより、Apyse は、デモ機能を有効にするために Apyse SDK で使用されるデモ ライセンス キーを付与できるようになります。

図 1 – 開発者ポータル

登録したアカウントで https://dev.apryse.com にログインします。.NET Core SDK は Windows、Linux、macOS で利用できるため、使用しているプラ​​ットフォームを選択してください。

Reveal ボタンをクリックして、パーソナライズされたトライアル キーを取得します。

図 2 – ダウンロード センター画面とトライアル キー。

https://docs.apryse.com/try-now/ から入手できる開始のための優れたガイドがあり、Windows、macOS、または Linux でアプリケーションを作成する手順を説明していますが、この記事では Windows 上でシンプルなアプリを一から作成します。

図 3 – ガイドの選択画面。

開発には VSCode を使用し、Apryse SDK をインストールするには NuGet を使用します。

Office ドキュメントから PDF を作成する場合は多くのオプションがあり、Apryse Web サイトのサンプルで説明されていますが、この記事では、Office ドキュメントを PDF に変換する非常に簡単な方法のみを使用します。

前提条件

C# 拡張機能がインストールされた VSCode が必要です。

プロジェクトのセットアップ

• 名前を付けて新しいフォルダーを作成します。

• VSCode 内でそのフォルダーを開きます。

図 4 – VSCode の空のプロジェクト フォルダー。

• ターミナル内で「dotnet new console –framework net7.0」と入力します。これにより、スタブ プロジェクトが作成されます。

図 5 – スタブ プロジェクトを作成した後のプロジェクト フォルダー。

• ターミナルで、dotnet add package PDFTron.NET.x64 を使用して Apryse ライブラリをダウンロードします。これにより、NuGet を使用して最新バージョンがインストールされます。

• 次のコードを program.cs にコピーします。これは https://docs.apryse.com/documentation/samples/dotnetcore/cs/OfficeToPDFTest/ のコードに基づいていますが、最も単純な変換方法のみを使用しています。このコードは非常に基本的なものであり、サポートされている無数のオプションは示されていません。これは、変換がいかに簡単であるかを示すことのみを目的としています。

using pdftron;
using pdftron.SDF;
using pdftron.PDF;

namespace OfficeToPDFTestCS
{
  class Class1
{
  private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
  static Class1() { }

  static void SimpleConvert(String input_path, String output_path)
  {
    // Start with a PDFDoc (the conversion destination)
    using (PDFDoc pdfdoc = new PDFDoc())
    {
        // perform the conversion with no optional parameters
        pdftron.PDF.Convert.OfficeToPDF(pdfdoc, input_path, null);

        // save the result
        pdfdoc.Save(output_path , SDFDoc.SaveOptions.e_linearized);
        
        // And we're done!
        Console.WriteLine("Saved " + output_path);
    }
}

/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main(string[] args)
{
        PDFNet.Initialize([Enter your key here]);
        try
        {
        SimpleConvert("./TestFiles/Fishermen.docx", "./TestFiles/Fishermen.pdf");
        }
        catch (pdftron.Common.PDFNetException e)
        {
        Console.WriteLine(e.Message);
        }
        catch (Exception e)
        {
        Console.WriteLine("Unrecognized Exception: " + e.Message);
        }
        
        PDFNet.Terminate();
        Console.WriteLine("Done.");
      }
    }
}
  • 次に、先にダウンロードしたライセンス キーをコピーします。
  • 注: このサンプル コードには、変換されるファイルの場所がハードコーディングされており、TestFiles というフォルダーに配置される必要があります。変換されたファイルはこのフォルダーに配置されます。
図 6 – プログラムを実行する前に、変換するファイルを配置するフォルダー。

• dotnet run を使用して (または VSCode 内で F5 を使用して) プログラムを実行します。しばらくすると、ファイルが表示され、表示できるようになります。

図 7 – プログラムの実行後に新しく作成された PDF が表示されます。

元の Word と新しく作成した PDF を比較すると、それらが同一であることがわかります。

図 8 – Word の元のドキュメント。
図 9 – 新しく作成された PDF (Chrome で表示)。

これで、このコードを Web サイトへのバックエンドとして使用し、Word がアップロードされ、変換された PDF が返されるようになりました。

Word を PDF に変換する他に SDK でできることは?

Word からの変換に加えて、SDK は Excel および PowerPoint から PDF に変換でき、従来の Office 形式 (.doc、.xls、.ppt) もサポートします。

最も単純に、他の Office ドキュメント タイプから変換するために必要なのは、ファイルを変換メソッドに渡すときにファイル拡張子を含めることだけです。

たとえば、Excel は、ファイルを TestFiles フォルダーにコピーしてから次のコマンドを使用することで、元のスプレッドシートと同じ方法で各ページがレイアウトされた複数ページの PDF に変換できます。

SimpleConvert("./TestFiles/Cashflow.xlsx", "./TestFiles/Cashflow.pdf"); 

SDK は賢く、.xlsx が Excel から PDF への変換が必要であることを理解します。

図 11: PDF に変換された Excel の例。

また、PowerPoint は、以下を使用して同様の方法で複数ページの PDF に変換できます。

SimpleConvert("./TestFiles/WW1Cryptography.pptx", "./TestFiles/WW1Cryptography.pdf");
図 12: PowerPoint が PDF に変換されました。

その他の例

上記に示した方法は非常に簡単です。ただし、これは、使用可能なすべてのオプションを示しているわけではないことを意味します。より詳細なコード サンプルには、変換オプションを設定できる「FlexibleConvert」オプションが含まれており、マルチスレッド環境内でコードを使用して変換を監視およびキャンセルする方法を示しています。

まとめ

Apryse は、Office をインストールせずに Office ドキュメントを PDF に変換するためのシンプルなメカニズムを提供します。これは、デフォルトのオプションを使用するわずか数行のコードで実行できます。要件に合わせて変換メカニズムを調整できるようにするために、より複雑なオプションも存在します。

これらの強力な変換機能と C# ライブラリによる統合の容易さにより、ドキュメント処理ワークフローの強化を目指す開発者にとって最適な選択肢となっています。ドキュメント管理システム、オンライン コラボレーション プラットフォーム、または Office ドキュメントに関連するその他のアプリケーションを構築している場合でも、Apryse はシームレスで効率的な変換プロセスの提供に役立ちます。

Apryse の機能を自由に使用すると、アプリケーションの機能を強化でき、Office ドキュメントを PDF 形式に変換して操作するための信頼できる方法をユーザーに提供できます。

Office ドキュメントを PDF に変換するだけでなく、Apryse は、PDF から Office ドキュメントへの変換など、Office ドキュメントと PDF の両方を編集および処理するためのツールを多数提供しています。

本製品に関するご質問、ご不明な点はエクセルソフトまでお気軽にお問い合わせください。

Apryse 製品の詳細は、弊社 Web サイトをご確認ください。

記事参照:
© 2024 Apryse
How to Convert Office Documents to PDF on a Server Without Installing Office Using C#

タイトルとURLをコピーしました