PDF、組版と文書変換のアンテナハウス株式会社

サイトマップ
hr トップ
ページ
hr デスクトップ
製品情報
hr システム
製品情報
hr DITA
サービス
hr 電子書籍
サービス
hr サポート hr 製品の購入
について
hr お問い合わせ hr 会社案内 hr
スペース

PDF Driver API V6 よくいただくご質問

このページでは『PDF Driver API V6』について、よくお寄せいただくご質問を紹介しています。
『PDF Driver』については、「Antenna House PDF Driver よくいただくご質問」をご覧ください。

基本・一般(インストール・ライセンス・一般的なお問い合わせについて)

PDF Driver API の機能について

付属 API について


以下、回答

基本・一般(インストール・ライセンス・一般的なお問い合わせについて)

PDF Driver APIを利用したプログラムで Excel ファイルを変換しようとしたのですが、「205」エラー(Excel でプリンタの選択に失敗)が発生します。なぜでしょうか?
PDF Driver APIは、Microsoft Office(Office) Word / Excel / PowerPoint 各アプリケーションの COM コンポーネントを利用しています。Office の COM コンポーネントを正しく動作させるためには、Office の「インストールオプション」-「Office 共通機能」にある「Visual Basic for Applications」がインストールされていなければなりません。ご確認ください。
PDF Driver APIを利用したプログラムをASP.NETで開発しています。サンプルプログラムの検証を行おうとしていますが、
「System.IO.FileNotFoundException:ファイルまたはアセンブリ 'PdfDrvNet4_60.dll'、またはその依存関係の 1 つが読み込めませんでした。指定されたモジュールが見つかりません。」
というメッセージが表示され実行できません。設定等の不足があるのでしょうか?
PDF Driver APIの.NETインターフェースはC++インターフェースのラッパーとして作成されています。このため、「PdfDrvNet4_60.dll」(あるいは「PdfDrvNet2_60.dll」)とともに「PdfDrvAPI60.dll」が必要です。
PDF Driver APIを利用したプログラムをASP.NETで開発しInternet Information Service(IIS)で運用する場合は、IISのしくみ上、「PdfDrvAPI60.dll」が存在するフォルダパスを環境変数「PATH」に設定する必要があります。
PDF Driver APIを利用したプログラムをInternet Information Service(IIS)上で稼働させているWindows Serverがログオフ状態のとき、Microsoft ExcelファイルのPDF出力が行われません。なぜでしょうか?
Excelはプリンタ指定を「プリンタ名 on NE01:」のような形式で行います。 「NE01:」のようなプリンタ情報は「HKEY_CURRENT_USER」のレジストリにありますが、 サーバーがログオフ状態では「HKEY_CURRENT_USER」にある情報を取得できないようです。
Excelはプリンタ情報を取得できずしたがってシステム上にプリンタが一切無いとみなして動作するため、プリンタ関連の処理をExcelのオートメーションで行うと全て失敗し、PDF Driver API(プリンタの変更、印刷設定の取得等)が異常終了します。
  参考情報:[IIS]ASP によるサーバ側での印刷方法について

対処方法は以下の通りです。
  1. PDF Driver APIを利用したPDF出力処理が稼働状態である場合はすべて停止してください。
  2. 上記のMicrosoftサポート情報『[IIS]ASP によるサーバ側での印刷方法について』を参照し、レジストリ設定をしてください。
  3. PDF出力処理を再稼働してください。
※IISのアプリケーションプールのプロセスモデルの「ID」には、必ず、Administrators権限を持つカスタムアカウントを指定してください。

※PDF Driver APIのサーバーサイドでの利用については制限事項があります。ご留意ください。
PDF Driver APIを利用したInternet Information Service(IIS)上のプログラムからPDF出力を行うにはどのような設定が必要ですか?
PDF Driver APIを使用したプログラムをサーバーサイド(Microsoft Active Server Pages(ASP)、ASP.NET、Windowsサービス等)で実行するとき、Microsoft Officeアプリケーション(以下Office)に適切な権限が与えられていないとPDF Driver APIからオートメーションを利用することができません。
以下にその一例を示します:

