1

我在 VB 中使用 Adob​​e Reader 控件 AxAcroPdf 在表单中显示 pdf 文件。在这个表单中,有一个选项可以弹出一个显示条形码的子表单。用户应该能够在 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 回答