既存の Web/.NET アプリに PDF 出力機能を追加

ActivePDF Server で PDF の動的な生成

ActivePDF Server は、動的な PDF 生成ツールで、集中化した PDF 生成機能を提供することにより、ユーザーごとのソフトウェアのライセンス コストやサポート コストを削減することが出来ます。

ActivePDF Server を使用することで、Windows ベースの印刷機能を提供しているアプリケーションから "PDF へ印刷" へ出力先を変更できる為、既存のビジネス アプリケーションへ簡単に PDF への出力機能の追加も可能です。ActivePDF Server によるサーバーサイドでの処理により、エンドユーザーは、PDF の設定に頭を悩ませることがなくなります。


※ ActivePDF Server は、.NET/COM API による PDF 印刷機能のみ提供します。ネットワーク上で複数のユーザーが使用可能なネットワーク共有プリンタの機能が必要な場合は、ActivePDF Meridian をご利用ください。

印刷機能を提供するアプリから PDF へ出力できます。


ActivePDF Server の特長

  • 印刷機能を提供するアプリケーションからの PDF の生成
  • PostScript, PCL, XPS など、40 種類以上の画像形式に対応
  • Web 表示に適した PDF の線形化機能を提供
  • PDF への目次の追加
  • マルチスレッド プロセッシングに対応し、大量の PDF 生成にも対応
  • API およびアドミニストレーター コンソールによる集中管理

オリジナルの PDF 変換アプリの作成も可能です。

ActivePDF Server の使用例

  • 既存の Windows アプリケーションやライブラリに PDF 出力を追加して、Web 上に移植。
  • サーバーベースのアプリに PDF 出力機能を追加し、製品機能を拡張。
  • .NET で PDF への鮮やかな画像の出力。
  • プリント ストリームを PDF へ変換。
  • オンデマンドで、Postscript を ISO に準拠した PDF に変換。
  • 印刷ジョブの出力先を変更して、既存アプリを PDF レポート作成アプリへ。
  • 印刷品質と解像度の設定で、スクリーン表示用やプリプレス用に PDF 出力の最適化。
  • パスワードや使用権を含むカスタマイズ可能なセキュリティ設定で、セキュアな PDF 出力。

ActivePDF Server 8.1.0 リリース (2018/2/26)

ActivePDF Server 8.1.0 では、Windows Server 2016 への対応、PDF から PCL への変換機能、.oxps から PDF への変換機能に加え、これまでに報告された問題の修正が含まれています。Server 8.1.0 での改善点の詳細は、製品のリリースノートをご参照ください。

ActivePDF Server 2013 R4.1 リリース (2017/7/10)

ActivePDF Server 2013 R4.1 では、これまでに報告された問題の修正が含まれています。Server 2013 R4.1 での改善点の詳細は、製品のリリースノートをご参照ください。

ActivePDF Server 2013 R4.0 リリース (2017/3/6)

ActivePDF Server 2013 R4.0 がリリースされました。Server 2013 R4.0 では、以下の新機能・機能強化が追加されています。ActivePDF Server 2013 R4.0 のリリースノートはこちらをご参照ください。

  • PDF バージョン 1.6 および 1.7 形式に出力できるようになりました。(デフォルトの設定では PDF バージョン 1.5 で出力します。)
  • ファイル サイズを小さくして PDF/A 形式に出力できるようになりました。
  • 開発プログラムのライセンスを使用して出力する際に追加される透かしが半透明になりました。

ActivePDF Server 2013 R3.1 リリース (2016/10/11)

