フッターコンテンツにスキップ
製品比較

IronPDF vs iTextSharp: C言語でPDFファイルを読む

IronPDFは、iTextSharpよりもシンプルな構文でPDFを読み込むための最新のC# APIを提供します。テキスト抽出、画像解析、フォームデータへのアクセスをサポートし、iTextSharpは商用利用にAGPLライセンスを必要とするため、エンタープライズアプリケーションにはIronPDFが最適な選択肢となります。

PDF(ポータブルドキュメントフォーマット)は、一貫して安全にドキュメントを共有するための広く使用されているファイル形式です。 このようなファイルを C# で読み取って操作することは、ドキュメント管理システムやレポート ツールなどのさまざまなアプリケーションで一般的です。 この記事では、C# で PDF ファイルを読み取るための 2 つの一般的なライブラリ、IronPDF と iTextSharp (最新の .NET ライブラリ iText) を比較します。

IronPDF は、PDF ファイルの操作に広範な機能を提供する Iron Software の完全な C# ライブラリです。 PDF ドキュメントをスムーズに作成、編集、操作できます。 IronPDF はシンプルさと使いやすさで知られており、PDF 機能をアプリケーションに素早く統合するのに最適です。 ライブラリは Chrome レンダリング エンジンを使用しており、正確なレンダリングと最新の Web 標準のサポートを保証します。

iTextSharp は、C# で PDF ファイルを操作するためのもう 1 つの一般的なライブラリです。 長年にわたり業界で広く使用されてきました。 ただし、iTextSharp のライセンスが AGPL (Affero General Public License) に変更され、商用アプリケーションに大きな影響を与えていることを理解することが重要です。 AGPL では、アプリケーションで iTextSharp を使用する場合、アプリケーションのソース コード全体をユーザーに公開する必要があります。これは、独自のソフトウェア開発とは互換性がないことが多い要件です。 このライセンスの変更により、多くの企業は、商用に適したライセンスを提供する IronPDF などの代替手段を求めるようになりました。

C# で IronPDF と iTextSharp を使用して PDF を読み取るにはどうすればよいでしょうか?

  1. Visual StudioでIronPDFとiTextSharpを比較するために、新しいC#プロジェクトを作成します。
  2. NuGet パッケージ マネージャーを使用して、IronPDF および iTextSharp ライブラリをプロジェクトにインストールします。
  3. テキスト抽出用の IronPDF の直感的な API を使用して PDF ファイルを読み取ります。
  4. iTextSharp のより複雑なオブジェクト モデルを使用して PDF ファイルを読み取ります。

このチュートリアルの前提条件は何ですか?

  1. Visual Studio: Visual Studio または他の C# 開発環境がインストールされていることを確認します。 IronPDF は、Windows、Linux、macOS 環境をサポートしています。
  2. NuGet パッケージ マネージャー:高度なインストールのために、プロジェクト内のパッケージを NuGet を使用して管理できることを確認します。

開発環境をセットアップするにはどうすればよいですか?

C#コンソールアプリケーションを設定して始めます。 Visual Studioを開き、新しいプロジェクトを作成を選択します。 コンソールアプリケーションタイプを選択します。 実稼働アプリケーションの場合、クラウドベースの PDF 処理を計画している場合は、Azure デプロイまたは AWS デプロイに関するガイドを確認することを検討してください。

以下のようにプロジェクト名を入力してください。 .NET 命名規則に従い、エンタープライズ標準との一貫性を維持するために、プロジェクト名にPascalCaseを使用します。

プロジェクトに必要な .NET バージョンを選択します。 IronPDF は .NET Framework、.NET Core、.NET 5+ をサポートしており、従来のアプリケーションと最新のアプリケーションの両方に柔軟性を提供します。

これが完了すると、Visual Studio は PDF 読み取り機能を比較するために必要な構造を持つ新しいプロジェクトを生成します。

