跳至页脚内容
产品比较

如何为C#项目选择最佳的PDF库

在现代 .NET 应用程序中处理 PDF 文档比以往任何时候都更重要。 无论是生成发票、转换报告,还是将表单集成到 Web 应用程序中,开发人员通常都需要一个可靠的 C# PDF 库。 但面对众多可用选项,哪个是您项目中最佳的 PDF 库?

In this article, we’ll explore IronPDF alongside other popular choices like iText, PDFSharp, Aspose, Syncfusion, QuestPDF, and more. 您将发现每个 .NET PDF 库如何处理 PDF 生成、HTML 到 PDF 转换、编辑和其他关键功能。 我们还将比较许可证、性能和易用性,以便您做出正确的决定。

为什么您需要一个 C# PDF 库

在深入了解特定产品之前,让我们来看看为什么在处理 PDF 文件时开发人员会使用 C# 的库:

  • 动态生成 PDF 文档(例如,发票、合同、票据)。

  • 完整支持文本、表格、图像、CSS 甚至 JavaScript 的 HTML 到 PDF 转换。

  • 通过合并、拆分、添加新页面或插入文本串来编辑 PDF 文件。

  • 将 PDF 转换回其他格式,或提取数据和内容。

  • 使用加密、水印和数字签名处理安全性。

  • 在 Microsoft Windows、Linux、Docker 和 .NET Framework 或 .NET Core 上提供一致的布局。

一个好的 PDF 库应该易于使用,只需几行代码即可提供高质量渲染复杂布局的能力。

C# PDF 库的快速对比

HTML 到 PDF JS 支持 编辑 PDF 许可 最佳使用案例
IronPDF 完整 商业 具有动态内容的 Web 应用程序
iText 7 有限的 商业 企业合规和静态 HTML
PDFSharp / MigraDoc 不适用 部分 开源 程序化的 PDF 创建和自定义布局
Aspose.PDF 部分 商业 企业自动化和多格式转换
Syncfusion PDF 部分 商业 报告和仪表板
QuestPDF 不适用 开源 结构化程序化 PDF
wkhtmltopdf (DinkToPdf) 有限的 开源 静态 HTML 到 PDF 转换

该表提供了每个库的核心优势的快速快照,使您更容易根据 HTML/JS 支持、编辑能力和许可选择合适的工具。 现在,让我们开始深入了解每个库,以及它们如何处理诸如 HTML 到 PDF 转换(或缺乏 HTML 到 PDF 功能的库的通用 PDF 创建)的基本任务。

IronPDF 简介

IronPDF 是一个现代、商业的 .NET PDF 库,旨在让处理 PDF 文档变得简单但强大。 Unlike many libraries that require developers to manually draw shapes or struggle with low-level APIs, IronPDF focuses on enabling real-world use cases such as HTML to PDF conversion, editing PDF files, and generating reports with just a few lines of C# code. 当在 Web 应用程序中使用时尤其强大,因为内容已经存在于 HTML 形式中,需要转换成精美的 PDF 文件。 IronPDF 在 Microsoft Windows、.NET Framework、.NET Core 和 Docker 等容器化平台上顺畅运行,使其成为在本地和云部署中使用的多功能选择。

主要功能

  • HTML 到 PDF 转换,全力支持 CSS、JavaScript 和响应式设计。

  • 从 C# 代码直接创建 PDF 文档。

  • Edit PDF files by merging, splitting, and reordering pages, or insert text and images.

  • 高级安全选项,包括加密、水印和数字签名。

  • 针对桌面和 Web 应用程序的高性能进行优化。

  • 强大的跨平台支持。 支持 .NET Framework、.NET Core、Docker、Azure 和 Linux。

示例:在 C# 中转换复杂网页为 PDF

To get a feel for how IronPDF handles HTML content that might have more complex CSS styling or JavaScript content, let's take a look at how it handles converting a URL.

