如何将Xamarin.Forms XAML UI页面转换为PDF文件?

smdncfj3  于 2023-05-27  发布在  其他
关注(0)|答案(1)|浏览(211)

在Xamarin.Forms中,我想将我的xaml页面UI(有时我的页面在有更多内容时是可滚动的)转换为PDF。我尝试了PDFSharphttps://github.com/akgulebubekir/PDFSharp.Xamarin.Forms)开源。但它只适用于UWP,在iOS和Android中存在一些问题。
那么,有没有免费的开源插件可以在这三个平台上将XAML UI转换为PDF?如果开源不可用,有没有其他方法或工作来实现它在android,ios和UWP?
先谢谢你了。

isr3a4wc

isr3a4wc1#

我在这方面遇到了一些麻烦,并设法使用UIkit和PdfKit工具来完成。
下面是一个例子:

using UIKit;
using PdfKit;

//Calculate scroll View height
double xamlHeight = XamlFullPage.Height;
int numberOfPages = (int)Math.Ceiling(xamlHeight / Application.Current.MainPage.Height);

// Create a new PDF document
PdfDocument document = new PdfDocument();

for (int i = 0; i<numberOfPages; i++) //while all the page have not been taken into account
{
        await SummaryScrollView.ScrollToAsync(0, i*Application.Current.MainPage.Height, false).ConfigureAwait(false); //find the beginning of the current page
        //Captures the XAML page as an image and returns the image in memory stream
        var image = UIScreen.MainScreen.Capture();
        // Create a page with the printscreen
        PdfPage page = new PdfPage(image);
        //insert page in the i position
        document.InsertPage(page, i);
        page.Dispose();
}

//Write file in temp folder
          document.Write(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "TuitionFees" + fileName + ".pdf"));`

相关问题