IronPDF および iTextSharp ライブラリをインストールするにはどうすればよいですか?

iTextSharp にはどのパッケージ マネージャーを使用すればよいですか?

iText の NuGet パッケージ マネージャーから iTextSharp をインストールできます。 最新バージョンはiTextパッケージとして利用できます。 IronPDF と比較してダウンロード数が比較的少ないことに注意してください。これは、多くの開発者が AGPL に対して抱いているライセンス上の懸念を反映しています。

または、以下に示すようにVisual Studioパッケージマネージャからインストールします。 パッケージマネージャでiTextを検索し、インストールをクリックします。 AGPL ライセンスを受け入れると、プロジェクトの配布に法的影響が生じることに注意してください。

NuGet 経由で IronPDF をインストールするにはどうすればいいですか?

以下に示すように、IronPDF の NuGet パッケージ マネージャーから IronPDF をインストールできます。 ダウンロード数が大幅に増加していること(830 万件)に注目してください。これは、商用アプリケーションで広く採用されていることを示しています。

または、以下に示すようにVisual Studioパッケージマネージャからインストールします。 パッケージ マネージャーで IronPDF: C# PDF Library を検索し、[インストール] をクリックします。 インストール プロセスは簡単で、Chrome レンダリングに必要な依存関係がすべて含まれています。

IronPDF を使用して PDF からテキストを読み取るにはどうすればよいでしょうか?

以下のコードを Program.cs ファイルに追加し、指定されたコンテンツを含むサンプル PDF ドキュメントを提供します。 IronPDF は、複数の列、埋め込みフォント、さまざまなエンコードを含む複雑な PDF からテキストを抽出するのに優れています。

using IronPdf;

// Begin the comparison of IronPDF and iTextSharp for reading PDFs in C#
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");

// Read PDF using IronPDF
ReadUsingIronPDF.Read();

public class ReadUsingIronPDF
{
    public static void Read()
    {
        // Specify the path to the PDF document
        string filename = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";

        // Create a PDF Reader instance to read the PDF
        // IronPDF automatically handles various PDF versions and encryption
        var pdfReader = PdfDocument.FromFile(filename);

        // Extract all text from the PDF - maintains formatting and structure
        var allText = pdfReader.ExtractAllText();
        Console.WriteLine("------------------Text From PDF-----------------");
        Console.WriteLine(allText);
        Console.WriteLine("------------------Text From PDF-----------------");

        // Extract all images from the PDF - supports various image formats
        var allImages = pdfReader.ExtractAllImages();
        Console.WriteLine("------------------Image Count From PDF-----------------");
        Console.WriteLine($"Total Images = {allImages.Count()}");

        // Save extracted images if needed (production example)
        for (int i = 0; i < allImages.Count(); i++)
        {
            // allImages[i].SaveAs($"image_{i}.png");
        }
        Console.WriteLine("------------------Image Count From PDF-----------------");

        // Iterate through each page to extract text from them
        Console.WriteLine("------------------One Page Text From PDF-----------------");
        var pageCount = pdfReader.PageCount;
        for (int page = 0; page < pageCount; page++)
        {
            string text = pdfReader.ExtractTextFromPage(page);
            Console.WriteLine($"Page {page + 1} content:");
            Console.WriteLine(text);
        }

        // Additional IronPDF capabilities for production use
        // Extract form data
        var form = pdfReader.Form;
        if (form != null)
        {
            foreach (var field in form.Fields)
            {
                Console.WriteLine($"Form Field: {field.Name} = {field.Value}");
            }
        }

        // Access metadata
        Console.WriteLine($"Author: {pdfReader.MetaData.Author}");
        Console.WriteLine($"Title: {pdfReader.MetaData.Title}");
        Console.WriteLine($"Created: {pdfReader.MetaData.CreationDate}");
    }
}
using IronPdf;

// Begin the comparison of IronPDF and iTextSharp for reading PDFs in C#
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");

