IRONSOFTWAREHOME
使用IRONPDF

如何将多页扫描成一个PDF文件

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

.NET MAUI 是.NET的下一代,它使开发人员能够用一个代码库构建跨平台的桌面、Web和移动应用程序,包括Xamarin.Forms。 使用.NET MAUI,您可以一次编写应用程序,并部署到多个平台,包括Windows、macOS、iOS、Android和tvOS,且使用相同的项目名称。 .NET MAUI 还使您能够利用每个平台的最新UI功能,例如macOS上的暗黑模式和触摸支持,或Windows 10上的语音识别。

本文将解释如何在.NET MAUI应用程序中使用IronPDF来创建具有诸多优势的PDF文档。


IronPDF:C# PDF库

IronPDF是一个.NET库,允许您生成和编辑PDF文件。 它非常适合在.NET MAUI应用程序中使用,因为它提供了一系列功能,可以根据您的具体需求进行定制。 凭借其易于使用的API,IronPDF使您可以简单地将PDF功能集成到.NET MAUI项目中。

前提条件

在.NET MAUI中使用IronPDF创建PDF和PDF查看器有一些先决条件:

  1. 最新版本的Visual Studio
  2. .NET Framework 6或7
  3. 在Visual Studio中安装的MAUI包
  4. .NET MAUI应用程序在Visual Studio中运行

步骤1:安装IronPDF

在新项目中安装IronPDF的最佳方法之一是在Visual Studio中使用NuGet包管理器控制台。 使用这种方法安装IronPDF有一些优势。

  • 它很容易操作,并且
  • 您可以确保使用的是IronPDF的最新版本。

安装IronPDF的步骤

首先,通过导航到工具 > NuGet包管理器 > 包管理器控制台打开包管理器控制台。

如何在.NET MAUI中查看PDF(分步)教程,图1:包管理器控制台 包管理器控制台

接下来,输入以下命令:

PM > Install-Package IronPdf

这将安装软件包及其所有依赖项,例如assets文件夹。

如何在.NET MAUI中查看PDF(分步)教程,图2:IronPDF安装 IronPDF 安装

您现在可以在您的MAUI项目中开始使用IronPDF。

步骤2:设置.NET MAUI中的前端设计

首先,为IronPDF的三个功能创建一个布局。

URL到PDF布局

对于URL到PDF布局,使用.NET MAUI标签控件创建一个文本为"输入URL以转换为PDF"的标签。 之后,应用一个水平堆栈布局,以水平排列条目控件和按钮。 然后在控件后放置一条线,以分隔下一部分控件。

<Label
    Text="Enter URL to Convert PDF"
    SemanticProperties.HeadingLevel="Level1"
    FontSize="18"
    HorizontalOptions="Center" 
/>
<HorizontalStackLayout
    HorizontalOptions="Center">
    <Border Stroke="White"
            StrokeThickness="2"
            StrokeShape="RoundRectangle 5,5,5,5"
            HorizontalOptions="Center">
        <Entry
            x:Name="URL"
            HeightRequest="50"
            WidthRequest="300" 
            HorizontalOptions="Center"
        />
    </Border>

    <Button
        x:Name="urlPDF"
        Text="Convert URL to PDF"
        Margin="30,0,0,0"
        Clicked="UrlToPdf"
        HorizontalOptions="Center" />
</HorizontalStackLayout>

<Line Stroke="White" X2="1500" />
XML

HTML到PDF布局

对于HTML到PDF部分的布局,创建一个编辑器控件和一个按钮。 编辑器控件将用于接受用户提供的HTML内容字符串。 另外,添加一条线作为分隔符。

<Label
    Text="Enter HTML to Convert to PDF"
    SemanticProperties.HeadingLevel="Level2"
    FontSize="18"
    HorizontalOptions="Center" />
<Border 
    Stroke="White"
    StrokeThickness="2"
    StrokeShape="RoundRectangle 5,5,5,5"
    HorizontalOptions="Center">
    
    <Editor
        x:Name="HTML"
        HeightRequest="200"
        WidthRequest="300" 
        HorizontalOptions="Center"
    />

</Border>

<Button
    x:Name="htmlPDF"
    Text="Convert HTML to PDF"
    Clicked="HtmlToPdf"
    HorizontalOptions="Center" />

<Line Stroke="White" X2="1500" />
XML

HTML文件到PDF布局

对于HTML文件到PDF,只需添加一个按钮。 该按钮将帮助将HTML文件转换为PDF文档,使用IronPDF。

<Label
    Text="Convert HTML file to PDF"
    SemanticProperties.HeadingLevel="Level2"
    FontSize="18"
    HorizontalOptions="Center" />