using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.WaitFor.JavaScript(3000);

        var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        pdf.SaveAs("output.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.WaitFor.JavaScript(3000);

        var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

URL 到 PDF 输出使用 IronPDF

只需几行代码,IronPDF 就能产生高保真 PDF,渲染出复杂的 CSS 布局和动态 JavaScript 内容,从实时网页中导出。

结论:当您需要易于使用、高性能的 PDF 生成、出色的 HTML/CSS/JS 渲染以及专业支持时,IronPDF 是最佳选择。

支持 Bootstrap 和现代 CSS 框架

选择 C# PDF 库时,应用 Bootstrap 和现代 CSS 框架的应用程序中,框架兼容性决定了设计是否能准确转换为 PDF 或需要修改。

IronPDF:完整的 Bootstrap 框架支持

IronPDF 的 Chromium 引擎充分支持:

  • Bootstrap 5:完整的 flexbox 布局、CSS 网格、实用程序类、所有组件
  • Bootstrap 4:完整的卡片系统、导航、flex 实用程序、响应式设计
  • Tailwind CSS:全实用程序类,具有浏览器的准确渲染
  • 基础:完整的网格系统和组件支持
  • 现代 CSS3:Flexbox、CSS 网格、自定义属性、动画、过渡

Real-world validation: IronPDF renders the Bootstrap homepage and all official examples with pixel-perfect accuracy.

其他库:不同的 Bootstrap 支持

iText 7:有限的 flexbox 支持(在 v7.1.15 中添加),没有 CSS 网格、Bootstrap 3 限制,现代组件需要变通办法。

PDFSharp & MigraDoc:没有原生 HTML 渲染—仅手动 PDF 构建,没有 Bootstrap 支持。

Aspose.PDF:自定义引擎,~90% 的 CSS3 支持,部分 flexbox,需要对 Bootstrap 组件进行广泛测试。

Syncfusion PDF:基于 WebKit 的引擎,没有 flexbox/CSS 网格,Bootstrap 3 最大安全问题(上次更新于 2016 年)。

QuestPDF:流畅的 API 以手动布局—没有 HTML/CSS 渲染,没有 Bootstrap 支持。

开发影响:非 Chromium 库需要并行的“ PDF安全 ”布局,极大地增加了开发时间并降低了设计一致性。

有关全面的 Bootstrap 框架指南和 CSS3 渲染功能,请参阅 Bootstrap & Flexbox CSS 指南。

介绍 iText 7

iText 7 是一个功能强大、企业就绪的 C# PDF 库,被广泛用于生成、编辑和保护 PDF 文档。 它支持 PDF/A、数字签名、涂黑和合规性重型工作流,特别适合金融、法律和企业应用。 虽然 iText 7 可以处理 HTML 到 PDF 的转换,但它不能原生执行 JavaScript(如 iText 的官方文档所述),因此动态 Web 内容需要使用 Selenium 等工具进行外部预处理。 请注意,iText7 在 7.1.15 版中添加了有限的 flexbox 支持,不过许多现代 CSS3 功能仍不支持。

主要功能

  • 以编程方式生成和编辑 PDF 文档。

  • 支持 PDF/A 和数字签名。

  • 添加文本、图像、表格和页面。

  • 在企业 .NET 应用程序中进行高性能 PDF 生成。

  • HTML 到 PDF 转换(仅限静态 HTML 和 CSS)。

示例:将 URL 转换为 PDF

using iText.Html2pdf;
using System.Net.Http;
using System.IO;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var url = "https://en.wikipedia.org/wiki/Main_Page";

        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("User-Agent", 
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 " +
            "(KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36");

        string htmlContent = await client.GetStringAsync(url);

        using var fileStream = new FileStream("itext7-output.pdf", FileMode.Create);
        HtmlConverter.ConvertToPdf(htmlContent, fileStream);
    }
}
using iText.Html2pdf;
using System.Net.Http;
using System.IO;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var url = "https://en.wikipedia.org/wiki/Main_Page";

        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("User-Agent", 
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 " +
            "(KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36");

        string htmlContent = await client.GetStringAsync(url);

        using var fileStream = new FileStream("itext7-output.pdf", FileMode.Create);
        HtmlConverter.ConvertToPdf(htmlContent, fileStream);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

使用 iText 7 的 URL 到 PDF 输出

代码获取 URL 的 HTML 内容,以类似浏览器的用户代理将其转换为 PDF 文档。 生成的 PDF 保留页面布局、文本、图像和 CSS 样式,虽然任何动态 JavaScript 内容都不会渲染。

结论:对于企业级的 PDF 生成和编辑,iText 7 是出色的,提供了强大的 PDF 合规性和静态 HTML 到 PDF 的转换支持。 对于依赖 JavaScript 或高级 CSS 的页面,请考虑使用 IronPDF 或 wkhtmltopdf,以获得更高保真度的渲染效果。

