2008年06月17日

Adobe AIR 1.1リリース

http://get.adobe.com/air/?loc=jp

Adobe AIRのVer1.1が正式リリースされました。
待望の日本語対応ですよ!

インストーラーの文言も日本語化されております。
posted by はやむー at 17:50| Comment(0) | TrackBack(0) | Adobe | このブログの読者になる | 更新情報をチェックする

2008年06月03日

AcrobatSDKで開いているPDFのファイル名を取得する方法

【開発環境】
OS:Windows Server 2003
開発環境:VisualStudio2005 TeamEdition(SP1)
実行環境:Adobe Acrobat 8 Professional(8.1.2)

AcrobatのPlug-in(プラグイン)内から、AcrobatSDKのAPIを使用して、開いているPDFのファイル名を取得する方法に関するメモです。

ファイルを指定してPDFを操作する場合は、ユーザーがダイアログからファイルを指定してくれるので簡単なんですが。
既に開いているPDFファイルをAVDocを使って操作する場合のやり方はなかなか分かりませんでした。。。

結論としては、以下のようにASFileを介する事で、ファイル名を取得する事が出来ます。


/* 開いているPDFファイルのパス及びファイル名を取得 */
AVDoc avDoc;
PDDoc pdDoc = NULL;

ASFile asFile;
ASPathName volatile pathName = NULL;
char *tex = NULL;

avDoc = AVAppGetActiveDoc();
pdDoc = AVDocGetPDDoc (avDoc);
asFile = PDDocGetFile (pdDoc);
pathName = ASFileAcquirePathName (asFile);

ASText pdfFileName = ASTextNew();
ASFileSysDisplayASTextFromPath(ASGetDefaultUnicodeFileSys(), pathName, pdfFileName);

/* texにパス及びファイル名を格納したバッファのポインタを格納 */
tex = (char *)ASTextGetScriptText(pdfFileName, kASEUnicodeScript);


↓からは、過程で確認した内容です。

Acrobat本体のexeのパスを取得したい場合は以下のようにします。

/* Acrobatのexeのパスを取得 */
char Path[MAX_PATH];

memset(Path, 0, MAX_PATH);
GetModuleFileName(NULL, Path, MAX_PATH);


Plug-inの名前を取得したい場合は以下のようにします。

/* Plug-inの名前を取得 */
char Path[MAX_PATH];

memset(Path, 0, MAX_PATH);
ASExtensionGetFileName((ASExtension)gExtensionID, Path, MAX_PATH);


PDFファイル内に格納されている、XMP情報を気軽に取得するには以下のようにします。

/* XMPの情報を取得 */
char XMPName[MAX_PATH];
int xmp_len = 0;

/* ↓の"Title"の部分を変更すれば他の情報も取得可能 */
if((xmp_len = PDDocGetInfo(pdDoc, "Title", XMPName, MAX_PATH)) )
{
/* 全角の文字列が入っている場合には以下の処理が必要 */
char XMPName2[MAX_PATH];
memset(XMPName2, 0, MAX_PATH);

int xmp_len2 = PDXlateToHostEx(XMPName, xmp_len, XMPName2, MAX_PATH);
XMPName2[xmp_len2] = '\0';
}

・Adobe Extensible Metadata Platform(XMP)
http://www.adobe.com/jp/enterprise/xmp.html


WindowsAPIでパスのみ取得できます。
AcrobatのPlug-inのカレントディレクトリはファイル依存のようです。

char dic[MAX_PATH];

memset(dic, 0, MAX_PATH);
GetCurrentDirectory(MAX_PATH, (LPTSTR )dic);
posted by はやむー at 17:14| Comment(0) | TrackBack(0) | Adobe | このブログの読者になる | 更新情報をチェックする

2008年04月10日

Acrobat Plug-in(プラグイン)開発(Windows編)

【開発環境】
OS:Windows Server 2003
開発環境:VisualStudio2005 TeamEdition(SP1)
実行環境:Adobe Acrobat 8 Professional(8.1.2)


Adobe Acrobat 8.1 SDK
http://www.adobe.com/devnet/acrobat/

Acrobat用プラグインの開発方法に関して記します。
対象とするのは、Windows版のみです。
基本的に、Windows版プラグインはDLLとして実装され、DllMain()関数がmain()代わりになります。


それでは、以下が実際の作業工程となります。
(設定が間違っていたり必要ない可能性もありますので、ご了承下さい。
ディレクトリ設定は適宜環境に適した設定を行います。)

新しいプロジェクトの作成→VisualC++→MFC→MFC DLL
DLLの種類:MFC をスタティックにリンクした通常のDLL
追加の機能:全てチェックをはずす


以下のsrcをコピーしてくる。
..\sources\StarterInit.cpp
..\..\..\Headers\Api\PIMain.c


以下のディレクトリを、"追加のインクルードディレクトリ"に追加する。

..\..\Acrobat 8 SDK\Version1\PluginSupport\Headers\SDK;..\..\\Acrobat 8 SDK\Version1\PluginSupport\Headers\API;..\..\Acrobat 8 SDK\Version1\PluginSupport\Headers\ADM

"プリプロセッサの定義"に以下を追加する。
WIN_PLATFORM;WIN_ENV;ACRO_SDK_LEVEL=0x00080000

最初、
ACRO_SDK_LEVEL=0x00080000
がない状態でリンクした所、
1>Warning: Using older Acrobat SDK. Define ACRO_SDK_LEVEL to 0x00080000
というWarningが出て、AcrobatでPlug-inが認識されませんでした。


"出力ファイル"に以下を設定します。
C:\Program Files\Adobe\Acrobat 8.0\Acrobat\plug_ins\TestPlugin.api
※Acrobatのディレクトリはインストール時の指定により異なります。


[リンカ]→[コマンドライン]の追加のオプションに以下を追加します。
/EXPORT:PlugInMain


CallBackによる実装。
AcrobatのPlug-inが実行されるタイミングは、登録したCallBack関数によります。
予め以下のようにCallBack関数を登録します。

AVMenuItemSetExecuteProc (menuItem, ASCallbackCreateProto(AVExecuteProc, MyPluginCommand), NULL);

"MyPluginCommand"がCallBack関数です。


メニューへの登録は、以下のAPIを使用します。
AVMenuItemNew()
AVMenubarAcquireMenuItemByName()
AVMenuNew()
AVMenubarAcquireMenuByName()

サブメニューがある場合は、サブメニューの項目から処理します。

メニュー名に"&M"を追加すると、Acrobatのメニューで下線付きのショートカットを設定する事が出来ます。
メインメニューの場合、Alt+指定のキー。

例)"BasicPlugin(&B)"
と指定すると、Acrobat上では"BasicPlugin(B)"という表示になります。
posted by はやむー at 00:00| Comment(1) | TrackBack(0) | Adobe | このブログの読者になる | 更新情報をチェックする

2008年02月26日

Adobe AIR 正式版リリース

米国時間2月25日にとうとうAIRの正式版がリリースされたそうです。
待ちに待ったって感じです。
ベータ版の環境入れても、後で正式版に変えるのが面倒なので様子見してたんですが。。。(←様子見するなって感じですが)
AIRは楽しい事になりそうなので、勉強してみようと思います。
そして早くiPod touchでAIRが使えるようになるといいな。
↑妄想全開w


Adobe AIR
アドビ、「AIR 1.0」と「Flex 3.0」をリリース
posted by はやむー at 09:47| Comment(0) | TrackBack(0) | Adobe | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。