<Button
    x:Name="htmlFilePDF"
    Text="Convert HTML file to PDF"
    Clicked="FileToPdf"
    HorizontalOptions="Center" />
XML

完整的UI代码

下面提供了.NET MAUI前端的完整源代码。

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="PDF_Viewer.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Label
                Text="Enter URL to Convert PDF"
                SemanticProperties.HeadingLevel="Level1"
                FontSize="18"
                HorizontalOptions="Center" 
            />
            <HorizontalStackLayout
                HorizontalOptions="Center">
                <Border Stroke="White"
                        StrokeThickness="2"
                        StrokeShape="RoundRectangle 5,5,5,5"
                        HorizontalOptions="Center">
                    <Entry
                        x:Name="URL"
                        HeightRequest="50"
                        WidthRequest="300" 
                        HorizontalOptions="Center"
                    />
                </Border>

                <Button
                    x:Name="urlPDF"
                    Text="Convert URL to PDF"
                    Margin="30,0,0,0"
                    Clicked="UrlToPdf"
                    HorizontalOptions="Center" />
            </HorizontalStackLayout>

            <Line Stroke="White" X2="1500" />

            <Label
                Text="Enter HTML to Convert to PDF"
                SemanticProperties.HeadingLevel="Level2"
                FontSize="18"
                HorizontalOptions="Center" />
            <Border 
                Stroke="White"
                StrokeThickness="2"
                StrokeShape="RoundRectangle 5,5,5,5"
                HorizontalOptions="Center">
                
                <Editor
                    x:Name="HTML"
                    HeightRequest="200"
                    WidthRequest="300" 
                    HorizontalOptions="Center"
                />

            </Border>

            <Button
                x:Name="htmlPDF"
                Text="Convert HTML to PDF"
                Clicked="HtmlToPdf"
                HorizontalOptions="Center" />

            <Line Stroke="White" X2="1500" />

            <Label
                Text="Convert HTML file to PDF"
                SemanticProperties.HeadingLevel="Level2"
                FontSize="18"
                HorizontalOptions="Center" />

            <Button
                x:Name="htmlFilePDF"
                Text="Convert HTML file to PDF"
                Clicked="FileToPdf"
                HorizontalOptions="Center" />
        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

步骤3:保存和查看PDF文件的代码

.NET MAUI没有任何用于在本地存储中保存文件的预构建功能。 因此,必须自行编写代码。 为了创建保存和查看功能,创建了一个名为SaveAndView的部分void函数,该函数包含三个参数:文件名、文件内容类型和用于写入文件的内存流。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PDF_Viewer
{
    public partial class SaveService
    {
        public partial void SaveAndView(string filename, string contentType, MemoryStream stream);
    }
}

保存和查看功能需要为每个平台实现,例如Android、macOS或Windows。 对于Windows平台,创建一个名为"SaveWindows.cs"的文件,并实现部分方法SaveAndView:

using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;

namespace PDF_Viewer
{
    public partial class SaveService
    {
        public async partial void SaveAndView(string filename, string contentType, MemoryStream stream)
        {
            StorageFile stFile;
            string extension = Path.GetExtension(filename);
            //Gets process windows handle to open the dialog in application process.
            IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
            if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
            {
                //Creates file save picker to save a file.
                FileSavePicker savePicker = new FileSavePicker();
                savePicker.DefaultFileExtension = ".pdf";
                savePicker.SuggestedFileName = filename;
                //Saves the file as PDF file.
                savePicker.FileTypeChoices.Add("PDF", new List<string>() { ".pdf" });
                

                WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
                stFile = await savePicker.PickSaveFileAsync();
            }
            else
            {
                StorageFolder local = ApplicationData.Current.LocalFolder;
                stFile = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
            }
            if (stFile != null)
            {
                using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite))
                {
                    //Writes compressed data from memory to file.
                    using Stream outstream = zipStream.AsStreamForWrite();
                    outstream.SetLength(0);
                    //Saves the stream as file.
                    byte [] buffer = stream.ToArray();
                    outstream.Write(buffer, 0, buffer.Length);
                    outstream.Flush();
                }
                //Create message dialog box.
                MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully");
                UICommand yesCmd = new("Yes");
                msgDialog.Commands.Add(yesCmd);
                UICommand noCmd = new("No");
                msgDialog.Commands.Add(noCmd);

                WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);

                //Showing a dialog box.
                IUICommand cmd = await msgDialog.ShowAsync();
                if (cmd.Label == yesCmd.Label)
                {
                    //Launch the saved file.
                    await Windows.System.Launcher.LaunchFileAsync(stFile);
                }
            }
        }
    }
}