・Officeへの権限の与え方
1) 「管理ツール」‐「コンポーネントサービス」を開く。(*1)
2) 「コンソール ルート」‐「コンポーネント サービス」‐「コンピュータ」‐「マイコンピュータ」‐「DCOM の構成」を開く。
3) Word の場合(*2)では、「Microsoft Word 文書」という項目を右クリックし「プロパティ」を開く。
4) 「ID」タブを選択する。
5) 「このユーザー」を選択し、「ユーザー」と「パスワード」を設定する。「ユーザー」には管理者権限を持つユーザー名を設定する。

(*1) 64bit OSで32bitのOfficeを使用している場合のコンポーネントサービスの開き方
1. コマンドプロンプトを起動します。
2. 次のコマンドを実行します。「mmc.exe comexp.msc /32」

(*2) 各アプリケーションに対する項目名(項目名は Office のバージョンにより異なります)
・Word : Microsoft Word 文書
・Excel : Microsoft Excel アプリケーション
・PowerPoint: Microsoft PowerPoint プレゼンテーション

・Internet Information Service(IIS)の場合
アプリケーションプールの「プロセスモデル」‐「ID」には、管理者権限を持つ「カスタムアカウント」を設定します。この「ID」に設定したアカウントと同一のユーザーを、上記のOfficeの権限のための「ユーザー」として設定してください。

※ 上記はあくまでも設定例であり、構築しようとしているシステム等によって異なる場合があります。設定の詳細については、WindowsサービスやIISなどについての文書、参考図書などを参照し、構築しようとしているシステムに応じた設定を行ってください。

※PDF Driver APIのサーバーサイドでの利用については制限事項があります。ご留意ください。
PDF Driver API V6 はどの開発ツールで作成されていますか?
以下のとおりです。
  • C++ / .NET / COM / コマンドライン インターフェイス
    Microsoft Visual Studio 2010 でビルドされています。
    .NET インターフェイスは、NET Framework 2.0 / 3.0 / 3.5 / 4.0 / 4.5 に対応しています。
    Microsoft Visual Studio については、最新の Service Pack を適用してください。

  • JAVA インターフェイス
    JDK 5.0 で jar を作成しています。
PDF Driver API V5.0 と V6 に互換性はないのですか?
互換性はありません。V5.0 で作成されたプログラムは、V6 用に一部を変更する必要があります。
サンプルプログラムはありませんか?
インターフェイス別に用意しています。
製品および評価版に含まれているサンプルコードをホームページからダウンロードできます。
PDF Driver API V6 のサンプルコード
PDF Driver API V6 を利用する際に動作環境に対して必要な設定はありますか?
ライセンスファイル(pdalic.dat)のために以下のレジストリキーと値を作成してください。
キー名:HKEY_LOCAL_MACHINE\SOFTWARE\AntennaHouse\PDF_Driver\6.0\API
値名と設定値:LicenseFile = pdalic.datのフォルダパス
PDF Driver API V6 を利用する際に COM登録が必要な DLLファイルはありますか?
COMインターフェイスを利用する場合には、「PdfDrvCom60.dll」を COM登録する必要があります。
そのほかのインターフェイスの場合には、登録が必要な DLLファイルはありません。
PDF 変換の並行処理を実施する場合、推奨する OS やスペックはありますか?
並行処理する分だけ Word や Excel 等のプロセスが動きます。そのため処理 1つあたり 50MB 程度の空きメモリが必要です(ファイルや Office のバージョンによってより大きく増減します)。
PDF 変換の並行処理に処理数の制限はありますか?
Word や Excel では特に制限はありません。
PowerPoint、一太郎は、アプリケーションの仕様により同時に 1ファイルしか処理できません。これらのファイルを処理する場合は API 内部でそれぞれシリアライズします。API を呼び出したスレッドには変換終了まで処理が返りません。PowerPoint、一太郎の変換待ちの間でも Word、Excel の処理は続行します。
1プロセスで 20スレッド程度なら特に問題なく動作します。ファイルによりますが、CPU 1コアあたり 3~4スレッド程度が最も効率的です。
PDF Driver API をサービスで利用するために Microsoft Office に DCOM の設定で ID とパスワードを設定したところ、サービスでは正常に PDF 出力できるようになりましたが、スタートメニューからの Excel 起動時に「OLE 機能は現在使用できません」と表示されるようになってしまいました。回避方法を教えてください。
本現象につきましては、DCOM 設定で Office に対して起動ユーザーID を設定したことが原因になりますので、弊社製品とは無関係です。ただし、回避方法につきましては調査を継続しておりますので判明しましたらここに記載します。
保守契約の更新完了後に御社からライセンスファイルが送られてきました。ライセンスファイルの更新は年に一度実施する必要があるのですか?
現状でインストールされているバージョン(PDF Tool API 及び PDF Driver API)をそのまま使用する場合はライセンスファイルを更新する必要はありません。ライセンスファイルを更新しても更新しなくてもこれまで通りに動作します。
ただし、今後リリースされる改訂版(メンテナンスリリース)をご使用される場合には、更新された新しいライセンスファイルをご使用ください。ライセンスファイルが古い場合、改訂版は評価版として動作するため、出力されるPDFファイルの各ページに評価用の透かし文字列が挿入されます。
「スタンドアロン10ライセンス」を買って、開発元で開発用に 5本、客先で 5本使うような使い方は可能ですか?
スタンドアロンライセンス 10台分は、同一企業・学校などの内部でのみ使うことが前提です。10台分を他の会社・団体と分け合うことはできません。
「サーバーライセンス」と「スタンドアロン10ライセンス」で使用できる機能に差はありますか?
ライセンスファイルによる製品の動作の違いはありません。また、動作環境についてもライセンスファイルの違いでインストール可能な環境に違いがあるということはありません。
動作環境が「Hyper-V」のような仮想OSやCitrixなどのシンクライアント環境の場合、どのライセンスになるのでしょうか?
「サーバーライセンス」となります。
  → 参考:PDF Driver API ライセンスと価格