介绍 PDFSharp & MigraDoc

PDFSharp 和 MigraDoc 是免费的开源 C# PDF 库,旨在以编程方式创建 PDF 文档。 PDFSharp 处理低级别 PDF 生成,而 MigraDoc 提供了高级的布局 API,包括对表格、段落和多页文档的支持。 这些库不提供 HTML 到 PDF 的转换,非常适合希望在代码中完全控制文档结构的开发人员。

主要功能

  • 免费和开源(MIT 许可证)。

  • 使用文本、图像和表格创建 PDF 文档。

  • 支持使用 MigraDoc 的多页布局。

  • 轻量级并且易于集成到任何 .NET 项目中。

  • 完全控制元素的绘制和定位。

  • 可以在 .NET Framework 和 .NET Core 上使用。

示例:创建一个 PDF

using PdfSharp.Drawing;
using PdfSharp.Fonts;
using PdfSharp.Pdf;
using static System.Net.Mime.MediaTypeNames;

class Program
{
    static void Main()
    {
        GlobalFontSettings.UseWindowsFontsUnderWindows = true;

        var document = new PdfDocument();
        var page = document.AddPage();
        var gfx = XGraphics.FromPdfPage(page);
        gfx.DrawString("Hello from PDFSharp!", new XFont("Verdana", 20), XBrushes.Black, new XPoint(50, 100));
        document.Save("pdfsharp-example.pdf");
    }
}
using PdfSharp.Drawing;
using PdfSharp.Fonts;
using PdfSharp.Pdf;
using static System.Net.Mime.MediaTypeNames;