// Read PDF using IronPDF
ReadUsingIronPDF.Read();

public class ReadUsingIronPDF
{
    public static void Read()
    {
        // Specify the path to the PDF document
        string filename = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";

        // Create a PDF Reader instance to read the PDF
        // IronPDF automatically handles various PDF versions and encryption
        var pdfReader = PdfDocument.FromFile(filename);

        // Extract all text from the PDF - maintains formatting and structure
        var allText = pdfReader.ExtractAllText();
        Console.WriteLine("------------------Text From PDF-----------------");
        Console.WriteLine(allText);
        Console.WriteLine("------------------Text From PDF-----------------");

        // Extract all images from the PDF - supports various image formats
        var allImages = pdfReader.ExtractAllImages();
        Console.WriteLine("------------------Image Count From PDF-----------------");
        Console.WriteLine($"Total Images = {allImages.Count()}");

        // Save extracted images if needed (production example)
        for (int i = 0; i < allImages.Count(); i++)
        {
            // allImages[i].SaveAs($"image_{i}.png");
        }
        Console.WriteLine("------------------Image Count From PDF-----------------");

        // Iterate through each page to extract text from them
        Console.WriteLine("------------------One Page Text From PDF-----------------");
        var pageCount = pdfReader.PageCount;
        for (int page = 0; page < pageCount; page++)
        {
            string text = pdfReader.ExtractTextFromPage(page);
            Console.WriteLine($"Page {page + 1} content:");
            Console.WriteLine(text);
        }

        // Additional IronPDF capabilities for production use
        // Extract form data
        var form = pdfReader.Form;
        if (form != null)
        {
            foreach (var field in form.Fields)
            {
                Console.WriteLine($"Form Field: {field.Name} = {field.Value}");
            }
        }

        // Access metadata
        Console.WriteLine($"Author: {pdfReader.MetaData.Author}");
        Console.WriteLine($"Title: {pdfReader.MetaData.Title}");
        Console.WriteLine($"Created: {pdfReader.MetaData.CreationDate}");
    }
}
$vbLabelText   $csharpLabel

IronPDF コードは何をするのでしょうか?

  1. Word 文書を作成する:最初に、必要なテキスト コンテンツを含む Word 文書を作成し、 Example.pdfという名前の PDF 文書として保存します。
  2. PDFReader インスタンス:コードは、PDF ファイル パスを使用してテキストと画像を抽出し、 PdfDocumentオブジェクトを作成します。 3.テキストと画像を抽出します。ExtractAllTextメソッドはドキュメント内のすべてのテキストをキャプチャするために使用され、 ExtractAllImages ExtractAllTextを抽出します。 4.ページごとにテキストを抽出: ExtractTextFromPageメソッドを使用して各ページからテキストを抽出します。

IronPDF からどのような出力が期待できますか?

iTextSharp を使用して PDF からテキストを読み取るにはどうすればよいでしょうか?

iTextSharpからのテキスト抽出結果を比較するために、同じProgram.csファイルに以下のコードを追加してください。簡潔にするため、クラスを別々のファイルに分割していません。 iTextSharp では基本的な操作にさらに複雑なコードが必要であることに注意してください。

using IronPdf;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Xobject;

// Begin the comparison of IronPDF and iTextSharp for reading PDFs in C#
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");

// Call method to read PDF using iTextSharp library
ReadUsingITextSharp.Read();

public class ReadUsingITextSharp
{
    public static void Read()
    {
        // Specify the path to the PDF document
        string pdfFile = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";

        // Create a PDF Reader instance - more verbose than IronPDF
        PdfReader pdfReader = new PdfReader(pdfFile);

        // Initialize a new PDF Document - additional step required
        iText.Kernel.Pdf.PdfDocument pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfReader);

