フッターコンテンツにスキップ
ビデオ

ASP.NET Core MVC で IronPDF を使用して CSHTML を PDF に変換する

PDFView4NET からIronPDFへの移行により、PDF ワークフローが WinForms/WPF ビューコンポーネントから、ヘッドレスな PDF 生成および操作ライブラリに移行します。 このガイドは、PDFView4NET のビュー/レンダー/印刷スコープを超えて、サーバーサイド処理、Web アプリケーションサポート、広範な PDF ライフサイクル管理を可能にするステップバイステップの移行パスを提供します。

なぜPDFView4NETからIronPDFへ移行するのか

PDFView4NETを理解する

PDFView4NET (O2 Solutions, o2sol.com) は、WinForms およびWPFアプリケーション用のビューア / レンダー / 印刷ツールキットです。 それは2つのNuGetパッケージ—O2S.Components.PDFView4NET.WPFとして提供され、自身のPDFレンダリングエンジンを含んでいます。O2 Solutionsは別のライブラリPDF4NETを販売しており、プログラムによる作成/操作が可能です。 このガイドはPDFView4NETのみを扱います。

PDF 生成、HTML to PDF レンダリング、またはサーバーサイドワークフローが必要なチームは、PDFView4NET を別のライブラリと組み合わせるか、あるいは作成と操作のみならず、ヘッドレスデプロイメントシナリオもカバーするツールキットであるIronPDFへの全面的な移行を行うことがしばしばあります。

ビュー/レンダー/印刷スコープ

PDFView4NET は PDF の表示、レンダリング、印刷、加えて注釈の追加とフォーム入力用に作られています。 移行理由 (一般的な理由):

  1. ビュー/レンダー/印刷重視:PDFView4NETは既存の PDF を表示、印刷、またはイメージレンダリングのためにロードします。 HTMLまたはURLからPDFを生成しません。

  2. UI フレームワーク依存:WinFormsおよびWPFエディションで配布されています; 両者は Windows デスクトップをターゲットとしており、コンソールワーカーやサーバーサイドホストでの使用を制限します。

  3. HTMLからPDFへの変換はありません: O2S.Components.PDFView4NETにはHTMLレンダリングAPIがありません。

  4. 制限された操作: 操作はコンテンツの著作よりも注釈やフォームフィールドを中心にしています。

  5. Linux /Docker/ サーバーパスがない: このツールキットは WinForms/WPF を介して Windows のみ可能であり、Linux やコンテナ環境での ASP.NET ホストには設計されていません。

  6. アクティブだが限定的: O2 Solutions はリリースを出荷し続けています; 製品は保守されていますが、そのスコープは意図的に狭いです。

PDFView4NETとIronPDFの比較

フィーチャー PDFView4NET IronPDF
主な焦点 PDF閲覧 完全なPDFソリューション(作成、表示、編集)
UIフレームワークが必要です。 WinForms、WPF None
PDFの作成 なし はい
PDF操作 限定(注釈) はい
サーバーサイド サポート対象外 フルサポート
ウェブアプリケーション なし はい
コンソールアプリ 制限的 フルサポート
Azure/Docker(アジュール/Docker) なし はい
HTMLからPDFへ なし はい
クロスプラットフォームのコンテキスト なし はい
統合のしやすさ 中規模 高い

IronPDF は、PDFView4NET のビュー/レンダー/印刷スコープを超えて、閲覧に隣接するワークフローの上に PDF の作成、操作、レンダリングをカバーし、利用ケースに対応します。

IronPDF はコンテキストに依存しないので、Windows、Linux、macOS、Docker、Azure での Web アプリケーション、サービス、およびコンソールアプリケーションで動作し、クロスプラットフォームサポートやサーバーサイドホスティングが必要なプロジェクトにとって重要です。


始める前に

前提条件

  1. .NET環境: .NET Framework 4.6.2+ または.NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGetアクセス: NuGetパッケージをインストールする機能
  3. IronPDFライセンス: IronPDFからライセンスキーを取得します。

NuGetパッケージの変更


<PackageReference Include="O2S.Components.PDFView4NET.Win" Version="*" Remove />

