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 |