        // Extract text from all pages - more complex than IronPDF
        Console.WriteLine("------------------Text From PDF (iTextSharp)-----------------");
        for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
        {
            // Use a text extraction strategy to extract plain text from the PDF
            LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();
            string pdfText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page), strategy);
            Console.WriteLine($"Page {page} content:");
            Console.WriteLine(pdfText);
        }

        // Extract images - significantly more complex than IronPDF
        Console.WriteLine("------------------Images From PDF (iTextSharp)-----------------");
        int imageCount = 0;
        for (int pageNum = 1; pageNum <= pdfDocument.GetNumberOfPages(); pageNum++)
        {
            var page = pdfDocument.GetPage(pageNum);
            var resources = page.GetResources();
            var xobjects = resources.GetResource(PdfName.XObject);

            if (xobjects != null)
            {
                foreach (var key in xobjects.KeySet())
                {
                    var xobject = xobjects.GetAsStream(key);
                    if (xobject != null)
                    {
                        var pdfObject = xobjects.Get(key);
                        if (pdfObject.IsStream())
                        {
                            var stream = (PdfStream)pdfObject;
                            var subtype = stream.GetAsName(PdfName.Subtype);
                            if (PdfName.Image.Equals(subtype))
                            {
                                imageCount++;
                                // Extracting the actual image requires additional complex code
                            }
                        }
                    }
                }
            }
        }
        Console.WriteLine($"Total Images Found: {imageCount}");

        // Close the document - manual resource management required
        pdfDocument.Close();
        pdfReader.Close();
    }
}
using IronPdf;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Xobject;

// Begin the comparison of IronPDF and iTextSharp for reading PDFs in C#
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");

// Call method to read PDF using iTextSharp library
ReadUsingITextSharp.Read();

public class ReadUsingITextSharp
{
    public static void Read()
    {
        // Specify the path to the PDF document
        string pdfFile = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";

        // Create a PDF Reader instance - more verbose than IronPDF
        PdfReader pdfReader = new PdfReader(pdfFile);

        // Initialize a new PDF Document - additional step required
        iText.Kernel.Pdf.PdfDocument pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfReader);

        // Extract text from all pages - more complex than IronPDF
        Console.WriteLine("------------------Text From PDF (iTextSharp)-----------------");
        for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
        {
            // Use a text extraction strategy to extract plain text from the PDF
            LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();
            string pdfText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page), strategy);
            Console.WriteLine($"Page {page} content:");
            Console.WriteLine(pdfText);
        }

        // Extract images - significantly more complex than IronPDF
        Console.WriteLine("------------------Images From PDF (iTextSharp)-----------------");
        int imageCount = 0;
        for (int pageNum = 1; pageNum <= pdfDocument.GetNumberOfPages(); pageNum++)
        {
            var page = pdfDocument.GetPage(pageNum);
            var resources = page.GetResources();
            var xobjects = resources.GetResource(PdfName.XObject);

            if (xobjects != null)
            {
                foreach (var key in xobjects.KeySet())
                {
                    var xobject = xobjects.GetAsStream(key);
                    if (xobject != null)
                    {
                        var pdfObject = xobjects.Get(key);
                        if (pdfObject.IsStream())
                        {
                            var stream = (PdfStream)pdfObject;
                            var subtype = stream.GetAsName(PdfName.Subtype);
                            if (PdfName.Image.Equals(subtype))
                            {
                                imageCount++;
                                // Extracting the actual image requires additional complex code
                            }
                        }
                    }
                }
            }
        }
        Console.WriteLine($"Total Images Found: {imageCount}");

        // Close the document - manual resource management required
        pdfDocument.Close();
        pdfReader.Close();
    }
}
$vbLabelText   $csharpLabel

iTextSharp はどのような出力を生成しますか?

iTextSharp の制限は何ですか?

1.学習曲線: 特に初心者にとっては学習曲線が急です。 2.ライセンス: AGPL ライセンスでは、アプリケーションをオープンソース化する必要があります。 3.複雑な API : 単純な操作でも複数のオブジェクトと手動管理が必要になります。

  1. HTML サポートが制限されています: IronPDF と比較して HTML レンダリングが最小限です。 5.手動リソース管理: リソースを明示的に閉じる必要があります。

1.学習曲線: iTextSharp は、特に初心者にとって、学習曲線が急峻です。 2.ライセンス: iTextSharp のライセンス モデルは、すべてのプロジェクト、特に予算が制限されているプロジェクトには適さない場合があります。

1.使いやすさ: .NET 規則に従った簡単な API。 2.ドキュメントのレンダリング: ピクセルパーフェクトなレンダリングにより、元の書式が維持されます。 3.商用に適したライセンス: AGPL 制限のない透明なライセンス。 4.完全な機能: フォーム、署名、注釈の組み込みサポート。 5.パフォーマンスの向上: マルチスレッドおよび大容量ドキュメントの処理が改善されました。

1.使いやすさ: IronPDF はわかりやすい API で知られており、開発者が簡単に使い始めることができます。 2.ドキュメントのレンダリング: IronPDF は PDF ドキュメントを正確にレンダリングし、抽出されたテキストが元のテキストに忠実であることを保証します。

現在 iTextSharp を使用しているチームの場合、IronPDF への移行は簡単です。 以下のコード例を考えてみてください:

// Migration Example: Text Extraction
// iTextSharp (old way)
PdfReader reader = new PdfReader(filename);
PdfDocument doc = new PdfDocument(reader);
string text = PdfTextExtractor.GetTextFromPage(doc.GetPage(1));
doc.Close();

// IronPDF (new way)
var pdf = PdfDocument.FromFile(filename);
string text = pdf.ExtractTextFromPage(0); // 0-based indexing

// Migration Example: Form Field Reading
// iTextSharp (complex)
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDocument, false);
IDictionary<string, PdfFormField> fields = form.GetFormFields();
foreach (var field in fields)
{
    string value = field.Value.GetValueAsString();
}

// IronPDF (simple)
var form = pdf.Form;
foreach (var field in form.Fields)
{
    string value = field.Value;
}
// Migration Example: Text Extraction
// iTextSharp (old way)
PdfReader reader = new PdfReader(filename);
PdfDocument doc = new PdfDocument(reader);
string text = PdfTextExtractor.GetTextFromPage(doc.GetPage(1));
doc.Close();

// IronPDF (new way)
var pdf = PdfDocument.FromFile(filename);
string text = pdf.ExtractTextFromPage(0); // 0-based indexing

// Migration Example: Form Field Reading
// iTextSharp (complex)
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDocument, false);
IDictionary<string, PdfFormField> fields = form.GetFormFields();
foreach (var field in fields)
{
    string value = field.Value.GetValueAsString();
}

// IronPDF (simple)
var form = pdf.Form;
foreach (var field in form.Fields)
{
    string value = field.Value;
}
$vbLabelText   $csharpLabel

テキスト抽出の精度はどのように比較されますか?

IronPDF は、他のライブラリでは難しい複雑な PDF の処理に優れています。

-スキャンした文書: OCR処理されたPDFを処理する際のテキストフローが改善されました -マルチカラムレイアウト:新聞スタイルのレイアウトを優れた方法で処理します -暗号化されたファイル: パスワードで保護されたPDFの自動処理

  • Unicodeサポート: UTF-8と国際言語の完全サポート -埋め込みフォント: フォントの埋め込みに関係なく正確な抽出

IronPDF のライセンスを設定するにはどうすればよいですか?

IronPDFのライセンスキーをappsettings.jsonファイルに挿入してください。本番環境では、安全なキー管理のために環境変数の使用を検討してください。

{
  "IronPdf.LicenseKey": "your license key",
  "IronPdf.LoggingMode": "Custom",
  "IronPdf.ChromeGpuMode": "Disabled"
}