PDF Driver API の機能について

Excelファイルを変換すると印刷中ダイアログが表示されます。このダイアログを非表示にすることはできますか?
Excelは、印刷中に下記の「印刷中ダイアログ」を表示します。
Excel印刷中ダイアログ
このダイアログを非表示にすることはできません。
Wordにおいても同様の印刷中ダイアログが表示されますが、非表示にすることはできません。
PDF Driver API は、Word , Excel , PowerPoint , 一太郎の各ファイルをどのように起動してPDF出力処理をしているのですか?
PDF Driver API は、Word , Excel , PowerPoint , 一太郎の各アプリケーションのCOMを利用しています。入力ファイルの形式を判別して該当するアプリケーションのCOMオブジェクトを生成し、これを使用してファイルを開き印刷を行っています。
PDF Driver API V6 はマルチプロセスあるいはマルチスレッドに対応していますか?
はい。マルチプロセスあるいはマルチスレッドから印刷処理を行うことができます。
複数のプロセスのユーザーが同一である場合や複数のスレッドで印刷処理を行う場合は、あらかじめ、モデル名が「Antenna House PDF Driver 6.0」であるプリンターを、同時に印刷処理が行われると想定される個数分作成してください。
プリンターは「プリンター追加削除ツール(AHPD6_AddDelete.exe)」で作成できます。
PDF 変換の並行処理は、コマンドラインから同一ユーザーでも実施可能でしょうか?
はい。可能です。
同時処理する場合は、必要を想定される数のプリンターを「プリンター追加削除ツール(AHPD6_AddDelete.exe)」で事前に作成してください。
サーバー上で Word や Excel を PDF に変換するシステムを開発したいと考えています。これらのファイルのハイパーリンクをそのまま活かして PDF 化したいのですが、PDF Driver API ではそのような処理が可能でしょうか?
はい。実現可能です。PDF Driver API は、PDF Driver のアドインボタンの機能を使用しての PDF の一括出力が可能ですので、ハイパーリンクのみならず Word / Excel / PowerPoint からしおりを作成したり、文書情報を PDF に反映したりすることができます。
Office 文書を PDF に変換する際に、印刷会社向けの PDF に変換したいと考えています。その時、画像を JapanColor などで RGB から CMYK に変換したいのですが可能でしょうか?
はい。可能です。PDF Driver は PDF/A-1b の出力に対応していますので、設定ダイアログで指定されたプロファイルが CMYK プロファイルであれば、出力データは CMYK になります。ただし、PDF/A 仕様であるため、フォントが埋め込まれます。
PDF Driver API で、テキスト文書を PDF にしたところ、Word でテキストを開いて出力したような結果になりました。なぜでしょうか?
PDF Driver API は関連付けされたアプリケーションから PDF 出力を行うのではなく、変換元ファイルの中身を判断し、アプリケーションを起動して PDF 出力を行います。テキスト形式であれば Word を起動して PDF 出力を行います。
convertFile で PDF ファイルを出力すると、Adobe Reader が起動してその PDF ファイルが開かれてしまいます。変換のみで Adobe Reader が起動されないようにする方法を教えてください。
convertFile をすると現在選択されている設定ファイルを使用します。そのため開かないようにするためには、設定ファイルを一度読み込んでから、それを開かない設定に変更してそれを適用する必要があります。たとえば、C++ インターフェイスでしたら以下のようになります。

 ---------------

