尝试将签名集成到pdf文件中,该文件显示在UIWebview中。我可以通过固定位置说(50,50)将pdf文件中的签名集成。现在尝试将其集成到用户的单个攻丝位置。首先尝试通过代码获取用户的单个点击位置,
CGPoint tapLocation = [gesture locationInView: self.view];
NSLog(@"tapped location is %@ \n",NSStringFromCGPoint(tapLocation));
NSInteger x,y;
x=tapLocation.x;
y=tapLocation.y;
CGRect imageRect = CGRectMake(x,y, image.size.width, image.size.height);
我可以获取坐标但是签名没有放在我点击pdf文件的位置,然后发现坐标的位置返回不正确。例如,如果我点击位置说(50,50)它返回(68,386),那么签名被整合到位置(68,386)。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
您只需要确保使用正确的视图
[gesture locationInView: self.view];
多数,如果您不确定应该选择哪种视图,请尝试更改代码中的其他子视图。
我可以猜你,但我需要先看看你的代码。
如果您需要任何帮助,请询问(Y)
答案 1 :(得分:0)
您无法使用UIWebView实现此功能,因为您需要一些不可用的信息。
点击位置以视图坐标给出。要将此点转换为PDF页面坐标,您需要了解以下内容:
为了将视图坐标正确转换为页面坐标,需要以上所有信息 下面的代码显示了如何将视点转换为PDF点。
- (CGPoint)convertViewPointToPDFPoint:(CGPoint)viewPoint
{
CGPoint pdfPoint = CGPointMake(0, 0);
CGRect cropBox = CGPDFPageGetBoxRect(pdfPage, kCGPDFCropBox);
int rotation = CGPDFPageGetRotationAngle(pdfPage);
switch (rotation) {
case 90:
case -270:
pdfPoint.x = cropBox.size.width * (viewPoint.y - pageRenderRect.origin.y) / pageRenderRect.size.height;
pdfPoint.y = cropBox.size.height * (viewPoint.x - pageRenderRect.origin.x) / pageRenderRect.size.width;
break;
case 180:
case -180:
pdfPoint.x = cropBox.size.width * (pageRenderRect.size.width - (viewPoint.x - pageRenderRect.origin.x)) / pageRenderRect.size.width;
pdfPoint.y = cropBox.size.height * (viewPoint.y - pageRenderRect.origin.y) / pageRenderRect.size.height;
break;
case -90:
case 270:
pdfPoint.x = cropBox.size.width * (pageRenderRect.size.height - (viewPoint.y - pageRenderRect.origin.y)) / pageRenderRect.size.height;
pdfPoint.y = cropBox.size.height * (pageRenderRect.size.width - (viewPoint.x - pageRenderRect.origin.x)) / pageRenderRect.size.width;
break;
case 0:
default:
pdfPoint.x = cropBox.size.width * (viewPoint.x - pageRenderRect.origin.x) / pageRenderRect.size.width;
pdfPoint.y = cropBox.size.height * (pageRenderRect.size.height - (viewPoint.y - pageRenderRect.origin.y)) / pageRenderRect.size.height;
break;
}
pdfPoint.x = pdfPoint.x + cropBox.origin.x;
pdfPoint.y = pdfPoint.y+ cropBox.origin.y;
return pdfPoint;
}
上面的代码取自article on my blog