<PackageReference Include="IronPdf" Version="*" />

<PackageReference Include="O2S.Components.PDFView4NET.Win" Version="*" Remove />

<PackageReference Include="IronPdf" Version="*" />
XML

CLI経由でも可:

dotnet remove package O2S.Components.PDFView4NET.Win
# (use O2S.Components.PDFView4NET.WPF for theWPFedition)
dotnet add package IronPdf
dotnet remove package O2S.Components.PDFView4NET.Win
# (use O2S.Components.PDFView4NET.WPF for theWPFedition)
dotnet add package IronPdf
SHELL

ライセンス構成

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

完全な API リファレンス

名前空間の変更

// Before: PDFView4NET
using O2S.Components.PDFView4NET;

// After: IronPDF
using IronPdf;
// Before: PDFView4NET
using O2S.Components.PDFView4NET;

// After: IronPDF
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

コア API マッピング

PDFView4NET IronPDF
new PDFDocument(); doc.Load(path) PdfDocument.FromFile(path)
new PDFDocument(); doc.Load(stream) PdfDocument.FromStream(stream)
document.Pages[index] pdf.Pages[index]
document.PageCount pdf.PageCount
document.Print(...) pdf.Print()
document.Close() pdf.Dispose()
PDFView4NETには N/A ChromePdfRenderer (HTML to PDF)
PDFView4NETには N/A PdfDocument.Merge()
PDFView4NETには N/A pdf.ApplyWatermark()
document.SecurityManager pdf.SecuritySettings

コード移行の例

例1: URLからPDFへの変換

翻訳前 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;