PtlDrvConvert conv;
PtlParamDriverSettings settingsData;
PtlParamCommonSettings common;

//設定ファイルの出力後にPDF開く設定をオフにする。
PtlDrvString settingsFile( 設定ファイル名 );
int res = settingsData.load(settingsFile);
if( res )
{
  PtlDrvException ex(res);
  wcout << ex.getErrorMessageJP().w_str() << endl;
  return res;
}
else
{
  common = settingsData.getCommon();
  PtlParamCommonSettings tempcommon(settingsData.getCommon());
  tempcommon.setViewAuto(FALSE);
  settingsData.setCommon(tempcommon);
  conv.setSelectSettings(PtlDrvConvert::SELECT_SETTINGS_CLASS());
  conv.setParamSettings(settingsData);
}
conv.convertFile( 省略 );
御社のサンプルコードを参考に「サイズ指定」を行ったのですが、Word や Excel に設定が反映されません。
正常な動作です。Word と Excel の場合は、ファイルが用紙サイズ持っていますので API で指定してもそれは反映されません。テキストファイルについても API では Word を利用して印刷されるため、API で指定した用紙サイズは反映されません。ただし、PowerPoint ファイルについては、API で指定した用紙サイズが反映されます。
PDF Driver API(コマンドライン)で、TIFF や GIF、JPEG などのファイルを入力ファイルに指定すると、「変換対象外ファイル(152)」というメッセージが出て処理が中断されてしまいました。
これは仕様になります。PDF Driver API の変換対象文書形式は、「Microsoft Word / Excel / PowerPoint(各2003 ? 2013)、一太郎(2010 ? 2013)、テキスト形式」になります。
ご希望されている画像の変換は弊社の『サーバベース・コンバータ』という製品で可能です。
PDF Tool API や PDF Driver API で作成する PDF ファイルに対して、Adobe Reader で注釈を付けられるようにしたいのですが、そういった設定は可能ですか?
Acrobat 独自の機能になります。PDF Tool API や PDF Driver API にその設定はありません。
PDF Driver API の Delphi からの利用は可能ですか?
はい。PDF Driver API には何種類かのインターフェイスをご用意しておりますが、COM インターフェースでしたら使用可能です。
C++ インターフェースは、VC で C インターフェイスのラッパー DLL を作っていただき、更に Delphi でラッパークラスを記述していただければ動作は可能です。
PDF Driver API を利用して、一太郎のマルチシートを 1つの PDF にしたり、複数の PDF に変換することは可能ですか?
できません。一太郎ファイルが複数シートを持っている場合は、カレントシート(=開いたときに最前面に表示されるシート)のみ印刷されます。
一太郎文書のシートが一太郎以外の形式であっても PDF にできますか?
PDF Driver API は、一太郎文書のカレントシートの形式が一太郎/Word/Excel/PowerPoint のケースで動作確認を行っています。Word/Excel/PowerPoint の場合は、動作環境にこれらのアプリケーションがインストールされている必要があります。また、以下の注意事項があります。
  • カレントシートが Word の場合
    • 1ページ目が出力されない場合があります。
      ※ これは、「ページ番号の書式」において「開始番号」を「1」に設定することで回避できます。
    • 2ページ目以降の数ページだけが出力される場合があります。
  • カレントシートが Excel の場合
    • 複数シートを持つファイルで印刷ジョブが分かれるケース(シートの「解像度」が異なる、など)では、出力 PDF が分かれます。
      例)test.pdf、test.pdf.pdf
  • カレントシートが PowerPoint の場合
    • PowerPoint ウィンドウが前面に表示されます。
