跳至页脚内容
迁移指南

如何用 C# 从 IronPdfium 迁移到 IronPDF

从 IronPdf 迁移到 IronPDF:完整的 C# 迁移指南。

从 IronPdf.NET 迁移到 IronPDF,可以将您的 .NET PDF 工作流程从具有本地二进制依赖关系的、以渲染为重点的库转变为一个全面的 PDF 解决方案,该解决方案可以处理创建、操作和渲染,而不会产生特定平台的复杂性。 本指南提供了一个完整的、循序渐进的迁移路径,消除了本地依赖性管理,同时增加了 Pdfium 无法提供的功能。

为什么要从 IronPdf 迁移到 IronPDF.

了解 Pdfium.NET.

Pdfium.NET 是 Google PDFium 库的 .NET 封装程序,该库以高效、快速地渲染 PDF 文档而闻名。 它已成为开发人员在 C# 应用程序中钻研错综复杂的 PDF 渲染的重要库,可在 .NET 环境中高保真地复制 PDF 内容。

然而,尽管 Pdfium.NET 擅长渲染,但其创建和处理 PDF 文档的能力有限。 它主要适用于需要准确显示 PDF 内容的应用程序,而不太强调修改或创建新的 PDF。

关键软件限制

1.仅关注渲染:无法通过 HTML、图像或编程创建 PDF。 Pdfium 的功能仅限于查看和渲染 PDF。

2.无 PDF 操作:不能合并、分割或修改 PDF 内容。 本机不支持 PDF 合并,您需要使用 iTextSharp 或 PdfSharp 等其他库。

3.本地二进制依赖性:需要特定平台的 PDFium 二进制文件。 开发人员需要管理本地 PDFium 二进制文件,这增加了部署和分发过程中的复杂性。

4.部署复杂性:必须捆绑和管理每个平台的本地 DLL,包括 x86、x64 和运行时文件夹。

5.有限文本提取:无格式化的基本文本提取。 文本提取需要使用 Pdfium.NET 进行额外工作。

6.No HTML to PDF:无法将网页内容转换为 PDF。 Pdfium.NET 本身不支持 HTML 到 PDF 的转换。

7.无页眉/页脚:不能添加页码或重复内容。

8.无水印:不能在文档上覆盖印记。

9.无表单支持:无法填写或读取 PDF 表单。

10.无安全功能:无法对 PDF 进行加密或密码保护。

Pdfium 与IronPDF对比

方面Pdfium.NETIronPDF
主要关注点渲染/查看完整的 PDF 解决方案
渲染保真度高保真渲染高,尤其是 HTML/CSS/JS。
PDF 创建✓ (HTML、URL、图片)
PDF 操作✓(合并、拆分、编辑)
HTML 到 PDF✓(Chromium 引擎)
水印
页眉/页脚
表格填写
安全性
本地依赖关系要求无(完全托管)
跨平台复杂的设置自动翻译
易于部署因本地依赖性而复杂更简单; 减少依赖复杂性

对于计划在 2025 年和 2026 年之前采用 .NET 10 和 C# 14 的团队来说,IronPDF 提供了一个完全可管理的基础,消除了本地二进制管理,同时增加了全面的 PDF 创建和操作功能。


开始之前

前提条件

1..NET环境:.NET Framework 4.6.2+ 或 .NET Core 3.1+ / .NET 5/6/7/8/9+ 2.NuGet 访问:安装 NuGet 软件包的能力 3.IronPDF 许可证:从 ironpdf.com 获取许可证密钥

NuGet 软件包变更

# Remove Pdfium packages
dotnet remove package Pdfium.NET
dotnet remove package Pdfium.Net.SDK
dotnet remove package PdfiumViewer

# Install IronPDF
dotnet add package IronPdf
# Remove Pdfium packages
dotnet remove package Pdfium.NET
dotnet remove package Pdfium.Net.SDK
dotnet remove package PdfiumViewer

# Install IronPDF
dotnet add package IronPdf
SHELL

许可配置

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

确定 Pdfium 的用法