class Program
{
    static void Main()
    {
        //PDFView4NETcannot fetch a URL and emit a PDF; it can only consume one.
        PDFDocument document = new PDFDocument();
        document.Load("input.pdf");
        Console.WriteLine($"Loaded {document.PageCount} page(s) for view/print.");
        document.Close();
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;

class Program
{
    static void Main()
    {
        //PDFView4NETcannot fetch a URL and emit a PDF; it can only consume one.
        PDFDocument document = new PDFDocument();
        document.Load("input.pdf");
        Console.WriteLine($"Loaded {document.PageCount} page(s) for view/print.");
        document.Close();
    }
}
Imports O2S.Components.PDFView4NET
Imports System

Class Program
    Shared Sub Main()
        ' PDFView4NET cannot fetch a URL and emit a PDF; it can only consume one.
        Dim document As New PDFDocument()
        document.Load("input.pdf")
        Console.WriteLine($"Loaded {document.PageCount} page(s) for view/print.")
        document.Close()
    End Sub
End Class
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFView4NETにはHTML/URLレンダリングサーフェスがありません — O2S.Components.PDFView4NETにないため、URLは最初に別のツールでPDFにレンダリングされてから表示/印刷のために読み込む必要があります。 IronPDFはSaveAs()で保存します。 包括的な例については、HTML to PDF documentationを参照してください。

例2: HTML文字列からPDFへの変換

翻訳前 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;

class Program
{
    static void Main()
    {
        // The HTML string cannot be rendered by PDFView4NET. Assume an upstream
        // tool produced "document.pdf";PDFView4NETcan then display or print it.
        PDFDocument document = new PDFDocument();
        document.Load("document.pdf");
        Console.WriteLine($"Document ready for viewing — {document.PageCount} page(s).");
        document.Close();
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;

class Program
{
    static void Main()
    {
        // The HTML string cannot be rendered by PDFView4NET. Assume an upstream
        // tool produced "document.pdf";PDFView4NETcan then display or print it.
        PDFDocument document = new PDFDocument();
        document.Load("document.pdf");
        Console.WriteLine($"Document ready for viewing — {document.PageCount} page(s).");
        document.Close();
    }
}
Imports O2S.Components.PDFView4NET
Imports System

Class Program
    Shared Sub Main()
        ' The HTML string cannot be rendered by PDFView4NET. Assume an upstream
        ' tool produced "document.pdf"; PDFView4NET can then display or print it.
        Dim document As New PDFDocument()
        document.Load("document.pdf")
        Console.WriteLine($"Document ready for viewing — {document.PageCount} page(s).")
        document.Close()
    End Sub
End Class
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("document.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

O2S.Components.PDFView4NETには存在しないため、HTML文字列は別の場所でPDFとして作成され、その後ビューアに読み込まれる必要があります。 IronPDFはPdfDocumentを返します。 詳しくは、チュートリアルをご覧ください。

例3: PDFからのテキスト抽出

翻訳前 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (FileStream fs = File.OpenRead("document.pdf"))
        {
            PDFDocument document = new PDFDocument();
            document.Load(fs);
            string text = "";
            for (int i = 0; i < document.PageCount; i++)
            {
                text += document.Pages[i].ExtractText();
            }
            Console.WriteLine(text);
            document.Close();
        }
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (FileStream fs = File.OpenRead("document.pdf"))
        {
            PDFDocument document = new PDFDocument();
            document.Load(fs);
            string text = "";
            for (int i = 0; i < document.PageCount; i++)
            {
                text += document.Pages[i].ExtractText();
            }
            Console.WriteLine(text);
            document.Close();
        }
    }
}
Imports O2S.Components.PDFView4NET
Imports System
Imports System.IO

Class Program
    Shared Sub Main()
        Using fs As FileStream = File.OpenRead("document.pdf")
            Dim document As New PDFDocument()
            document.Load(fs)
            Dim text As String = ""
            For i As Integer = 0 To document.PageCount - 1
                text &= document.Pages(i).ExtractText()
            Next
            Console.WriteLine(text)
            document.Close()
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string text = pdf.ExtractAllText();
        Console.WriteLine(text);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string text = pdf.ExtractAllText();
        Console.WriteLine(text);
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim pdf = PdfDocument.FromFile("document.pdf")
        Dim text As String = pdf.ExtractAllText()
        Console.WriteLine(text)
    End Sub
End Class
$vbLabelText   $csharpLabel

この例では、重要なAPIの違いを強調しています。 PDFView4NETはPages[i].ExtractText()を連結することを要求します。

IronPDFはこれを劇的に簡素化します: ExtractAllText()は単一のメソッド呼び出しですべてのページからのテキストを抽出します。 手動のストリーム管理も、ループも、文字列の連結もありません。


重要な移行に関する注意事項

HTML レンダリングサーフェス

PDFView4NET には HTML-to-PDF API がありません。 IronPDFはHTML/URL入力のためにChromePdfRendererを導入します:

// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// or: renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// or: renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
' or: renderer.RenderUrlAsPdf(url)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

ドキュメントの読み込みの変更

// PDFView4NET: instantiate then Load(path) or Load(stream)
PDFDocument document = new PDFDocument();
document.Load("document.pdf");

// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
// PDFView4NET: instantiate then Load(path) or Load(stream)
PDFDocument document = new PDFDocument();
document.Load("document.pdf");

// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
' PDFView4NET: instantiate then Load(path) or Load(stream)
Dim document As New PDFDocument()
document.Load("document.pdf")

' IronPDF: Direct file path
Dim pdf = PdfDocument.FromFile("document.pdf")
$vbLabelText   $csharpLabel

ページのアクセス変更

// PDFView4NET: document.PageCount and document.Pages[i]
for (int i = 0; i < document.PageCount; i++)
{
    document.Pages[i].ExtractText();
}

// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
// PDFView4NET: document.PageCount and document.Pages[i]
for (int i = 0; i < document.PageCount; i++)
{
    document.Pages[i].ExtractText();
}

// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
Imports PDFView4NET
Imports IronPDF

' PDFView4NET: document.PageCount and document.Pages(i)
For i As Integer = 0 To document.PageCount - 1
    document.Pages(i).ExtractText()
Next

' IronPDF: pdf.PageCount and Pages(i) or ExtractAllText()
Dim text As String = pdf.ExtractAllText()
' Or per-page: pdf.ExtractTextFromPage(0)
$vbLabelText   $csharpLabel

保存メソッドの変更

//PDFView4NEThas no save-from-HTML path; saving applies after edits on a loaded document.
// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
//PDFView4NEThas no save-from-HTML path; saving applies after edits on a loaded document.
// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
'PDFView4NEThas no save-from-HTML path; saving applies after edits on a loaded document.
' IronPDF: SaveAs()
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

移行後の新機能

IronPDFに移行すると、PDFView4NETでは提供できない機能が得られます:

PDFマージ

var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("complete_book.pdf")
$vbLabelText   $csharpLabel

HTMLによるウォーターマーク

var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");
pdf.SaveAs("watermarked.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");
pdf.SaveAs("watermarked.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.ApplyWatermark("
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>")
pdf.SaveAs("watermarked.pdf")
$vbLabelText   $csharpLabel

パスワード保護

var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.SecuritySettings.OwnerPassword = "owner123"
pdf.SecuritySettings.UserPassword = "user456"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
$vbLabelText   $csharpLabel

フォーム入力

var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.FindFormField("FirstName").Value = "John";
pdf.Form.FindFormField("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.FindFormField("FirstName").Value = "John";
pdf.Form.FindFormField("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
Dim pdf = PdfDocument.FromFile("form.pdf")
pdf.Form.FindFormField("FirstName").Value = "John"
pdf.Form.FindFormField("LastName").Value = "Doe"
pdf.SaveAs("filled_form.pdf")
$vbLabelText   $csharpLabel

サーバーサイド処理

PDFView4NETはサーバー環境では動作しません。 IronPDFはこの点で優れています:

// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
<HttpGet>
Public Function GeneratePdf() As IActionResult
    Dim renderer As New ChromePdfRenderer()
    Dim pdf = renderer.RenderHtmlAsPdf(GetReportHtml())
    Return File(pdf.BinaryData, "application/pdf", "report.pdf")
End Function
$vbLabelText   $csharpLabel

機能比較の概要

フィーチャー PDFView4NET IronPDF
PDFを見る はい(UI) いいえ(ビューアを使用)
PDFを読み込む はい はい
PDF保存 制限的 はい
HTMLからPDFへ なし はい
URLからPDFへ なし はい
PDFのマージ なし はい
PDFの分割 制限的 はい
透かし なし はい
ヘッダー/フッター なし はい
パスワード保護 なし はい
デジタル署名 なし はい
テキスト抽出 制限的 はい
フォームの入力 制限的 はい
WinForms はい はい
WPF はい はい
コンソール 制限的 はい
ASP.NET なし はい
アジュール なし はい
Docker なし はい

移行チェックリスト

移行前

  • 表示要件を特定する(IronPDF の機能が UI ベースの PDF 表示を置き換えることができるかどうかを判断する)
  • ドキュメント印刷ワークフロー
  • PDF操作のニーズをリストする
  • 必要に応じてビューアの置き換えを計画する(IronPDF は生成/操作に重点を置いています)
  • IronPDFからIronPDFライセンスキーを取得します

パッケージの変更

  • O2S.Components.PDFView4NET.Win (または.WPF) NuGetパッケージを削除する
  • IronPdf NuGetパッケージをインストールする: dotnet add package IronPdf

コードの変更

  • 名前空間インポートを更新する (using O2S.Components.PDFView4NET;using IronPdf;)
  • HTMLまたはURL入力のためにChromePdfRendererを導入する (PDFView4NETの同等物はありません)
  • new PDFDocument(); document.Load(path) with PdfDocument.FromFile(path)
  • new PDFDocument(); document.Load(stream) with PdfDocument.FromStream(stream)
  • 手動 for (int i = 0; i < document.PageCount; i++) (or pdf.ExtractTextFromPage(i))
  • pdf.Dispose() (またはusingブロック) に置き換える
  • アプリケーションの起動時にライセンスの初期化を追加

移行後

  • PDFの読み込みと保存をテストする
  • テキスト抽出機能の検証
  • HTMLからPDFへの変換テスト
  • サーバーの展開が機能していることを確認する(新機能)
  • 必要に応じてクロスプラットフォームをテストする(新機能)
  • サーバーのみの場合はUI固有のPDFコードを削除します

ご注意PDFView4NET はその所有者の登録商標です。 このサイトは O2 Solutions と提携しておらず、承認されておらず、スポンサー也されていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

Curtis Chau
テクニカルライター

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

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

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね