显示能够在页面顶部放置图片的pdf

时间:2018-05-31 14:27:05

标签: ios pdf xamarin.forms mobile-application pdfjs

所以我正在尝试为移动应用创建一项功能。 它需要能够在视图中显示pdf文件,并允许用户在理想的位置放置他的签名的大小图片。

我正在使用xamarin.forms并使用以下方法显示pdf文件: https://github.com/xamarin/recipes/tree/master/Recipes/xamarin-forms/Controls/display-pdf

现在我需要知道第二部分的最佳方法是什么。 用户放置图像,我所需要的只是获取位置及其宽度的坐标。

到目前为止,我看到了两种可能的方式:

  1. 创建两个视图,第一个用于pdf,第二个用于签名。允许在第二个中操纵图像并从那里获取数据。不知道怎么做或者这是个好主意。
  2. 让IOS以与Android相同的方式使用pdfjs(遇到麻烦),并在pdfjs端实现fabric.js,然后从那里获取数据。
  3. 有什么建议或想法可以更好地实现吗?

    由于

1 个答案:

答案 0 :(得分:1)

您可以在webView.ScrollView中添加图片和签名,并对其ContentInset进行一些调整。

  1. 首先更改webView.ScrollView.ContentInset

  2. 添加其他视图。

  3. 使webView滚动到正确的位置(原始锚点)。

  4. 完整代码:

    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
    }