# Find Pdfium usage
grep -r "Pdfium\|PdfDocument\.Load\|\.Render\(" --include="*.cs" .

# Find native binary references
grep -r "pdfium\.dll\|pdfium\.so\|pdfium\.dylib" --include="*.csproj" --include="*.config" .

# Find platform-specific code
grep -r "#if.*64\|WIN32\|WIN64\|LINUX\|OSX" --include="*.cs" .
# Find Pdfium usage
grep -r "Pdfium\|PdfDocument\.Load\|\.Render\(" --include="*.cs" .

# Find native binary references
grep -r "pdfium\.dll\|pdfium\.so\|pdfium\.dylib" --include="*.csproj" --include="*.config" .

# Find platform-specific code
grep -r "#if.*64\|WIN32\|WIN64\|LINUX\|OSX" --include="*.cs" .
SHELL

完整的 API 参考

命名空间变更

// Pdfium.NET
using Pdfium;
using Pdfium.Net;
using PdfiumViewer;

// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
// Pdfium.NET
using Pdfium;
using Pdfium.Net;
using PdfiumViewer;

// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

核心类映射

Pdfium.NETIronPDF备注
<代码>PDF 文档</代码<代码>PDF 文档</代码名称相同,功能不同
<代码>PDF 页</代码<代码>PDF 页</代码类似界面
<代码>PDF页面集合</代码<代码>PDF页面集合</代码类似界面
(不可用)_<代码>ChromePdfRenderer</代码PDF 创建
(不可用)_<代码>HtmlHeaderFooter</代码页眉/页脚

文档加载映射

Pdfium.NETIronPDF备注
<代码>PdfDocument.Load(path)</代码<代码>PdfDocument.FromFile(路径)</代码从文件加载
<代码>PdfDocument.Load(stream)</代码<代码>PdfDocument.FromStream(流)</代码从流加载
<代码>PdfDocument.Load(bytes)</代码<代码>PdfDocument.FromBinaryData(字节)</代码从字节加载
<代码>新建 PdfDocument(path)</ 代码<代码>PdfDocument.FromFile(路径)</代码构造模式

文档属性映射

Pdfium.NETIronPDF备注
<代码>document.PageCount</代码<代码>document.PageCount</代码相同
<代码>document.Pages</代码<代码>document.Pages</代码类似文集
<代码>document.Pages[index]</代码<代码>document.Pages[index]</代码零基础
<代码>document.GetPageSize(index)</代码<代码>document.Pages[index].Width/Height</代码直接属性

文本提取映射

Pdfium.NETIronPDF备注
<代码>document.GetPdfText(pageIndex)</代码<代码>document.Pages[index].Text</代码每页
(手动循环)<代码>document.ExtractAllText()</代码同时翻译所有页面
<代码>page.GetTextBounds()</代码<代码>page.Text</代码简化

保存文档映射

Pdfium.NETIronPDF备注
<代码>document.Save(路径)</代码<代码>document.SaveAs(路径)</代码不同的方法名称
<代码>document.Save(流)</代码<代码>document.Stream</代码访问流
(不可用)_<代码>document.BinaryData</代码获取字节

页面渲染映射

Pdfium.NETIronPDF备注
<代码>page.Render(宽度,高度)</代码<代码>pdf.RasterizeToImageFiles(path, dpi)</ 代码光栅化
<代码>page.Render(width, height, flags)</代码DPI 参数质量控制
<代码>document.Render(index, width, height)</代码<代码>pdf.RasterizeToImageFiles()</代码批量渲染
<代码>page.RenderToScale(scale)</代码DPI:<代码>72*比例尺</代码比例尺到 DPI 的转换

Pdfium 中没有的新功能

