WritePDFInfo

〜解説〜
PDFファイルの文章情報を設定する

〜引数〜
PDF:PDFファイルのハンドル
InfoHeader:SetPDFInfoHeader構造体へのアドレス
SaveFileName:保存先のファイル名

〜戻り値〜
成功:1 失敗:(-1)

〜備考〜
なし

〜サンプル〜

C/C++

// PDFファイルの情報構造体(書き込み用)
typedef struct _SETPDFINFOHEADER
{
   char *Title;    // タイトル
   char *Subject;  // サブタイトル
   char *Author;   // 作成者
   char *Keywords; // キーワード
   char *Creator;  // 作成
   char *Producer; // PDF変換 
   char *CreationDate; // 作成日時
   char *ModDate;      // 更新日時
} SETPDFINFOHEADER;

typedef  SETPDFINFOHEADER   *PSETPDFINFOHEADER ; 

↑定義部 ----------------------------------

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
  pWritePDFInfo   WritePDFInfo =NULL; // WritePDFInfo  API
  SETPDFINFOHEADER SPDFH;
  int pdf;
  
  // DLLの読みこみ
  pdftools = LoadLibrary("pdftool.dll");
  if (pdftools!=NULL)
  {  
     //各APIの呼び出し
     LoadPDF = (pLoadPDF)GetProcAddress(pdftools, "LoadPDF"); 
     FreePDF = (pFreePDF)GetProcAddress(pdftools, "FreePDF"); 
     WritePDFInfo  = (pWritePDFInfo)GetProcAddress(pdftools, 
                                                 "WritePDFInfo");  
       // PDFファイルを読み込む
       pdf =LoadPDF("c::\test.pdf");
 
         // PDFの情報を構造体に設定
         SPDFH.Title="タイトル";
         SPDFH.Subject= "サブタイトル";
         SPDFH.Author="作成者";
         SPDFH.Keywords="キーワード";
         SPDFH.Creator= "作成";
         SPDFH.Producer= "PDF変換"; 
         SPDFH.CreationDate= "1999.03.11 21:28:08";
         SPDFH.ModDate= "1999.03.11 21:28:08";
   
       // PDFに情報を書き込む
       WritePDFInfo (pdf,(PSETPDFINFOHEADER)&SPDFH,
          "c:\\test2.pdf" );
              
       // PDFファイルのハンドルを解放する
       FreePDF(pdf);

      FreeLibrary(pdftools);
   }
   return(0);
}

Delphi

// PDFファイルの情報構造体(書き込み用)
type
  pSetPDFInfoHeader =^TSetPDFInfoHeader;
  TSetPDFInfoHeader =packed record
     Title    : pchar; // タイトル
     Subject  : pchar; // サブタイトル
     Author   : pchar; // 作成者
     Keywords : pchar; // キーワード
     Creator  : pchar; // 作成
     Producer : pchar; // PDF変換
     CreationDate : pchar;  // 作成日時
     ModDate      : pchar;  // 更新日時
end;

↑定義部 ----------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
 pdf,cnt: integer;
 PDFInfoHeader :TSetPDFInfoHeader;
begin
   // 構造体の初期化
   ZeroMemory(@PDFInfoHeader,sizeof(TSetPDFInfoHeader));
   if OpenDialog1.Execute then
   begin
     pdf:=LoadPDF(pchar(OpenDialog1.filename));
        // PDFの情報を構造体に設定
        PDFInfoHeader.Title:=pchar(edit1.text);
        PDFInfoHeader.Subject:=pchar(edit2.text);
        PDFInfoHeader.Author:=pchar(edit3.text);
        PDFInfoHeader.Keywords:=pchar(edit4.text);
        PDFInfoHeader.Creator:=pchar(edit5.text);
        PDFInfoHeader.Producer:=pchar(edit6.text);
        PDFInfoHeader.CreationDate:=pchar(edit7.text);
        PDFInfoHeader.ModDate :=pchar(edit8.text);
        // PDFに情報を書き込む
        WritePDFInfo(pdf,@PDFInfoHeader,'c:\test.pdf');
     freePDF(pdf);
   end;
end;

VB

' PDFファイルの情報構造体(書き込み用)
Public Type TSetPDFInfoHeader
     Title   As String ' タイトル
     Subject  As String ' サブタイトル
     Author   As String ' 作成者
     Keywords As String ' キーワード
     Creator  As String ' 作成
     Producer As String ' PDF変換
     CreationDate As String ' 作成日時
     ModDate      As String ' 更新日時
End Type

↑定義部 ----------------------------------

Private Sub Command1_Click()
 Dim pdf As Long
 Dim PDFIH As TSetPDFInfoHeader

  pdf = LoadPDF("c:\test1.pdf")
    ' PDFの情報を構造体に設定
    PDFIH.Title = Text1.Text
    PDFIH.Subject = Text2.Text
    PDFIH.Author = Text3.Text
    PDFIH.Keywords = Text4.Text
    PDFIH.Creator = Text5.Text
    PDFIH.Producer = Text6.Text
    PDFIH.CreationDate = "1999.03.11 21:28:08"
    PDFIH.ModDate = "1999.03.11 21:28:08"
    ' PDFに情報を書き込む
    Call WritePDFInfo(pdf, PDFIH, "c:\test2.pdf")
  FreePDF (pdf)
End Sub



ホーム