ActivePDF Server 2013 R3.1 がリリースされました。Server 2013 R3.1 では、以下の新機能・機能強化が追加されています。ActivePDF Server 2013 R3.1 のリリースノートはこちらをご参照ください。

  • SetPDFSecurityAES メソッドに 128-bit と 256-bit の AES 暗号化を設定できるパラメターを追加しました。この設定は、Server の Configuration Manager からも変更可能になっています。
  • PDF 変換時に、デフォルトでページ オブジェクトとフォントを圧縮するようになり、ファイル サイズを縮小することができます。SetPDFCompression メソッドでこの機能を無効/有効にできます。また、Server の Configuration Manager からも変更可能になっています。
  • Configuration Manager から、透かしの位置を出力するページ サイズに合わせて、中央/左/右/上部/下部に配置できるようなりました。
  • Configuration Manager のインターフェイスが更新され、よりユーザー フレンドリーになりました。

ActivePDF Server 2013 R3 リリース (2016/3/14)

ActivePDF Server 2013 R3 がリリースされました。Server 2013 R3 では、解像度に関連する機能の改善と、これまでに報告された問題の修正が含まれています。Server 2013 R3 での改善点の詳細は、製品のリリースノートをご参照ください。

ActivePDF Server 2013 R2 リリース (2014/12/26)

ActivePDF Server 2013 R2 では、これまでに報告された問題の修正が含まれています。Server 2013 R2 での改善点の詳細は、製品のリリースノートをご参照ください。

ActivePDF Server 2013 リリース

ActivePDF Server 2013 では、以下の新機能・機能強化が追加されています。ActivePDF Server 2013 のリリースノートはこちらをご参照ください。

新しい API
新しいクラスや列挙型が含まれ、新しいコールは、より明確な名前となり、理解しやすくなっています。Server 2013 のサンプル コードはこちらをご参照ください。

電子署名
InvisiblySignFiles メソッドを使用することで、出力ファイルへ電子署名を追加することができます。

スタンプと透かし
AddStampCollection, AddStampImage などスタンプに関連したコールで、出力ファイルへスタンプや透かしを追加することができます。

AES 暗号化
SetPDFSecurityAES メソッドを使用することで、アメリカ国立標準技術研究所 (National Institute of Standards and Technology, NIST) により開発された連邦情報処理規格 (Federal Information Processing Standard) に従って、出力ファイルを暗号化することができます。

ストリームライン アーキテクチャ
Server の新しいアーキテクチャでは、必要なサービス数を減らし、内部コミュニケーションを簡素化しました。

パフォーマンス向上
アーキテクチャの再設計により、全体の能力効率が向上し、より良いパフォーマンスを生み出します。

エラー処理の強化
.NET の Results オブジェクトおよび COM の ServerResult オブジェクトを通じてエラーが処理されます。

トラブルシューティング ツールの強化
ロギングと Support Tools の向上により、トラブルシューティングや問題解決に必要な詳細情報を取得しやすくなりました。

ドキュメンテーション
Google 風の検索結果などの新しい機能を含む HTML5 フォーマットになりました。

ブラウザ ベースの UI
Configuration Manager が一新されました。ロードタイムが向上し、複数のプロファイルの管理や設定がより簡単になりました。

Microsoft Windows Server 2012 サポート
Server 2013 では、Microsoft Windows Server 2012 をサポートしています。

PDF の自動変換

COM や .NET を使用し、ActivePDF Server コンポーネントをネイティブ アプリケーションへ設定して、ActivePDF の仮想プリンタを選択することで、PDF 生成を可能にします。プリンタを選択できないアプリケーションでも SetPrinterAsDefault メソッドをコールすれば、PDF へ印刷することができます。更に、ActivePDF Server の提供するプロパティを設定することで、出力する PDF を既存の PDF を結合したり、セキュリティの追加や PDF のリニアー化も可能です。PostScript、PCL、XPS やイメージ ファイル (40 種類以上の画像形式に対応) も、1つのメソッド コールで PDF へ変換可能です。プリンタから印刷可能なファイルであれば、強力な PDF プリンタ ドライバである ActivePDF Server を使用して PDF へ変換することができます。

高いスケーラビリティ

