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

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

PDF Driver API V5.0 よくいただくご質問

このページでは『PDF Driver API V5.0』について、よくお寄せいただくご質問を紹介しています。
『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を利用したプログラムを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 V6についてですが、サーバーサイド利用の制限事項は、PDF Driver API V5においても同様です)
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についてですが、サーバーサイド利用の制限事項は、PDF Driver API V5においても同様です)
PDF Driver API V5.0 はどの開発ツールで作成されていますか?
以下のとおりです。
  • C++ / .NET / COM / コマンドライン インターフェイス
    Microsoft Visual Studio 2008 でビルドされています。
    .NET インターフェイスは、NET Framework 2.0 /3.0 / 3.5 に対応しています。
    Microsoft Visual Studio については、最新の Service Pack を適用してください。
  • JAVA インターフェイス
    JDK 5.0(1.5.0_22)で jar を作成しています。
PDF Driver API V3.1 と V5.0 に互換性はないのですか?
互換性はありません。V3.1 で作成されたプログラムは、V5.0 用に一部を変更する必要があります。
PDF Driver API V5.0 を利用する際に環境変数の設定が必要ですか?
はい、必要です。
環境変数名「PDL50_LIC_PATH」を新規作成し、ライセンスファイル(pdalic.dat)が格納されているフォルダーパスを設定してください。
PDF Driver API V5.0 を利用する際に COM登録が必要な DLLファイルはありますか?
COMインターフェイスを利用する場合には、「PdfDrvCom50.dll」を COM登録する必要があります。
そのほかのインターフェイスの場合には、登録が必要な DLLファイルはありません。
PDF Driver API は、Excelファイルをどのように起動して PDF出力処理をしているのですか?
PDF Driver API は、印刷処理時に Excel OLEオートメイションを利用して Excel のプロセスを起動し、ファイルを開いて印刷を行っています。なお、このとき Excel の画面は非表示状態にしています。
PDF Driver API V5.0 はマルチスレッドやマルチプロセスに対応していますか?
はい。PDF Driver API V5.0 からマルチスレッド/マルチプロセスに対応しました。以下、マニュアルからの抜粋です。
  • PDF Driver API を、マルチスレッドあるいはマルチプロセスで利用できるようになりました。これにより、複数文書を同時に印刷する処理ができます。
  • スレッドひとつにプリンターひとつを割り当てて印刷を行います。このため API での処理を行うとき、最初にプリンター選択処理が必要となります。
  • ひとつのスレッドから同時にふたつの印刷処理が行われないよう制御する必要があります。
PDF 変換の並行処理は、コマンドラインから同一ユーザーでも実施可能でしょうか?
はい。可能です。(PDF Driver API V5.0 以降)
同時処理する場合は、必要を想定される数のプリンタを「プリンター追加削除ツール(AHPD5_AddDelete.exe)」で事前に作成しておくことを推奨します。
PDF 変換の並行処理を実施する場合、推奨する OS やスペックはありますか?
並行処理する分だけ Word や Excel 等のプロセスが動きます。そのため処理 1つあたり 50MB 程度の空きメモリが必要です(ファイルや Office のバージョンによってより大きく増減します)。
PDF 変換の並行処理に処理数の制限はありますか?
Word や Excel では特に制限はありません。
PowerPoint は 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 Driver API V5.0 は、サーバー仮想化プラットフォームの「Hyper-V」上で正しく動作しますか?
はい。「Microsoft Windows Server 2008 R2 Datacenter SP1」に搭載された「Hyper-V」で動作することを確認しました。
PDF Driver API V5.0 は Citrix などのシンクライアント環境で PDF 作成を行うことができますか?
可能です。PDF Driver API V5.0 は Citrix XenApp 環境で動作確認をしております。ただし「メタフレーム」は旧製品となるため動作保証はできません。
貴社製品の PDF Driver API V5.0 は VB6 に対応していますか。貴社のホームページ、評価版を見た限りでは Visual Studio 2005 以上にしか対応していないようですが。
PDF Driver API V5.0 には COM インターフェイス及びコマンドラインインターフェイスを用意していますので、Visual Basic 6.0 からの利用も可能です。
ただし、Visual Basic 6.0 のサポートがすでに終了していることもあり、弊社としましても、現象によってはサポートできません。
Microsoft Visual Basic .NET(2002)で PDF Driver API V5 が使用できるように設定できません。ちなみに PDF Driver API V2.5 では問題なく動作します。
PDF Driver API V5.0 の .NET インターフェイスは、.NET Framework 2.0 を使用しています。そのため Microsoft Visual Basic .NET(2002)ではご使用できません。なお、Microsoft Visual Basic .NET(2002)はすでに延長サポートも終了していますので、弊社としても PDF Driver API V5 の .NET Framework 1.x への対応はできません。ご了承ください。
VC++ 2010 で PDF Driver を利用するアプリケーションを開発予定なのですが、問題ありませんか?
問題ありません。C++ および .NET インターフェイスは、Microsoft Visual Studio 2010 日本語版でご利用いただけます。.NETについて、対象のフレームワークには「.NET Framkework 2.0/3.0/3.5」のいずれかをご使用ください。
PDF Driver V5.0 は「Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージ(2011年4月12日公開版)」(※)をインストールするようですが、仮にこれより古いバージョンの再頒布可能パッケージがインストールされていた場合はどのような動きになるのでしょうか?
※ vcredist_x86_KB2467174.exe / vcredist_x64_KB2467174.exe
古いバージョンのものはそのまま残り、それに対する上書きではなく新たにインストールが行われます。
保守契約の更新完了後に御社からライセンスファイルが送られてきました。ライセンスファイルの更新は年に一度実施する必要があるのですか?
現状でインストールされている物件(PDF Tool API 及び PDF Driver API)をそのまま使用する場合はライセンスファイルを変更する必要はありません(これまでどおり動作します)。
ただし、今後リリースされる改訂版(メンテナンスリリース)をご使用される場合には、今回お送りしましたライセンスファイルをご使用ください。ライセンスファイルが古い場合、改訂版は評価版として動作するようになっています。
「スタンドアロン10ライセンス」を買って、開発元で開発用に 5本、客先で 5本使うような使い方は可能ですか?
スタンドアロンライセンス 10台分は、同一企業・学校などの内部でのみ使うことが前提です。10台分を他の会社・団体と分け合うことはできません。
「サーバーライセンス」と「スタンドアロン10ライセンス」で使用できる機能に差はありますか?
ライセンスファイルによる製品の動作の違いはありません。また、動作環境についてもライセンスファイルの違いでインストール可能な環境に違いがあるということはありません。
PDF Driver API をサーバーに組み込んで、これをユーザー(一般社員)が使おうとしたとき、サーバーとクライアント間ではどのような遣り取りが発生しますか?
サーバー上に PDF Driver API を使用したアプリケーションを配置し、これを複数のクライアントが使用する場合、アプリケーション自体はサーバー上で動作しますので、クライアントとの遣り取りは発生しません。入出力ファイルがクライアント側にあるものであれば、ファイルの読み書きがサーバーとクライアント間で行われます。
動作環境が「Hyper-V」のような仮想OSやCitrixなどのシンクライアント環境の場合、どのライセンスになるのでしょうか?
「サーバーライセンス」となります。

PDF Driver API の機能について

