我在VB中使用Adobe 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)坐标的概念。然而,经过几天的尝试,一切都不起作用。感谢您的帮助。
这似乎是一个硬编码的解决方案,但这段代码在一定程度上有所帮助。如果印在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)