ActivePDF Server のライセンスはサーバー単位の為、ビジネス アプリケーションから PDF を生成し、PDF 出力を組織全体へ提供する方法としてコスト パフォーマンスに優れています。ActivePDF Server はマルチスレッドに対応している為、同時に PDF 変換処理を行った場合も、ユーザーはPDF 出力のキューを待つ必要はありません。ActivePDF Server は、サーバーサイドで大量の PDF 生成を処理する為に設計された PDF 変換ツールです。パラメーターをシングルプロセッサあるいはマルチプロセッサに対応させているので、ActivePDF Server は、サーバーに一つのライセンスがあれば十分です。したがって、PDF 変換作業に余分なコストが掛からず (プレミアム料金等)、マルチ CPU マシンの性能を利用することが可能です。

簡単なインテグレーション

ActivePDF Server は、.NET ネイティブ、COM API を使用しているため、1 つのメソッド コールで既存のアプリケーションに統合することが可能です。また、ActivePDF Server には、集中化された管理コンソールが含まれており、素早く簡単に PDF の出力設定のカスタマイズが可能です。

シームレスな変換

実質的に Windows ベースで、印刷機能を提供しているどのアプリケーションからでも "PDF へ印刷" へ出力先を変更でき、エンドユーザーによる PDF 変換プロセスの必要性を除きます。サーバーサイドでの変換により、エンドユーザーは、PDF の設定に頭を悩ませることがなくなります。その代わりにサーバーの管理者が、ActivePDF Server のプロパティとメソッドを使用して、PDF の出力設定を管理することになります。

PDF の出力設定

ActivePDF Server を使用することで、出力する PDF 設定を管理することが可能です。変換オプションは、ページサイズ、圧縮および解像度のオプション、テキストの埋め込み、しおりの作成、既存ファイルへの追加などさまざまです。更に、ActivePDF Server には、PDFMark インタラプタが含まれているので、PDFMark を生成可能なアプリケーションから機能豊かな PDF を作成することが可能です。

PDF ファイル向けの強力なセキュリティ

ActivePDF Server は 40-bit、128-bit および 256-bit 暗号化をサポートしているので、ミッションクリティカルな文書の変換も安心して行えます。セキュリティオプションには、パスワード保護、印刷許可、テキストや画像のコピー保護などが含まれています。更に、出力する PDF に電子指紋を追加する FingerprintOutputputFile メソッドを使用することで、PDF ファイルの文書の保全性を保証できます。PDF 変換時に電子指紋を適用することで、ワークフローのどの部分からでも、PDF 文書のコンテンツが損なわれていないかを簡単に確認することができます。

PDF の線形化 (リニアライズ)

PDF をリニアライズすることで、サイズの大きな PDF 文書を Web 表示用に最適化します。最適化すると、PDF をページ単位でサーバーからダウンロードできるようになり、ユーザーは PDF ファイル全てをダウンロードするまで待つ必要がなくなります。

製品機能

互換性
.NET のネイティブ サポート ActivePDF Server
VB / ASP / COM のサポート ActivePDF Server
Windows Server 2008 R2 / 2012 / 2016 のサポート ActivePDF Server
ネイティブ 64bit サポート ActivePDF Server
変換機能
トゥルーコンカレント PDF 作成 ActivePDF Server
Print to PDF Generation ActivePDF Server
PDF 変換用の PostScript ActivePDF Server
PCL からの PDF 変換 ActivePDF Server
XPS からの PDF 変換 ActivePDF Server
40 種類以上の画像ファイルの PDF への変換 ActivePDF Server
PDFMark インタプリタ ActivePDF Server
管理上の機能
一体となった管理コンソール ActivePDF DocConverter
Email および FTP への出力設定 ActivePDF DocConverter
マルチスレッドでの PDF 生成 ActivePDF DocConverter
PDF 生成機能
PDF バージョン 1.3, 1.4, 1.5, 1.6, 1.7 のサポート ActivePDF Server
PDF の暗号化およびパスワード設定 ActivePDF Server
リニアー化 (Web 最適化) ActivePDF Server
解像度の設定 ActivePDF Server
圧縮率の設定 ActivePDF Server
出力先、ファイル名の設定 ActivePDF Server
PDF サマリ情報の設定 ActivePDF Server
CMYK から RGB への変換 ActivePDF Server
白黒印刷 ActivePDF Server
既存のファイルへのページの結合 ActivePDF Server
しおりの作成 ActivePDF Server
TrueType と Postscript フォントのサポート ActivePDF Server
印刷品質の設定 ActivePDF Server
PDF ビューモードの設定 ActivePDF Server

サンプル コード

ActivePDF 社では、ActivePDF Server のサンプル コードを用意しています。よくお問い合わせいただく機能のサンプル コードを紹介します。

ActivePDF Server 8.1.0 のシステム要件

最新版のシステム要件は、製品のリリースノートでご確認ください。

オペレーティング システム

  • Windows Server 2008 R2
  • Windows Server 2012 R2
  • Windows Server 2016

注意 Windows Server 2012 にインストールする場合、Windows Server 2012 用の 2 つの Microsoft Update (KB2919442 (Windows8.1-KB2919442-x64.msu) および KB2919355 (clearcompresssionflag.exe および Windows8.1-KB2919355-x64.msu)) を適用する必要があります。詳細は こちらのページをご参照ください。

最小ハードウェア要件

  • 256 MB 以上の RAM
  • 170 MB 以上のハードディスクの空き容量 (アプリケーション用)

その他

  • Microsoft .NET Framework 4.6.2
    (製品のインストール時に .NET Framework 4.6.2 がインストールされていない場合、インストールされます。)
  • ActivePDF Server は、.NET/COM API による PDF 印刷機能のみ提供します。ネットワーク上で複数のユーザーが使用可能なネットワーク共有プリンタの機能が必要な場合は、ActivePDF Meridian をご利用ください。
  • ActivePDF Server のリモート デスクトップ サービス (RDS)、ターミナル サービス、および Citrix 環境での使用は、サポートされていません。

よくお問い合わせいただく機能のサンプル コードを紹介します。ここでのコードは C# になります。その他のプログラミング言語のサンプル コードは、こちらのページをご参照ください。

