C/C++
// PDFファイルの情報構造体(取得用)
typedef struct _GETPDFINFOHEADER
{
char Title[513]; // タイトル
char Subject[513]; // サブタイトル
char Author[513]; // 作成者
char Keywords[513]; // キーワード
char Creator[513]; // 作成
char Producer[513]; // PDF変換
char CreationDate[21]; // 作成日時
char ModDate[21]; // 更新日時
} GETPDFINFOHEADER;
typedef GETPDFINFOHEADER *PGETPDFINFOHEADER ;
↑定義部 ----------------------------------
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
{
HINSTANCE pdftools=NULL; // pdftool.dllのインスタンスハンドル
pLoadPDF LoadPDF=NULL; // LoadPDF API
pFreePDF FreePDF=NULL; // FreePDF API
pGetPDFInfo GetPDFInfo=NULL; // GetPDFInfo API
GETPDFINFOHEADER GPDFH;
int pdf;
ZeroMemory(&GPDFH,sizeof(GETPDFINFOHEADER));
// DLLの読みこみ
pdftools = LoadLibrary("pdftool.dll");
if (pdftools!=NULL)
{
//各APIの呼び出し
LoadPDF = (pLoadPDF)GetProcAddress(pdftools, "LoadPDF");
FreePDF = (pFreePDF)GetProcAddress(pdftools, "FreePDF");
GetPDFInfo = (pGetPDFInfo)GetProcAddress(pdftools,
"GetPDFInfo");
// PDFファイルを読み込む
pdf =LoadPDF("c:\\test.pdf");
// 文書情報の取得
GetPDFInfo(pdf,(PGETPDFINFOHEADER)&GPDFH);
// ここで取得した構造体の情報を利用する
...
// ----->
// PDFファイルのハンドルを解放する
FreePDF(pdf);
FreeLibrary(pdftools);
}
return(0);
}
|
Delphi
// PDFファイルの情報構造体(取得用)
type
pGetPDFInfoHeader =^TGetPDFInfoHeader;
TGeTPDFInfoHeader =packed record
Title : array [0..512]of char; // タイトル
Subject : array [0..512]of char; // サブタイトル
Author : array [0..512]of char; // 作成者
Keywords : array [0..512]of char; // キーワード
Creator : array [0..512]of char; // 作成
Producer : array [0..512]of char; // PDF変換
CreationDate : array [0..20]of char; // 作成日時
ModDate : array [0..20]of char; // 更新日時
end;
↑定義部 ----------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
pdf,cnt: integer;
PDFInfoHeader :TGetPDFInfoHeader;
begin
// 構造体の初期化
ZeroMemory(@PDFInfoHeader,sizeof(TGetPDFInfoHeader));
if OpenDialog1.Execute then
begin
pdf:=LoadPDF(pchar(OpenDialog1.filename));
// 文書情報の取得
GetPDFInfo(pdf,@PDFInfoHeader);
// エディットに情報を設定する
edit1.text:= PDFInfoHeader.Title ;
edit2.text:= PDFInfoHeader.Subject ;
edit3.text:= PDFInfoHeader.Author ;
edit4.text:= PDFInfoHeader.Keywords ;
edit5.text:= PDFInfoHeader.Creator ;
edit6.text:= PDFInfoHeader.Producer ;
edit7.text:= PDFInfoHeader.CreationDate ;
edit8.text:= PDFInfoHeader.ModDate ;
freePDF(pdf);
end;
end;
|
VB
' PDFファイルの情報構造体(取得用)
Public Type TGetPDFInfoHeader
Title(512) As Byte ' タイトル
Subject(512) As Byte ' サブタイトル
Author(512) As Byte ' 作成者
Keywords(512) As Byte ' キーワード
Creator(512) As Byte ' 作成
Producer(512) As Byte ' PDF変換
CreationDate(20) As Byte ' 作成日時
ModDate(20) As Byte ' 更新日時
End Type
↑定義部 ----------------------------------
Private Sub Command1_Click()
Dim pdf As Long
Dim PDFIH As TGetPDFInfoHeader
' 構造体の初期化
Call ZeroMemory(PDFIH, Len(PDFIH))
pdf = LoadPDF("c:\\test.pdf")
' 文書情報の取得
Call GetPDFInfo(pdf, PDFIH)
'エディットに情報を設定する
Text1.Text = StrConv(PDFIH.Title, vbUnicode)
Text2.Text = StrConv(PDFIH.Subject, vbUnicode)
Text3.Text = StrConv(PDFIH.Author, vbUnicode)
Text4.Text = StrConv(PDFIH.Keywords, vbUnicode)
Text5.Text = StrConv(PDFIH.Creator, vbUnicode)
Text6.Text = StrConv(PDFIH.Producer, vbUnicode)
Text7.Text = StrConv(PDFIH.CreationDate, vbUnicode)
Text8.Text = StrConv(PDFIH.ModDate, vbUnicode)
FreePDF (pdf)
End Sub
|