对于Android和macOS,您需要创建具有可比SaveAndView实现的单独文件。 可以从这个MAUI PDF Viewer GitHub仓库获取一个工作示例。

步骤4:PDF功能代码

现在,是编写PDF功能代码的时候了。 让我们从URL到PDF功能开始。

URL到PDF功能

为URL到PDF功能创建一个UrlToPdf函数。 在函数内部,实例化ChromePdfRenderer对象,并使用RenderUrlAsPdf函数将URL转换为PDF文档。 RenderUrlAsPdf函数从Web服务器获取URL的数据并处理它以转换为PDF文档。 在参数中传递URL输入控件中的文本,创建SaveAndView函数。 在SaveAndView函数的参数中,传入生成的PDF文件的流。

SaveAndView函数有助于在任何自定义路径保存文件,并提供查看PDF文件的选项。 最后,显示一个通知框,告知创建PDF文件的状态。如果用户尝试使用空条目控件创建PDF文件,将显示一个带有错误消息和警告的通知框。

private void UrlToPdf(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(URL.Text))
    {
        var renderer = new IronPdf.ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf(URL.Text.Trim());
        SaveService saveService = new SaveService();
        saveService.SaveAndView("URLtoPDF.pdf", "application/pdf", pdf.Stream);
        DisplayAlert("Success", "PDF from URL Created!", "OK");
    }
    else
    {
        DisplayAlert("Error", "Field can't be empty! \nPlease enter URL!", "OK");
    }

}

HTML到PDF功能

为了实现HTML到PDF的转换功能,创建HtmlToPdf函数并使用RenderHtmlAsPdf函数。 使用Editor控件的文本并在RenderHtmlAsPdf函数的参数中传递。 类似于上面的函数,使用SaveAndView函数以实现保存后查看PDF文件的功能。

private void HtmlToPdf(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(HTML.Text))
    {
        var renderer = new IronPdf.ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(HTML.Text);
        SaveService saveService = new SaveService();
        saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", pdf.Stream);
        DisplayAlert("Success", "PDF from HTML Created!", "OK");
    }
    else
    {
        DisplayAlert("Error", "Field can't be empty! \nPlease enter valid HTML!", "OK");
    }
}

HTML文件到PDF功能

创建FileToPdf函数以将HTML文件转换为PDF文件。 使用RenderHtmlFileAsPdf函数并传递HTML文件路径作为参数。 它将所有HTML内容转换为PDF并保存输出文件。

private void FileToPdf(object sender, EventArgs e)
{
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Users\Administrator\Desktop\index.html");
    SaveService saveService = new SaveService();
    saveService.SaveAndView("HTML File to PDF.pdf", "application/pdf", pdf.Stream);
    DisplayAlert("Success", "PDF from File Created!", "OK");
}

输出

运行项目后,输出将如下所示。

如何在.NET MAUI中查看PDF(分步)教程,图3:输出 输出

在此部分输入微软网站的URL并点击按钮。

如何在.NET MAUI中查看PDF(分步)教程,图4:URL到PDF URL到PDF

创建PDF文件后,它显示一个对话框以便将文件保存到定制目标。

如何在.NET MAUI中查看PDF(分步)教程,图5:保存文件 保存文件

保存文件后,会出现弹出窗口,并提供选择PDF查看器以查看PDF文件的选项。

如何在.NET MAUI中查看PDF(分步)教程,图6:PDF查看器弹出窗口 PDF查看器弹出

IronPDF出色地将URL转换为PDF。 它保持了所有颜色和图像的原始形状和格式。

如何在.NET MAUI中查看PDF(分步)教程,图7:PDF查看器弹出窗口 PDF查看器弹出

需要遵循与其他所有功能相同的过程。 查看这篇Blazor Blog Post中的IronPDF,以了解IronPDF在Blazor中的工作方式。

通过访问"如何在 MAUI 中将 XAML 转换为 PDF",学习如何将 MAUI 页面转换为 PDF 文档。

摘要

本教程在.NET MAUI应用程序中使用IronPDF来创建PDF文件和PDF查看器。 .NET MAUI是一个用于通过单一代码库创建多平台应用程序的绝佳工具。 IronPDF帮助在任何.NET应用程序中轻松创建和自定义PDF文件。 IronPDF完全兼容.NET MAUI平台。

IronPDF对开发免费。 您可以获取一个免费试用密钥,来测试IronPDF在生产环境中的使用效果。 有关IronPDF及其功能的更多信息,请访问IronPDF官方网站。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起