ActivePDF Server での印刷の基本 (C#)

// Copyright (c) 2016 ActivePDF, Inc.
// Example created 04/14/16

using System;

// ActivePDF 製品の .NET DLL をアプリケーションに追加してください。
// .NET DLL は、インストール先の "bin" フォルダにあります。

class Examples
{
  public static void Example()
  {
    string strPath;
    ServerDK.Results.ServerResult results;
    
    strPath = System.AppDomain.CurrentDomain.BaseDirectory;

    // オブジェクトのインスタンス化
    APServer.Server oSVR = new APServer.Server();
    
    // 出力先と出力するファイルのファイル名の設定
    oSVR.OutputDirectory = strPath;
    oSVR.NewDocumentName = "Test.pdf";
    
    // 印刷ジョブの開始
    results = oSVR.BeginPrintToPDF();
    if (results.ServerStatus != ServerDK.Results.ServerStatus.Success)
    {
      ErrorHandler("BeginPrintToPDF", results, results.ServerStatus.ToString());
    }
    
    // ここで ActivePDF Server を使用し、印刷ジョブから PDF を作成します。
    // お客様のアプリケーションから ActivePDF Server の静的 (スタティック) 
    // プリンターを呼び出すか、oSVR.NewPrinterName を呼び出して、動的に新しい
    // プリンターを作成します。
    // この例では、テスト用として oSVR.TestPrintToPDF を呼び出します。
  
    results = oSVR.TestPrintToPDF("Hello World!");
    if (results.ServerStatus != ServerDK.Results.ServerStatus.Success)
    {
      ErrorHandler("TestPrintToPDF", results, results.ServerStatus.ToString());
    }
    
    // 印刷ジョブが完了するまでの待ち時間 (秒) の設定
    results = oSVR.EndPrintToPDF(30);
    if (results.ServerStatus != ServerDK.Results.ServerStatus.Success)
    {
      ErrorHandler("EndPrintToPDF", results, results.ServerStatus.ToString());
    }
    
    // オブジェクトのリリース
    oSVR = null;
    
    // 処理完了
    WriteResults("Done!");
  }
 
  // エラー処理
  public static void ErrorHandler(string strMethod, ADK.Results.Result results, string errorStatus)
  {
    WriteResults("Error with " + strMethod);
    WriteResults(errorStatus);
    WriteResults(results.Details);
    if (results.Origin.Function != strMethod)
    {
      WriteResults(results.Origin.Class + "." + results.Origin.Function);
    }
    if (results.ResultException != null)
    {
      // 例外のスタック トレースを見るには、以下の行をコメントアウトします。
      //WriteResults(results.ResultException.StackTrace);
    }
    Environment.Exit(1);
  }
  
  // 出力データの書き込み
  public static void WriteResults(string content)
  {
    // 結果を書き出す先を選択します
  
    // デバッグ出力
    //System.Diagnostics.Debug.WriteLine("ActivePDF: * " + content);
  
    // コンソール
    Console.WriteLine(content);
  }
}

Excel を PDF へ印刷 (C#)

// Copyright (c) 2016 ActivePDF, Inc.
// Example created 04/14/16

using System;

// ActivePDF 製品の .NET DLL をアプリケーションに追加してください。
// .NET DLL は、インストール先の "bin" フォルダにあります。

class Examples
{
  public static void Example()
  {
    string strPath;
    ServerDK.Results.ServerResult results;
    
    strPath = System.AppDomain.CurrentDomain.BaseDirectory;

    // オブジェクトのインスタンス化
    APServer.Server oSVR = new APServer.Server();
    
    // 出力先と出力するファイルのファイル名の設定
    oSVR.OutputDirectory = strPath;
    oSVR.NewDocumentName = "Output.pdf";
    
    // 印刷ジョブの開始
    results = oSVR.BeginPrintToPDF();
    if (results.ServerStatus != ServerDK.Results.ServerStatus.Success)
    {
      ErrorHandler("BeginPrintToPDF", results, results.ServerStatus.ToString());
    }
    
    // Excel を自動化し、ActivePDF Server でドキュメントを印刷
    // ノート: Excel Object へアクセスする為に 'Microsoft Excel <> Object Library' を 
    // COM オブジェクトとして .NET アプリケーションへ追加する必要があります。
    Microsoft.Office.Interop.Excel._Application oXLS = new Microsoft.Office.Interop.Excel.Application();
    oXLS.DisplayAlerts = false;
    oXLS.Visible = false;
    object m = System.Type.Missing;
    Microsoft.Office.Interop.Excel._Workbook oWB = oXLS.Workbooks.Open(strPath + "excel.xls", m, true, m, m, m, true, m, m, false, false, m, false);
    oWB.Activate();
    oWB.PrintOut(1, 999, 1, false, oSVR.NewPrinterName, false, false);
    oWB.Close(0);
    oXLS.Quit();
    oWB = null;
    oXLS = null;
    
    // 印刷ジョブが完了するまでの待ち時間 (秒) の設定
    results = oSVR.EndPrintToPDF(30);
    if (results.ServerStatus != ServerDK.Results.ServerStatus.Success)
    {
      ErrorHandler("EndPrintToPDF", results, results.ServerStatus.ToString());
    }
    
    // オブジェクトのリリース
    oSVR = null;
    
    // 処理完了
    WriteResults("Done!");
  }
  
  // エラー処理
  public static void ErrorHandler(string strMethod, ADK.Results.Result results, string errorStatus)
  {
    WriteResults("Error with " + strMethod);
    WriteResults(errorStatus);
    WriteResults(results.Details);
    if (results.Origin.Function != strMethod)
    {
      WriteResults(results.Origin.Class + "." + results.Origin.Function);
    }
    if (results.ResultException != null)
    {
      // 例外のスタック トレースを見るには、以下の行をコメントアウトします。
      //WriteResults(results.ResultException.StackTrace);
    }
    Environment.Exit(1);
  }
  
  // 出力データの書き込み
  public static void WriteResults(string content)
  {
    // 結果を書き出す先を選択します
  
    // デバッグ出力
    //System.Diagnostics.Debug.WriteLine("ActivePDF: * " + content);
  
    // コンソール
    Console.WriteLine(content);
  }
}

Word ファイルを PDF へ印刷 (C#)

// Copyright (c) 2016 ActivePDF, Inc.
// Example created 04/14/16

using System;

// ActivePDF 製品の .NET DLL をアプリケーションに追加してください。
// .NET DLL は、インストール先の "bin" フォルダにあります。

class Examples
{
  public static void Example()
  {
    string strPath;
    ServerDK.Results.ServerResult results;
    
    strPath = System.AppDomain.CurrentDomain.BaseDirectory;

    // オブジェクトのインスタンス化
    APServer.Server oSVR = new APServer.Server();
    
    // 出力先と出力するファイルのファイル名の設定
    oSVR.OutputDirectory = strPath;
    oSVR.NewDocumentName = "Output.pdf";
    
    // 印刷ジョブの開始
    results = oSVR.BeginPrintToPDF();
    if (results.ServerStatus != ServerDK.Results.ServerStatus.Success)
    {
      ErrorHandler("BeginPrintToPDF", results, results.ServerStatus.ToString());
    }
    
    // Word を自動化し、ActivePDF Server でドキュメントを印刷
    // ノート: Word Object へアクセスする為に 'Microsoft.Office.Interop.Word' を 
    // COM オブジェクトとして .NET アプリケーションへ追加する必要があります。
    Microsoft.Office.Interop.Word._Application oWORD = new Microsoft.Office.Interop.Word.Application();
    oWORD.ActivePrinter = oSVR.NewPrinterName;
    oWORD.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone;
    oWORD.Visible = false;
    Microsoft.Office.Interop.Word.Document oDOC = oWORD.Documents.Open(strPath + "Word.doc");
    oDOC.Activate();
    oWORD.PrintOut();
    oWORD.Documents.Close();
    oWORD.Quit();
    oDOC = null;
    oWORD = null;
    
    // 印刷ジョブが完了するまでの待ち時間 (秒) の設定
    results = oSVR.EndPrintToPDF(30);
    if (results.ServerStatus != ServerDK.Results.ServerStatus.Success)
    {
      ErrorHandler("EndPrintToPDF", results, results.ServerStatus.ToString());
    }
    
    // オブジェクトのリリース
    oSVR = null;
    
    // 処理完了
    WriteResults("Done!");
  }
  
  // エラー処理
  public static void ErrorHandler(string strMethod, ADK.Results.Result results, string errorStatus)
  {
    WriteResults("Error with " + strMethod);
    WriteResults(errorStatus);
    WriteResults(results.Details);
    if (results.Origin.Function != strMethod)
    {
      WriteResults(results.Origin.Class + "." + results.Origin.Function);
    }
    if (results.ResultException != null)
    {
      // 例外のスタック トレースを見るには、以下の行をコメントアウトします。
      //WriteResults(results.ResultException.StackTrace);
    }
    Environment.Exit(1);
  }
  
  // 出力データの書き込み
  public static void WriteResults(string content)
  {
    // 結果を書き出す先を選択します
  
    // デバッグ出力
    //System.Diagnostics.Debug.WriteLine("ActivePDF: * " + content);
  
    // コンソール
    Console.WriteLine(content);
  }
}

ページトップへ