IronPdf 特点说明
<代码>ChromePdfRenderer.RenderHtmlAsPdf()</代码从 HTML 创建
<代码>ChromePdfRenderer.RenderUrlAsPdf()</代码从 URL 创建
<代码>ChromePdfRenderer.RenderHtmlFileAsPdf()</代码从 HTML 文件创建
<代码>PdfDocument.Merge()</代码合并 PDF
<代码>pdf.CopyPages()</代码提取页面
<代码>pdf.RemovePages()</代码删除页面
<代码>pdf.InsertPdf()</代码在位置处插入 PDF
<代码>pdf.ApplyWatermark()</代码添加水印
<代码>pdf.AddHtmlHeaders()</代码添加页眉
<代码>pdf.AddHtmlFooters()</代码添加页脚
<代码>pdf.SecuritySettings</代码密码保护
<代码>pdf.SignWithDigitalSignature()</代码数字签名
<代码>pdf.Form</代码表格填写

代码迁移示例

示例 1:从 PDF 中提取文本

之前 (Pdfium):

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Text;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        using (var document = PdfDocument.Load(pdfPath))
        {
            StringBuilder text = new StringBuilder();

            for (int i = 0; i < document.PageCount; i++)
            {
                // Note: PdfiumViewer has limited text extraction capabilities
                // Text extraction requires additional work with Pdfium.NET
                string pageText = document.GetPdfText(i);
                text.AppendLine(pageText);
            }

            Console.WriteLine(text.ToString());
        }
    }
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Text;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        using (var document = PdfDocument.Load(pdfPath))
        {
            StringBuilder text = new StringBuilder();

            for (int i = 0; i < document.PageCount; i++)
            {
                // Note: PdfiumViewer has limited text extraction capabilities
                // Text extraction requires additional work with Pdfium.NET
                string pageText = document.GetPdfText(i);
                text.AppendLine(pageText);
            }

            Console.WriteLine(text.ToString());
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        var pdf = PdfDocument.FromFile(pdfPath);
        string text = pdf.ExtractAllText();

        Console.WriteLine(text);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        var pdf = PdfDocument.FromFile(pdfPath);
        string text = pdf.ExtractAllText();

        Console.WriteLine(text);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这里的差异非常大。 Pdfium 要求使用 GetPdfText(pageIndex) 手动循环浏览每个页面,构建 StringBuilder 并管理 using 语句以进行正确处理。 代码指出,"PdfiumViewer 的文本提取功能有限","文本提取需要额外的工作"。

IronPDF 将此简化为三行:使用 PdfDocument.FromFile() 加载,使用 ExtractAllText() 提取,以及输出。 ExtractAllText() 方法可自动处理所有页面,并具有更高级的文本提取功能。 如果您需要按页提取,可以使用 pdf.Pages[index].Text. 有关其他选项,请参阅 文本提取文档

示例 2:PDF 合并

之前 (Pdfium):

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Collections.Generic;

// Note: PdfiumViewer does not have native PDF merging functionality
// You would need to use additional libraries or implement custom logic
class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        // PdfiumViewer is primarily for rendering/viewing
        // PDF merging is not natively supported
        // You would need to use another library like iTextSharp or PdfSharp

        Console.WriteLine("PDF merging not natively supported in PdfiumViewer");
    }
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Collections.Generic;

// Note: PdfiumViewer does not have native PDF merging functionality
// You would need to use additional libraries or implement custom logic
class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        // PdfiumViewer is primarily for rendering/viewing
        // PDF merging is not natively supported
        // You would need to use another library like iTextSharp or PdfSharp

        Console.WriteLine("PDF merging not natively supported in PdfiumViewer");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        var pdf = PdfDocument.Merge(pdfFiles);
        pdf.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        var pdf = PdfDocument.Merge(pdfFiles);
        pdf.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这个例子凸显了一个基本的能力差距。Pdfium 无法合并 PDF--代码明确指出 "PdfiumViewer 本身不支持 PDF 合并 "和 "您需要使用 iTextSharp 或 PdfSharp 等其他库"。

IronPDF 通过静态<代码>PdfDocument.Merge()</代码方法提供本地合并功能,该方法可直接接受文件路径列表。 结果是一个新的<代码>PDF 文档</代码文件,您可以使用 SaveAs() 保存该文件。 了解有关 合并和拆分 PDF 的更多信息。

示例 3:HTML 到 PDF 的转换

之前 (Pdfium):

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;

// Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
// For HTML to PDF with Pdfium.NET, you would need additional libraries
// This example shows a limitation of Pdfium.NET
class Program
{
    static void Main()
    {
        // Pdfium.NET does not have native HTML to PDF conversion
        // You would need to use a separate library to convert HTML to PDF
        // then use Pdfium for manipulation
        string htmlContent = "<h1>Hello World</h1>";

        // This functionality is not directly available in Pdfium.NET
        Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET");
    }
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;

// Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
// For HTML to PDF with Pdfium.NET, you would need additional libraries
// This example shows a limitation of Pdfium.NET
class Program
{
    static void Main()
    {
        // Pdfium.NET does not have native HTML to PDF conversion
        // You would need to use a separate library to convert HTML to PDF
        // then use Pdfium for manipulation
        string htmlContent = "<h1>Hello World</h1>";

        // This functionality is not directly available in Pdfium.NET
        Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<h1>Hello World</h1>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<h1>Hello World</h1>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

本例展示了最显著的能力差异。 Pdfium 明确指出 "Pdfium.NET 不支持 HTML 到 PDF 的转换 "和 "您需要使用单独的库将 HTML 转换为 PDF"。

IronPDF 通过<代码>ChromePdfRenderer</代码提供原生 HTML 到 PDF 的转换,其内部使用 Chromium 引擎来准确呈现 HTML、CSS 和 JavaScript。 RenderHtmlAsPdf() 方法可将 HTML 字符串直接转换为 PDF 文档。IronPDF还可以使用 RenderUrlAsPdf() 渲染 URL,使用 RenderHtmlFileAsPdf() 渲染 HTML 文件。 请参阅 HTML 转 PDF 文档,了解全面的示例。


本地依赖关系移除

从 IronPdf 迁移到IronPDF的最大好处之一是消除了本地二进制管理。

之前 (Pdfium) - 复杂部署

MyApp/
├─── bin/
│ ├─── MyApp.dll
│ ├── Pdfium.NET.dll
│ ├── x86/
│ │ └── pdfium.dll
│ └── x64/
│ └── pdfium.dll
运行时
│ ├─── win-x86/native/
│ │ └── pdfium.dll
│ └───-win-x64/native/
│ └── pdfium.dll

后 (IronPDF) - 清洁部署

MyApp/
├─── bin/
│ ├─── MyApp.dll
│ └─── IronPdf.dll # 包含的所有内容

移除本地二进制引用

# Delete native PDFium binaries
rm -rf x86/ x64/ runtimes/

# Remove from .csproj
# Delete any <Content Include="pdfium.dll" /> entries
# Delete any <None Include="x86/pdfium.dll" /> entries
# Delete native PDFium binaries
rm -rf x86/ x64/ runtimes/

# Remove from .csproj
# Delete any <Content Include="pdfium.dll" /> entries
# Delete any <None Include="x86/pdfium.dll" /> entries
SHELL

关键迁移说明

缩放比例到 DPI 转换

Pdfium 使用比例系数; IronPdf 使用 DPI:

// Formula:IronPDFDPI = 72 × Pdfium scale
// Pdfium scale 2.0 →IronPDFDPI 144
pdf.RasterizeToImageFiles("*.png", DPI: 144);
// Formula:IronPDFDPI = 72 × Pdfium scale
// Pdfium scale 2.0 →IronPDFDPI 144
pdf.RasterizeToImageFiles("*.png", DPI: 144);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

文档加载方法更改

// Pdfium
PdfDocument.Load(path)

// IronPDF
PdfDocument.FromFile(path)
// Pdfium
PdfDocument.Load(path)

// IronPDF
PdfDocument.FromFile(path)
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

保存方法更改

// Pdfium
document.Save(path)

// IronPDF
pdf.SaveAs(path)
// Pdfium
document.Save(path)

// IronPDF
pdf.SaveAs(path)
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

处置模式简化

// Pdfium:要求explicit disposal
using (var document = PdfDocument.Load(path))
using (var page = document.Pages[0])
using (var bitmap = page.Render(1024, 768))
{
    bitmap.Save("output.png");
}

// IronPDF: Simplified
var pdf = PdfDocument.FromFile(path);
pdf.RasterizeToImageFiles("output.png");
// Pdfium:要求explicit disposal
using (var document = PdfDocument.Load(path))
using (var page = document.Pages[0])
using (var bitmap = page.Render(1024, 768))
{
    bitmap.Save("output.png");
}

// IronPDF: Simplified
var pdf = PdfDocument.FromFile(path);
pdf.RasterizeToImageFiles("output.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

删除特定平台的代码

// Pdfium:要求platform detection
#if WIN64
    // Load x64 pdfium.dll
#else
    // Load x86 pdfium.dll
#endif

// IronPDF: Remove all platform-specific code
// Just use the API directly
// Pdfium:要求platform detection
#if WIN64
    // Load x64 pdfium.dll
#else
    // Load x86 pdfium.dll
#endif

// IronPDF: Remove all platform-specific code
// Just use the API directly
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

功能对比摘要

特征Pdfium.NETIronPDF
加载 PDF
渲染为图像
提取文本✓ (基本)✓(高级)
页面信息
从 HTML 创建
从 URL 创建
合并 PDF
拆分 PDF
添加水印
页眉/页脚
表格填写
数字签名
密码保护
本地依赖性要求
跨平台复杂自动翻译
内存管理手册处理简化

迁移清单

迁移前

  • [ ] 确定代码库中 Pdfium 的所有用法
  • [ ] 记录当前使用的渲染尺寸/比例
  • [ ] 列出项目中的本地二进制位置
  • [ ] 检查特定平台的加载代码
  • [ ] 确定 PDF 创建需求(目前是否使用单独的工具?)
  • [ ] 审查转换的处置模式
  • [ ] 获取 IronPdf 许可证密钥

软件包变更

  • [ ] 删除 Pdfium.NET, Pdfium.Net.SDK, PdfiumViewer NuGet 软件包
  • [ ] 从 x86/、x64/、runtimes/ 文件夹中删除本地 pdfium.dll 二进制文件
  • [ ] 删除特定平台的条件编译
  • [ ] 更新 .csproj 以移除本地二进制引用
  • [ ] 安装 IronPDF NuGet 软件包:<代码>dotnet 添加软件包 IronPdf

代码更改

  • [ ] 在启动时添加许可证密钥配置
  • [ ] 将 PdfDocument.Load() 替换为 PdfDocument.FromFile()
  • [ ] 将 document.Save() 替换为 pdf.SaveAs()
  • [ ] 将 document.GetPdfText(i) 循环替换为 pdf.ExtractAllText() 循环
  • [ ] 将比例因子转换为 DPI 值(DPI = 72 × 比例)
  • [ ] 简化处置模式(删除嵌套的 using 语句)
  • [ ] 删除特定平台代码

后迁移

  • [ ] 测试渲染输出质量
  • [ ] 比较文本提取结果
  • [ ] 测试跨平台部署
  • [ ] 添加新功能(HTML 到 PDF、合并、水印、安全性)
  • [ ] 更新文档

结论

从 IronPdf 迁移到IronPDF可将您的 PDF 工作流程从具有本地依赖性复杂性的以渲染为重点的库转变为具有创建、操作和渲染功能的综合 PDF 解决方案。

本次迁移的主要变化有 1.范围:仅渲染 → 完整的 PDF 解决方案 2.依赖关系:需要本地二进制文件 → 完全托管 3.加载:<代码>PdfDocument.Load()</代码> → <代码>PdfDocument.FromFile()</代码 4.保存:<代码>Save()</代码> → <代码>SaveAs()</代码 5.文本提取:使用 GetPdfText() 的手动循环 → 单个 ExtractAllText() 调用 6.渲染:基于比例 → 基于 DPI(DPI = 72 × 比例) 7.新功能:HTML 转 PDF、合并、水印、安全性、表单等功能

探索完整的IronPDF文档教程API参考,加快您的 IronPDF迁移。

Curtis Chau
技术作家

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

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