※ カレントシートが Word/Excel/PowerPoint の場合は、一太郎がこれらのアプリケーションを操作して印刷処理を行っているため、上記の現象など印刷処理の問題に対して PDF Driver API 側では回避することができません。

付属 API について

複数のファイルを連続的に出力する場合、EndPrintイベントをもって出力処理完了とし、次のファイルの出力処理を行うという考え方でよいでしょうか?
EndPrintイベントの発生時に必ず出力が完了しているわけではなく、イベントの発生が少し早い場合があります。出力処理完了を確実に検出するには、EndPrintイベントが発生した後、印刷ジョブがなくなっていることを確認してください。
「出力先指定 API」(付属 API)と「PDF Driver API」の違いを教えてください。
「出力先指定 API」(付属 API)は、PDF Driver の出力先や印刷設定ファイルを指定するAPIで、印刷処理は行いません。したがって、出力先指定APIを使用する場合は、呼び出し側で印刷処理をプログラムする必要があります。
「PDF Driver API」は Word/Excel/PowerPoint/一太郎の各アプリケーションのCOMを利用して、PDF Driver API内部で印刷処理を行うことでPDFファイルを出力します。したがって、PDF Driver APIで扱うことができるファイル形式は限定されます。
「出力先指定 API」(付属 API)で設定ファイルを指定しなかった場合(PDF の出力先のみ指定した場合)、設定ファイルには何が適用されますか?
現在、PDF Driver の「印刷設定」ダイアログで指定されている設定ファイルが適用されます。
「出力先指定 API」(付属 API)で PDF の出力先を指定した際に、使用する PDF Driver の設定ファイルで「保存方法」に「出力先フォルダを指定する」となっていたらどちらの設定が優先されますか?
「出力先指定 API」で指定されている出力先が優先されます。
「出力先指定 API」で設定ファイルのみを指定している場合(PDF の出力先については未指定の場合)に使用する PDF Driver の設定ファイルで「保存方法」に「出力先フォルダを指定する」となっていれば、設定ファイルの「保存方法」が適用されます。また、この際に設定ファイルの「保存方法」に「印刷時にダイアログで確認」(これがデフォルトです)となっていれば PDF 出力時には「名前を付けて保存」ダイアログが表示されます。
「設定編集 API」(付属 API)を使用している弊社アプリケーション(A)と他のアプリケーション(B)から同時に PDF 出力した場合、(A)には「設定編集 API」で指定した設定が、(B)には PDF Driver の設定が反映されるのでしょうか?
いいえ。たとえば、(A)で「設定編集 API」を使用して設定した後、(A)から PDF 出力する前に(B)から PDF 出力した場合、(B)は「設定編集 API」で設定した内容で PDF を作成します。その後、(A)から PDF 出力しても「設定編集 API」で設定した内容では PDF 出力されません。PDF Driver の設定内容で PDF 出力されます。
出力先指定 API 使用時に、PDF Driver の設定ダイアログを開きましたが、出力先指定 API の指定が反映されていません。
これは正しい状態です。
「付属 API」は 32/64ビット 版が用意されていますが、どのように使い分ければよいでしょうか?
32bitのアプリケーションを開発するのであれば32ビット版、64ビットアプリケーションの開発であれば64ビット版の「付属 API」をご使用ください。
64ビット OS 上で「付属 API」を使用します。「付属 API」を使用するソフトが 32ビット であるため「付属 API」も 32ビット 版を使用します。この環境では PDF Driver は 64ビット 版がインストールされますが、このような組み合わせの使い方で問題はありませんか?
はい。問題ありません。「付属 API」を使用するアプリケーションが 32ビット なら 32ビット 版を、64ビット であれば 64ビット 版の「付属 API」をご使用ください。
スペース
Copyright Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.