« ■Delphi and C++Builder Roadmap | トップページ | ☆TreeViewでのテキスト選択状態の取得 »

☆Docuworks SDKを利用する。

Fuji XeroxのDocuworksには、Docuworksと連携するための開発キットが公開されています。その内容は、各APIの細かな解説と簡単なサンプルコードがあり、とても丁寧にわかりやすく作られています。しかしながら、当然のようにC++向けとなっており、Delphiからそのまま使うことはできません。 とりあえず、サンプルにある「イメージファイルからDocuWorks文書を作成する」をDelphiで試してみました。(ヘッダーを全てDelphi向けに作ればいいんでしょうけど・・・面倒)

DocuWorks Development Tool Kit 6.2 日本語版


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  XDW_GI_DWINPUTPATH = 10;
  XDW_GI_DWDESKPATH = 11;

type
  XDW_CREATE_OPTION = record
  	nSize: Integer;
  	nFitImage: Integer;
  	nCompress: Integer;
  	nZoom: Integer;
   	nWidth: Integer;
   	nHeight: Integer;
   	nHorPos: Integer;
   	nVerPos: Integer;
  end;

  function XDW_GetInformation(nIndex: Integer; lpszOutput: PAnsiChar;
    nSize: Integer; reserved : Pointer): Integer; stdcall; external 'xdwapi.dll';

  function XDW_CreateXdwFromImageFile(const lpszInputPath: PAnsiChar;
    const lpszOutputPath: PAnsiChar; var pOption: XDW_CREATE_OPTION): Integer;
    stdcall; external 'xdwapi.dll';


procedure TForm1.Button1Click(Sender: TObject);
var
  Desk_Path, lpszOutput: array[0..MAX_PATH-1] of Char;
  Check: Integer;
  InputFile, OutputFile: String;
  pOption: XDW_CREATE_OPTION;
begin
  if not OpenDialog1.Execute then Exit;
  InputFile := OpenDialog1.FileName; // Jpeg,Bmp,Tiffのみ

  // 下記で取得するフォルダにファイルを作成すると、Docuworksを起動させたときに
  // 自動的に読み込み、表示しているフォルダにそのファイルを移動させます。
  // ちょっとややこしい仕様ですね。
  Check := XDW_GetInformation(XDW_GI_DWINPUTPATH, lpszOutput, MAX_PATH, nil);
  if (Check > -1) then
  begin
    OutputFile := String(lpszOutput) + '\aaa.xdw';

    pOption.nSize := SizeOf(XDW_CREATE_OPTION);
    pOption.nFitImage := 1;
    pOption.nCompress := 0;
    pOption.nZoom	:= 0;
    pOption.nWidth := 0;
    pOption.nHeight := 0;
    pOption.nHorPos := 0;
    pOption.nVerPos := 0;

    Check := XDW_CreateXdwFromImageFile(PAnsiChar(InputFile),
      PAnsiChar(OutputFile), pOption);
    if (Check > -1) then
    begin
      XDW_GetInformation(XDW_GI_DWDESKPATH, Desk_Path, MAX_PATH, nil);
      WinExec(Desk_Path, SW_SHOW);
    end;
  end;
end;

end.

|

« ■Delphi and C++Builder Roadmap | トップページ | ☆TreeViewでのテキスト選択状態の取得 »