2016-05-26 12 views
0

最近私の会社はWacom STU-530署名パッドを購入しました。私はそれからクライアント署名を取得し、署名付きのpdfを作成するプログラムを実現しました。 私はFastReportを使ってPDFを実現していますが、wacomタブレットから署名を取得する必要があります。Delphi Wacom SDK

procedure TfrmMain.btnFirmaClick(Sender: TObject); 
var 
    objFirma: SigObj; 
    ctlFirma: TSigCtl; 
    picFirma: TPicture; 
    res: CaptureResult; 
begin 
    picFirma := TPicture.Create; 
    ctlFirma := TSigCtl.Create(Self); 
    res := ctlFirma.Capture('Firmare per accettazione', 
    'Formazione del personale in affiancamento'); 
    case res of 
    CaptureOK: begin 
     objFirma := SigObj(ctlFirma.Signature); 
     SetOlePicture(picFirma, objFirma.Picture(300, 300, 'image/bmp', 0.5, $000000, 
     $ffffff, -1.0, -1.0, RenderOutputPicture or RenderColor32BPP or 
     RenderEncodeData)); 
     picFirma.SaveToFile('firma.bmp'); 
    end; 
    end; 
    ctlFirma.Free; 
    picFirma.Free; 
end; 

SigObjがIPictureDispを返し、私はSetOlePictureを使用しましたので、TImageのに変換する必要がある方法がありますが、私は画像を保存すると、それは次のとおりです。私はこのコードを実現SDKで 読めない。

picFirma.bitmap.SaveToFile('firma.bmp') 

を使用して画像を保存しようとすると、結果のビットマップは無効になります。 私のコードで何が間違っていますか?

+2

このことについてベンダーに問い合わせる必要があると思います。彼らは、あなたが望むものを達成するための方法の例を提供する必要があります。 – RBA

+0

問題はWacom SDKではなく、IPictureDispが返す問題です。 SetOlePictureは、IPictureDispオブジェクトをTPictureオブジェクトに接続する必要がありますが、イメージをファイルに保存すると、そのイメージは読み込み不可能または空です。 – Eros

+0

@Err RBKは正しいかもしれません。確かに、すべてのライブラリが正しいiPictureDispの実装をしているわけではありません。マイクロソフト自身も正しく実装していません。http://stackoverflow.com/a/480350/976391ベンダーに質問し、サンプルコードを取得してください。 –

答えて

0

シグネチャSDKで提供されているシグネチャSDKで提供されるシグネチャを取得するには、RenderBitmapメソッドを使用する必要があります。

RenderBitmap(OUTPUTFILENAME、dimensionX、dimensionY、MIMEタイプ、inkWidth、nkColor、backgroundColorの、paddingX、paddingY、フラグ)
画像ファイルを作成または バイナリデータを返す、署名の画像を描画。ステガノグラフィー技術を使用して、生成された イメージ内のSigObjデータをオプションでエンコードします。

objFirma:= SigObj(ctlFirma.Signature); 
    objFirma.RenderBitmap('firma.bmp', 300, 300, 'image/bmp', 0.5, $000000, 
    $ffffff, -1.0, -1.0, RenderOutputFilename or RenderColor32BPP or RenderEncodeData); 
+1

コードのみの回答はしばしばdownvote d。 –

+1

ご指摘いただきありがとうございます。回答が編集されました。 –