显示具有将图片放在页面顶部的功能的 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

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

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

  1. 在彼此之上创建两个视图,第一个用于 pdf,第二个用于签名。允许在第二个操作图像并从那里获取数据。不确定该怎么做,或者这是否是个好主意。
  2. 使 IOS 以与 Android 相同的方式使用 pdfjs(遇到麻烦)并在 pdfjs 方面实现 fabric.js 然后从那里获取数据。

有什么更好的建议或想法吗?

谢谢

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

  1. 先改 webView.ScrollView.ContentInset

  2. 添加其他视图。

  3. 使 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
}