試用ライセンスを受け取るには、ライセンス ページでメール アドレスを入力してください。 IronPDF は、開発、ステージング、実稼働ライセンスなど、柔軟なライセンス オプションを提供します。## プロジェクトにはどのライブラリを選択すればよいですか?

IronPDFと iTextSharp のどちらを選択するかは、プロジェクトの特定のニーズによって異なります。 商用ライセンスを必要とするエンタープライズ アプリケーションの場合、iTextSharp の制限的な AGPL ライセンスのため、IronPDF が推奨される選択肢となります。 一般的なPDF 操作のための簡単で使いやすいライブラリが必要な場合、IronPDF は直感的な API により優れた開発者エクスペリエンスを提供します。

決定する際には、次の要素を考慮してください。

-ライセンス要件: AGPL vs商用ライセンス

IronPDF は、 PDF 生成をアプリケーションにスムーズに統合し、フォーマットされたドキュメントの PDF への変換を効率的に処理するように設計されています。 このアプローチは、 .NETを使用してWeb フォームローカル HTML ページ、およびその他のWeb コンテンツをPDF に変換する必要がある場合に明らかな利点をもたらします。 アプリケーションでは、ドキュメントを簡単にダウンロードしたり電子メールで送信したり、クラウドに保存したりできます。 請求書見積書レポート契約書、その他の専門的な文書を作成する必要がある場合でも、 IronPDF の PDF 生成機能が役立ちます。 このライブラリは、 PDF 圧縮高速 Web 表示のための線形化、長期アーカイブのためのPDF/A 準拠などの高度な機能もサポートしています。 IronPDF の直感的で効率的なPDF 生成機能を使用して、アプリケーションを改善します。

iTextおよびiTextSharpは、それぞれの所有者の登録商標です。 このサイトは、iTextまたはiTextSharpと関連、承認、またはスポンサーシップされていません。すべての製品名、ロゴ、およびブランドは各々の所有者の財産です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

C#でPDFファイルをどのように読みますか?

PDFファイルを読むために、IronPDFライブラリを使用してPdfDocumentインスタンスを作成し、ExtractAllTextExtractAllImagesなどのメソッドを使用してPDFからコンテンツを抽出できます。

C#用のPDFライブラリを選ぶ際に考慮すべき点は何ですか?

C#でのPDF操作には、IronPDFやiTextSharpのようなライブラリを選ぶ際に、使いやすさ、ライセンス、学習曲線、特定のプロジェクト要件などの要素を考慮してください。

自分のC#プロジェクトにPDFライブラリをどのようにインストールしますか?

IronPDFはVisual StudioのNuGetパッケージマネージャーを通じて、『IronPDF: C# PDF Library』を検索し、『インストール』ボタンを押すことでインストールできます。

IronPDFをPDF操作に利用する利点は何ですか?

IronPDFは使いやすさ、シンプルなAPI、正確な文書レンダリングを提供し、開発者がアプリケーションに迅速にPDF機能を統合するのに最適です。

IronPDFとiTextSharpを使う際の複雑さに違いがありますか?

はい、IronPDFはそのシンプルさで知られていますが、iTextSharpはより柔軟で拡張性があり、学習曲線が急になる可能性があります。

IronPDFはHTMLコンテンツをPDFに変換できますか?

はい、IronPDFはウェブフォームやページなどのHTMLコンテンツをPDFドキュメントにシームレスに変換でき、PDFのダウンロードやメール送信のタスクを容易にします。

iTextSharpを使ったPDFタスクの制限はありますか?

iTextSharpは学習曲線が急になることがあり、ライセンスモデルがすべてのプロジェクト予算に適合しない場合があります。特にシンプルなソリューションを求めている場合です。

IronPDFはアプリケーション機能をどのように拡張しますか?

IronPDFはアプリケーションにPDF生成と操作機能を統合することを可能にし、ウェブコンテンツをPDFに変換し、請求書や報告書といったプロフェッショナルな文書を扱うことができます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。