Excelファイルを変換すると印刷中ダイアログが表示されます。このダイアログを非表示にすることはできますか?
Excelは、印刷中に下記の「印刷中ダイアログ」を表示します。
Excel印刷中ダイアログ
このダイアログを非表示にすることはできません。
Wordにおいても同様の印刷中ダイアログが表示されますが、非表示にすることはできません。
サーバー上で Word や Excel を PDF に変換するシステムを開発したいと考えています。これらのファイルのハイパーリンクをそのまま活かして PDF 化したいのですが、PDF Driver API ではそのような処理が可能でしょうか?
はい。実現可能です。PDF Driver API は、PDF Driver のアドインボタンの機能を使用しての PDF の一括出力が可能ですので、ハイパーリンクのみならず Word / Excel / PowerPoint からしおりを作成したり、文書情報を PDF に反映したりすることができます。
コマンドライン(PdfDrvCmd31.exe)の "-i" と "-l" の違いはなんですか?
-i と -l はどちらも設定ファイルを指定することに変わりありません。ただし、-i が PDF Driver の設定ダイアログに表示される設定ファイルを
-i フォント埋め込み.printSetting2
のように指定するのに対し、-l は以下のようにフルパスで指定します。
-l D:\temp\xxx.printSetting2
-l で指定する設定ファイルは、PDF Driver のインストール先に格納されている必要はありません。
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(WordML、RTFを含む)/ Excel / PowerPoint(各2000以降)、一太郎、テキスト」になります。
ご希望されている画像の変換は弊社の『サーバベース・コンバータ』という製品で可能です。
PDF Driver API でエラーコード 153 を取得したのですが、このエラーはどのようなときに出力されるものですか?また、回避方法はありますか?
エラーコード 153("ConvertFile 入力ファイルの変換に失敗した")は、PDF Driver の変換の失敗を意味します。その発生条件としては以下に列挙するものが考えられますが、1)や2)の原因及び回避方法については個々に調査をしないとわかりません。

1)印刷が行われなかった。
・PDF Driver API と PDF Driver 間では、Memory Mapped File(MMF)を介してデータのやり取りを行っています。なんらかの理由でこの MMF が作成されないと、印刷が行われません。
・エラーが発生して印刷処理が中断された。
・ユーザーのキャンセル操作。

2)印刷の途中でプロセスが強制終了した。

3)VB6 ランタイムが存在しない。
Word/Excel/PowerPoint、一太郎、txt の各ファイルの印刷処理部である「PdfDrvCtrl31.dll」は VB6 で作成されています。したがって、VB6 のランタイムが存在しない場合に発生する可能性があります。
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 でのラッパー作成は VC6 が推奨となります。
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 側では回避することができません。
PDF Driver API 使用時に PDF Driver のエラーメッセージダイアログが表示されることがあります。メッセージボックスでのエラー表示を抑制する方法を教えてください。
次のレジストリを作成して「Error」に「0」をセットしてください。
  • HKEY_LOCAL_MACHINE\SOFTWARE\AntennaHouse\PDF_Driver\5.0\Notification
  • Error(DWORD値)
※ 注意点:PDF Driver をアンインストールしてもこのレジストリキーは残ってしまいます。その場合、PDF Driver がインストール済みとみなされ、PDF Driver の再インストールができません。PDF Driver を再インストールする際には、あらかじめここで設定した「Notification」を削除しておく必要があります。
同一デバイスに PDF Driver V5.0 の名前を変えて複数インストールが可能ですか?
可能です。複数のドライバの作成方法は次のとおりです。
  • PDFDriver_Setup.exe を使って Antenna House PDF Driver 5.0 をインストールする。
  • PDF Driver API V5.0 製品データの「tools」フォルダにある「プリンタ追加削除ツール」を利用して、複数のプリンタを作成する。

付属 API について

複数のファイルを連続的に出力する場合、EndPrintイベントをもって出力処理完了とし、次のファイルの出力処理を行うという考え方でよいでしょうか?
EndPrintイベントの発生時に必ず出力が完了しているわけではなく、イベントの発生が少し早い場合があります。出力処理完了を確実に検出するには、EndPrintイベントが発生した後、印刷ジョブがなくなっていることを確認してください。
「出力先指定 API」(付属 API)と「PDF Driver API」の違いを教えてください。
「出力先指定 API」(付属 API)は主に自社製品(ユーザー様の開発しているアプリケーション)から PDF 出力する際に使用します。プログラムで PDF の出力先と設定ファイルの指定が可能ですので、「印刷」ダイアログで PDF Driver を選択し「名前を付けて保存」ダイアログを出して PDF 出力するという動作を省くことができます。
「PDF Driver API」は Word/Excel/PowerPoint/一太郎文書などを PDF Driver を利用して一括で PDF に変換します。
「出力先指定 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ビット 版が用意されていますが、どのように使い分ければよいでしょうか?
32/64ビット プログラム用となります。「付属 API」を使用するアプリケーションが 32ビット なら 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.