1

フォーム内に PDF ファイルを表示するために、VB で Adob​​e Reader コントロール AxAcroPdf を使用しています。このフォームには、バーコードを表示するサブフォームをポップアップするオプションがあります。ユーザーはサブフォームを PDF の好きな場所にドラッグできるはずです。Enter キーを押すと、サブフォームがあった場所にバーコードがスタンプされます。

刻印とバーコードのデザインはできましたが、これがどこにあるのか正確に特定できないようです. これのさまざまなバリエーションを試しましたが、何も機能しないようです。

'coordinates of barcodeform relative to the pdf control
Dim pt3 As Point = rdrAdobePdf.PointToClient(barCodeForm.Location)

'This comes close but is always 10-50 pixels off
Dim clientBarCode As Point = New Point(0.5 * (PointToClient(barCodeForm.Location).X - 5), (CInt(pdfReader.GetPageSize(1).Height) - PointToClient(barCodeForm.Location).Y - 80))

'Dim clientBCTry1 As Point = Point.op_Subtraction(PointToClient(screenBarCode), topLeftCorner)
'Dim clientBCtry2 As Point = rdrAdobePdf.PointToClient(screenBarCode)

PointToClient と PointToScreen の基本を理解し、(X,Y) 座標の概念も理解しています。しかし、何日も試してみた後、何もうまくいきません。どんな助けでも大歓迎です。

4

1 に答える 1

0

これはほとんどハードコーディングされたソリューションのように見えますが、このコードはいくらか役に立ちます。PDF ページの上部にスタンプが押された場合、バーコードは正確に配置されます。ただし、下に向かってスタンプすると、ページの寸法は変わらなくても、精度が低下します。誰かが他の解決策を持っている場合は、自由に投稿してください。

Dim x As Integer = CInt(0.5 * (PointToClient(screenBarCode).X))
Dim y As Integer = (CInt(pdfReader.GetPageSize(1).Height) - PointToClient(screenBarCode).Y)

If x < 0 Then x = 0
If y < 0 Then y = 0

Dim clientBarCode As Point = New Point(x, y)
于 2013-08-22T22:02:22.477 に答える