显示具有将图片放在页面顶部的功能的 pdf
Display pdf with a capability to place a picture on top of a page
所以我正在尝试为移动应用程序创建一个功能。
它需要能够在视图中显示 pdf 文件,并允许用户将其签名的大图片放在所需位置。
我正在使用 xamarin.forms 并使用此显示 pdf 文件:
https://github.com/xamarin/recipes/tree/master/Recipes/xamarin-forms/Controls/display-pdf
现在我需要知道第二部分的最佳方法是什么。
用户放置了一张图片,我只需要获取位置坐标及其宽度。
到目前为止,我看到了两种可能的方法:
- 在彼此之上创建两个视图,第一个用于 pdf,第二个用于签名。允许在第二个操作图像并从那里获取数据。不确定该怎么做,或者这是否是个好主意。
- 使 IOS 以与 Android 相同的方式使用 pdfjs(遇到麻烦)并在 pdfjs 方面实现 fabric.js 然后从那里获取数据。
有什么更好的建议或想法吗?
谢谢
您可以在 webView.ScrollView
中添加图片和签名,并对其进行一些调整 ContentInset
.
先改 webView.ScrollView.ContentInset
添加其他视图。
使 webView 滚动到正确的位置(原始锚点)。
完整代码:
class MyDelegate: UIWebViewDelegate
{
public override void LoadingFinished(UIWebView webView)
{
webView.ScrollView.ContentInset = new UIEdgeInsets(200, 0, 0, 0);
UIView view = new UIView(frame: new CoreGraphics.CGRect(0, -200, webView.Frame.Width, 200));
UIImageView image = new UIImageView(frame: new CoreGraphics.CGRect(0, 0, webView.Frame.Width, 100));
UILabel label = new UILabel(frame: new CoreGraphics.CGRect(0, 100, webView.Frame.Width, 100));
view.Add(image);
view.Add(label);
webView.ScrollView.AddSubview(view);
webView.ScrollView.ContentOffset = new CoreGraphics.CGPoint(0, -200);
}
}
public class CustomWebViewRenderer : ViewRenderer<CustomWebView, UIWebView>
{
protected override void OnElementChanged (ElementChangedEventArgs<CustomWebView> e)
{
base.OnElementChanged (e);
if (Control == null) {
UIWebView web = new UIWebView();
web.Delegate = new MyDelegate();
SetNativeControl(web);
}
}
//xxxxx
}
所以我正在尝试为移动应用程序创建一个功能。 它需要能够在视图中显示 pdf 文件,并允许用户将其签名的大图片放在所需位置。
我正在使用 xamarin.forms 并使用此显示 pdf 文件: https://github.com/xamarin/recipes/tree/master/Recipes/xamarin-forms/Controls/display-pdf
现在我需要知道第二部分的最佳方法是什么。 用户放置了一张图片,我只需要获取位置坐标及其宽度。
到目前为止,我看到了两种可能的方法:
- 在彼此之上创建两个视图,第一个用于 pdf,第二个用于签名。允许在第二个操作图像并从那里获取数据。不确定该怎么做,或者这是否是个好主意。
- 使 IOS 以与 Android 相同的方式使用 pdfjs(遇到麻烦)并在 pdfjs 方面实现 fabric.js 然后从那里获取数据。
有什么更好的建议或想法吗?
谢谢
您可以在 webView.ScrollView
中添加图片和签名,并对其进行一些调整 ContentInset
.
先改
webView.ScrollView.ContentInset
添加其他视图。
使 webView 滚动到正确的位置(原始锚点)。
完整代码:
class MyDelegate: UIWebViewDelegate
{
public override void LoadingFinished(UIWebView webView)
{
webView.ScrollView.ContentInset = new UIEdgeInsets(200, 0, 0, 0);
UIView view = new UIView(frame: new CoreGraphics.CGRect(0, -200, webView.Frame.Width, 200));
UIImageView image = new UIImageView(frame: new CoreGraphics.CGRect(0, 0, webView.Frame.Width, 100));
UILabel label = new UILabel(frame: new CoreGraphics.CGRect(0, 100, webView.Frame.Width, 100));
view.Add(image);
view.Add(label);
webView.ScrollView.AddSubview(view);
webView.ScrollView.ContentOffset = new CoreGraphics.CGPoint(0, -200);
}
}
public class CustomWebViewRenderer : ViewRenderer<CustomWebView, UIWebView>
{
protected override void OnElementChanged (ElementChangedEventArgs<CustomWebView> e)
{
base.OnElementChanged (e);
if (Control == null) {
UIWebView web = new UIWebView();
web.Delegate = new MyDelegate();
SetNativeControl(web);
}
}
//xxxxx
}