class Program
{
    static void Main()
    {
        GlobalFontSettings.UseWindowsFontsUnderWindows = true;

        var document = new PdfDocument();
        var page = document.AddPage();
        var gfx = XGraphics.FromPdfPage(page);
        gfx.DrawString("Hello from PDFSharp!", new XFont("Verdana", 20), XBrushes.Black, new XPoint(50, 100));
        document.Save("pdfsharp-example.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

使用 PDFsharp 创建的 PDF

该代码以编程方式生成一个 PDF 文档,添加文本并手动处理布局。 它非常适合需要自定义文档而无需 HTML 输入的场景。

结论:PDFSharp & MigraDoc 非常适合初级 PDF 创建,免费且易于集成,但缺乏 HTML 转换和高级编辑功能。

介绍 Aspose.PDF

Aspose.PDF 是一种商业 .NET PDF 库,提供一套全面的工具,用于创建、编辑、转换和保护 PDF 文档。 与轻量级库不同,Aspose.PDF 以企业为重点,支持各种文件转换,包括 Word、Excel、HTML 和 XML。 它在需要文档自动化、报告生成或高级 PDF 操作的工作流程中表现出色,使其成为大型 .NET 应用程序中的最佳选择。

主要功能

  • 程序化创建和编辑 PDF 文档。

  • 将 HTML、Word、Excel 和 XML 转换为 PDF。

  • 添加或删除文本、图像、表格和页面。

  • 应用安全功能,包括加密、数字签名和水印。

  • 适用于企业应用程序的高性能 PDF 生成。

  • 支持 .NET Framework、.NET Core 和 .NET 6+。

示例:将 URL 转换为 PDF

using Aspose.Pdf;
using System;
using System.IO;
using System.Net;

class Program
{
    static void Main()
    {
        string url = "https://en.wikipedia.org/wiki/Main_Page";

        // Optional: provide credentials for protected resources
        NetworkCredential credentials = null;
        // Example for authenticated resources:
        // credentials = new NetworkCredential("username", "password");

        // Configure HTML load options
        var options = new HtmlLoadOptions(url)
        {
            ExternalResourcesCredentials = credentials
        };

        // Fetch HTML content as stream and load into Document
        using (var document = new Document(GetContentFromUrlAsStream(url, credentials), options))
        {
            // Save PDF
            document.Save("aspose-output.pdf");
        }

        Console.WriteLine("PDF successfully created!");
    }

    private static Stream GetContentFromUrlAsStream(string url, ICredentials credentials = null)
{
    using var handler = new System.Net.Http.HttpClientHandler { Credentials = credentials };
    using var httpClient = new System.Net.Http.HttpClient(handler);

    // Set a browser-like User-Agent
    httpClient.DefaultRequestHeaders.Add("User-Agent",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 " +
        "(KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36");

    return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
}

}
using Aspose.Pdf;
using System;
using System.IO;
using System.Net;

class Program
{
    static void Main()
    {
        string url = "https://en.wikipedia.org/wiki/Main_Page";

        // Optional: provide credentials for protected resources
        NetworkCredential credentials = null;
        // Example for authenticated resources:
        // credentials = new NetworkCredential("username", "password");

        // Configure HTML load options
        var options = new HtmlLoadOptions(url)
        {
            ExternalResourcesCredentials = credentials
        };

        // Fetch HTML content as stream and load into Document
        using (var document = new Document(GetContentFromUrlAsStream(url, credentials), options))
        {
            // Save PDF
            document.Save("aspose-output.pdf");
        }

        Console.WriteLine("PDF successfully created!");
    }

    private static Stream GetContentFromUrlAsStream(string url, ICredentials credentials = null)
{
    using var handler = new System.Net.Http.HttpClientHandler { Credentials = credentials };
    using var httpClient = new System.Net.Http.HttpClient(handler);

    // Set a browser-like User-Agent
    httpClient.DefaultRequestHeaders.Add("User-Agent",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 " +
        "(KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36");

    return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
}

}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

使用 Aspose.PDF 的 URL 到 PDF 输出

该代码使用类似浏览器的用户代理从 URL 提取 HTML 内容,以避免 403 Forbidden 错误。 它将 HTML 直接流入带有 HtmlLoadOptions 的 Aspose.PDF 文档中,然后将其保存为 PDF。 生成的 PDF 保留页面布局、文本、图像和 CSS 样式,并且可以处理需要基本 HTTP 身份验证的页面。 然而,任何页面上的动态 JavaScript 内容都不会执行或渲染。

结论: Aspose.PDF 非常适合需要高级 PDF 功能、多格式转换和强大安全性的企业级应用程序。 它是商业的,对于小项目来说可能有些过度,但在大型、复杂的文档工作流程中无与伦比。

介绍 Syncfusion PDF

Syncfusion PDF 是 Syncfusion 套件的一部分,提供了一个功能丰富的 .NET PDF 库,非常适合 Web 和桌面应用程序。 它允许开发人员生成、编辑和转换 PDF,包括从 HTML 到 PDF 的转换,同时与其他 Syncfusion 组件无缝集成,用于报告和仪表板。

主要功能

  • 使用完整的 CSS 和图像支持将 HTML 转换为 PDF。

  • 以编程方式创建和编辑文本、表格、图像和页面。

  • 应用加密、数字签名和水印。

  • 为 Web 和桌面应用程序生成动态报告。

  • 针对 .NET Core、.NET Framework 和 ASP.NET Core 进行了优化。

示例:将 URL 转换为 PDF

using Syncfusion.HtmlConverter;

class Program
{
    static void Main()
    {
        HtmlToPdfConverter converter = new HtmlToPdfConverter();

        // Fully-qualified type
        Syncfusion.Pdf.PdfDocument document = converter.Convert("https://en.wikipedia.org/wiki/Main_Page");

        document.Save("syncfusion-output.pdf");
    }
}
using Syncfusion.HtmlConverter;

class Program
{
    static void Main()
    {
        HtmlToPdfConverter converter = new HtmlToPdfConverter();

        // Fully-qualified type
        Syncfusion.Pdf.PdfDocument document = converter.Convert("https://en.wikipedia.org/wiki/Main_Page");

        document.Save("syncfusion-output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

使用 Syncfusion PDF 的 URL 到 PDF 输出

这个示例将 URL 转换为 PDF 文档,保留布局、图像和文本格式。 Syncfusion PDF 在需要可靠地将 HTML 内容渲染为 PDF 格式的报告场景中特别有用。

结论:如果您已经使用 Syncfusion 组件,需要专业的 HTML 到 PDF 渲染,或者想要具有广泛功能集的企业级 PDF 生成,Syncfusion PDF 是一个绝佳选择。

介绍 QuestPDF

QuestPDF 是一个开源 C# 库,专注于使用声明式 API 进行程序 PDF 生成。 与专注于 HTML 到 PDF 转换的库不同,QuestPDF 允许开发人员完全用代码构建 PDF,给予精确控制布局、文本、图像和表格。 它非常适合自动化报告、发票和在 .NET 应用程序中动态生成的结构化文档。

主要功能

  • 声明式的 API 以编程方式创建 PDF 文档。

  • 完全控制布局、表格、图像和文本格式。

  • 支持多页文档、页眉和页脚。

  • 针对 .NET Core 和 .NET Framework 进行了优化。

  • 适合动态报告生成和自动化文档工作流。

示例:创建一个 PDF Programmatically

using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
using QuestPDF.Previewer;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;
        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Content().Text("Hello from QuestPDF!");
            });
        }).GeneratePdf("questpdf-output.pdf");
    }
}
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
using QuestPDF.Previewer;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;
        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Content().Text("Hello from QuestPDF!");
            });
        }).GeneratePdf("questpdf-output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

使用 QuestPDF 创建的 PDF

此示例演示了程序化 PDF 创建,允许完全控制内容和布局,而无需依赖 HTML 输入。

结论:QuestPDF 非常适合需要完全程序控制 PDF 内容的开发人员。 虽然它不支持 HTML 转换,但它在结构化、动态生成的 PDF 报告和自动化方面表现卓越。

结论

选择合适的 C# PDF 库,最终取决于您的项目需求和您需要生成的 PDF 内容类型。 如果您的应用程序需要动态 Web 内容和复杂的 CSS 或 JavaScript,IronPDF 因其高保真渲染和简单的 API 而脱颖而出,是最可靠的选择。 对于需要 PDF/A 合规性、数字签名或多格式转换至关重要的企业环境,iText 7 和 Aspose.PDF 提供丰富的功能、安全性和支持。

像 PDFSharp/MigraDoc 和 QuestPDF 这样的开源库非常适合那些喜欢完全程序化控制文档布局和内容的开发人员,例如生成结构化报告、发票或票据而不依赖 HTML。 同时,Syncfusion PDF 提供了一个功能丰富的环境,尤其适用于报告和仪表板,而 wkhtmltopdf 在高 CSS 保真度的静态网页转换为 PDF 方面表现出色。

尝试 IronPDF

如果您准备简化 .NET 应用程序中的 PDF 生成、编辑和 HTML 到 PDF 转换,现在是尝试 IronPDF 的最佳时机。 通过其易于使用的 API、高保真渲染和专业支持,您可以在几分钟内快速上手,并立即见到成果。

今天开始您的 免费试用 并体验为什么 IronPDF 是构建现代 .NET PDF 应用程序的开发人员的首选:

[{i:(iText, PDFSharp, Aspose, Syncfusion, and QuestPDF are registered trademarks of their respective owners. 本网站与 iText, PDFSharp, Aspose, Syncfusion, 或 QuestPDF 无关,也未得到它们的支持或资助。 所有产品名称、徽标和品牌均为其各自所有者的财产。 比较仅供参考,反映的是撰写时的公开信息。]

常见问题解答

用于生成发票的最佳 C# PDF 库是什么?

IronPDF 因其强大的功能和在 .NET 应用程序中的易集成性而广受欢迎,用于生成发票。

IronPDF 和 iText 在 PDF 生成方面如何比较?

IronPDF 提供了更简单的 API 和全面的文档,使之比 iText 更容易被开发者集成和使用。

我能使用 IronPDF 将报告转换为 PDF 吗?

是的,IronPDF 非常适合于有效地将各种类型的报告转换为 PDF 格式。

IronPDF 是否与现代 .NET 应用程序兼容?

IronPDF 完全兼容现代 .NET 应用程序,为开发者提供无缝集成。

与 PDFSharp 相比,使用 IronPDF 有哪些优势?

与 PDFSharp 相比,IronPDF 提供了更高级的功能和对现代 .NET 环境的更好支持。

IronPDF 是否支持在 web 应用程序中集成表单?

是的,IronPDF 支持 web 应用程序中的表单集成,提供工具以处理表单数据和 PDF 交互。

哪个 C# PDF 库对初学者最好?

IronPDF 用户友好,并提供丰富的文档,是 C# 初学者的最佳选择。

IronPDF 的定价与其他 PDF 库相比如何?

IronPDF 提供具有竞争力的定价和多种许可选项,通常相比其他优质 PDF 库更具价值。

IronPDF 能否处理大规模的 PDF 处理任务?

是的,IronPDF 设计用于高效处理大规模的 PDF 处理任务,适合企业级项目。

IronPDF 用户有什么支持选项可用?

IronPDF 提供全方位的支持,包括文档、教程和响应性的客户服务来帮助用户。

Curtis Chau
技术作家

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

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。