フッターコンテンツにスキップ
移行ガイド

C#でpdfからIronPDFに移行する方法

pdforgeからIronPDFへの移行:完全なC#移行ガイド

pdforgeからIronPDFに移行することで、PDF生成のワークフローが、外部サーバーでドキュメントを処理するクラウドベースのAPIから、アプリケーション内でローカルにすべてを処理する包括的な.NETライブラリに移行します。 このガイドでは、外部依存を排除し、継続的なサブスクリプションコストを排除し、ドキュメント処理パイプラインを完全に制御できるようにする、完全で段階的な移行パスを提供します。

なぜpdforgeからIronPDFに移行するのか

pdforgeを理解する。

pdforgeはクラウドベースのPDF生成APIであり、APIコールを通じてアプリケーションと統合することで、PDFファイルを生成する簡単な方法を提供します。 PDF作成のタスクを外部APIにオフロードすることで、開発者は開発プロセスを簡素化することができます。 しかし、pdforgeには、外部依存性、カスタマイズオプションの制限、継続的なサブスクリプション費用など、開発者が注意すべき欠点があります。

クラウド API の依存性の問題

pdforgeは、すべてのドキュメントを外部のクラウドサーバーで処理します。 このアーキテクチャーは、本番アプリケーションに大きな懸念をもたらします:

1.外部サーバー処理: PDFを作成するたびに、HTML/データをpdforgeのサーバーに送信する必要があります。

2.プライバシーとコンプライアンスに関するリスク:機密データはインターネットを経由してサードパーティのサーバーに送られます。 pdforgeを使用する場合、開発者はデータが外部APIに送信されることに関連するセキュリティ上の懸念に対応する必要があります。 PDFのコンテンツに機密情報が含まれている場合、これは重要な考慮事項となります。

3.継続的なサブスクリプション費用:pdforgeのSaaSモデルは、長期的に累積する可能性のある継続的な運用支出を導入します。

4.インターネット依存:ネットワークが利用できない場合、PDFは生成されません。

5.レート制限:API使用量の上限は、大量のアプリケーションをスロットルする可能性があります。

6.ネットワーク遅延:ラウンドトリップタイムは、すべてのPDF生成に数秒を追加します。

pdforgeとIronPDFの比較

フィーチャーpdforgeIronPDF
展開タイプクラウドベースのAPIローカルライブラリ
依存関係についてインターネットおよびAPI認証が必要です。外部依存なし
カスタマイズPDF生成の制御が制限されているカスタマイズの完全制御
コスト構造継続的な購読1回限りの購入オプション
セキュリティウェブ上で送信されるデータに関する潜在的な懸念データ処理を完全にローカル環境内に保持
セットアップの複雑さ外部処理による初期設定の容易化初期設定と構成が必要

IronPDFは完全にローカルなライブラリを提供し、開発者がPDF作成プロセスを完全にコントロールできるようにすることで差別化を図っています。 これは、ファイルの内部処理が優先されるアプリケーションや、外部API呼び出しによってセキュリティ上の懸念が生じるアプリケーションで特に有利です。 IronPdfはすべてをローカルで処理し、そのようなリスクを最小限に抑えます。

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パッケージの変更

# Removepdforgepackages
dotnet remove package pdforge
dotnet remove package PdfForge

# Install IronPDF
dotnet add package IronPdf
# Removepdforgepackages
dotnet remove package pdforge
dotnet remove package PdfForge

# 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

pdforgeの使用法を特定する。

# Findpdforgeusage
grep -r "PdForge\|PdfClient\|HtmlToPdfRequest\|HtmlToPdfConverter" --include="*.cs" .

# Find placeholder patterns to migrate
grep -r "{totalPages}" --include="*.cs" .
# Findpdforgeusage
grep -r "PdForge\|PdfClient\|HtmlToPdfRequest\|HtmlToPdfConverter" --include="*.cs" .

# Find placeholder patterns to migrate
grep -r "{totalPages}" --include="*.cs" .
SHELL

完全な API リファレンス

名前空間の変更

// Before: pdforge
using PdfForge;
using System.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: pdforge
using PdfForge;
using System.IO;

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

コア クラス マッピング

pdforgeIronPDFノート
<コード>HtmlToPdfConverter</コード<コード>ChromePdfRenderer</コード主なPDF生成ツール
<コード>PdfClient</コード<コード>ChromePdfRenderer</コードAPIクライアントに相当
<コード>ページサイズ.A4</コード<コード>PdfPaperSize.A4</コード用紙サイズ列挙
<コード>PageOrientation.Landscape</コード<コード>PdfPaperOrientation.Landscape</コードオリエンテーション列挙
戻り値の型<コード>バイト[]</コード<コード>PdfDocument</コード成果物

メソッドマッピング

pdforgeIronPDFノート
converter.ConvertHtmlString(html).renderer.RenderHtmlAsPdf(html).HTML文字列からPDFへ
converter.ConvertUrl(url).renderer.RenderUrlAsPdf(url)のようにします。URLからPDFへ
File.WriteAllBytes(path, bytes).pdf.SaveAs(path)のようにします。ディスクに保存
戻り値の型<コード>バイト[]</コード<コード>pdf.BinaryData</コード生のバイトを取得

構成マッピング

pdforgeIronPDF (RenderingOptions)ノート
converter.PageSize = PageSize.A4.renderer.RenderingOptions.PaperSize=PdfPaperSize.A4用紙サイズ
converter.Orientation = PageOrientation.Landscape.renderer.RenderingOptions.PaperOrientation=PdfPaperOrientation.Landscapeオリエンテーション
Footer = "{totalPages}の{page}ページ"TextFooter = new TextHeaderFooter { CenterText = "ページ{ページ}の{合計ページ}"}フッター(プレースホルダーの変更にご注意ください)

pdforgeでは利用できない新機能

IronPDFの特徴翻訳内容
PdfDocument.Merge()を使用してください。複数のPDFを結合
pdf.ExtractAllText()を使用してください。PDFからのテキスト抽出
<コード>pdf.ApplyWatermark()</コード></コード透かしの追加
<コード>pdf.SecuritySettings</コードパスワード保護
<コード>pdf.Form</コードフォーム入力
pdf.SignWithDigitalSignature()を使用してください。デジタル署名

コード移行の例

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

ビフォア(pdforge):

// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = converter.ConvertHtmlString(html);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = converter.ConvertHtmlString(html);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ここでの基本的な違いは、処理モデルと戻り値の型です。 pdforgeでは、HtmlToPdfConverterConvertHtmlString()を使用しており、byte[]配列を返します。

IronPDFはPdfDocumentオブジェクトを返すRenderHtmlAsPdf()ChromePdfRendererを使用します。 このオブジェクトは、SaveAs()で直接保存することもできますし、生のバイトが必要な場合はpdf.BinaryDataにアクセスすることもできます。 また、PdfDocumentでは、保存前に操作(透かしの追加、他のPDFとの結合、セキュリティの追加)を行うことができます。 包括的な例については、HTML to PDF documentationを参照してください。

例2: URLからPDFへの変換

ビフォア(pdforge):

// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var pdf = converter.ConvertUrl("https://example.com");
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var pdf = converter.ConvertUrl("https://example.com");
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

pdforgeは、HtmlToPdfConverterクラスのConvertUrl()を使用し、File.WriteAllBytes()で書き込んだバイトを返します。 IronPDFはChromePdfRenderer上でRenderUrlAsPdf()を使用し、組み込みのSaveAs()メソッドでPdfDocumentを返します。

IronPdfの主な利点は、Chromiumエンジンを使ってURLを取得し、ローカルでレンダリングすることです。 IronPdfはローカルライブラリであるため、ウェブリクエストのラウンドトリップタイムがなく、パフォーマンスが向上します。 URLからPDFへの変換の詳細については、こちらをご覧ください。

例3: カスタム設定でHTMLファイルをPDFにする

ビフォア(pdforge):

// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.PageSize = PageSize.A4;
        converter.Orientation = PageOrientation.Landscape;
        var htmlContent = File.ReadAllText("input.html");
        var pdf = converter.ConvertHtmlString(htmlContent);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
// NuGet: Install-Package PdfForge
using PdfForge;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.PageSize = PageSize.A4;
        converter.Orientation = PageOrientation.Landscape;
        var htmlContent = File.ReadAllText("input.html");
        var pdf = converter.ConvertHtmlString(htmlContent);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        var htmlContent = System.IO.File.ReadAllText("input.html");
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        var htmlContent = System.IO.File.ReadAllText("input.html");
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この例は、構成パターンの違いを示しています。 pdforgeは、コンバーターオブジェクトに直接プロパティを設定します(converter.PageSize = PageSize.A4converter.Orientation = PageOrientation.Landscape)。

IronPDFはRenderingOptionsプロパティと強く型付けされた列挙型を使用します:renderer.RenderingOptions.PaperSize=PdfPaperSize.A4renderer.RenderingOptions.PaperOrientation=PdfPaperOrientation.Landscapeです。 インテリセンスのサポートとコンパイル時の型安全性を提供します。 IronPDFは用紙サイズと向きの列挙のためにIronPdf.Rendering名前空間をインポートする必要があることに注意してください。 より多くの設定例については、チュートリアルを参照してください。


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

返品タイプの変更

pdforgeはbyte[]を返します; IronPDFはPdfDocumentを返します:

// pdforge: Returns byte[]
byte[] pdfBytes = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdfBytes);

// IronPDF: Returns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");           // Direct save
byte[] bytes = pdf.BinaryData;      // Get bytes if needed
// pdforge: Returns byte[]
byte[] pdfBytes = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdfBytes);

// IronPDF: Returns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");           // Direct save
byte[] bytes = pdf.BinaryData;      // Get bytes if needed
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

コンバータ クラスの変更

// pdforge: HtmlToPdfConverter
var converter = new HtmlToPdfConverter();

// IronPDF: ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// pdforge: HtmlToPdfConverter
var converter = new HtmlToPdfConverter();

// IronPDF: ChromePdfRenderer
var renderer = new ChromePdfRenderer();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

メソッド名の変更

//pdforgemethods
converter.ConvertHtmlString(html)
converter.ConvertUrl(url)

//IronPDFmethods
renderer.RenderHtmlAsPdf(html)
renderer.RenderUrlAsPdf(url)
//pdforgemethods
converter.ConvertHtmlString(html)
converter.ConvertUrl(url)

//IronPDFmethods
renderer.RenderHtmlAsPdf(html)
renderer.RenderUrlAsPdf(url)
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

保存メソッドの変更

// pdforge: Manual file write
File.WriteAllBytes("output.pdf", pdfBytes);

// IronPDF: Built-in save method
pdf.SaveAs("output.pdf");
// pdforge: Manual file write
File.WriteAllBytes("output.pdf", pdfBytes);

// IronPDF: Built-in save method
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

コンフィギュレーション ロケーションの変更

pdforgeはコンバーターのプロパティを使用します; IronPDFはRenderingOptions:

// pdforge: Properties on converter
converter.PageSize = PageSize.A4;
converter.Orientation = PageOrientation.Landscape;

// IronPDF: Properties on RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// pdforge: Properties on converter
converter.PageSize = PageSize.A4;
converter.Orientation = PageOrientation.Landscape;

// IronPDF: Properties on RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ヘッダー/フッターのプレースホルダーの構文

ヘッダーやフッターにページ番号を使用する場合は、プレースホルダーの構文が異なります:

//pdforgeplaceholders
"Page {page} of {totalPages}"

//IronPDFplaceholders
"Page {page} of {total-pages}"  // Note: hyphen in total-pages
//pdforgeplaceholders
"Page {page} of {totalPages}"

//IronPDFplaceholders
"Page {page} of {total-pages}"  // Note: hyphen in total-pages
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

移行後の新機能

IronPDFに移行した後は、pdfでは提供できない機能を得ることができます:

PDFマージ

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

テキスト抽出

var pdf = PdfDocument.FromFile("document.pdf");
string allText = pdf.ExtractAllText();
var pdf = PdfDocument.FromFile("document.pdf");
string allText = pdf.ExtractAllText();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ウォーターマーク

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

パスワード保護

pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

機能比較の概要

フィーチャーpdforgeIronPDF
HTMLからPDFへ
URLからPDFへ
ページ設定
オフライン対応
ローカル処理
PDFのマージ
PDFの分割
テキストの抽出
透かし
フォーム入力
デジタル署名
パスワード保護
料金制限なし
1回限りのライセンス

移行チェックリスト

移行前

  • [コードベース内のすべてのpdforgeAPI 呼び出しをインベントリ化する。
  • [現在使用している設定オプション(ページサイズ、向き)を文書化してください。)
  • [{totalPages}{total-pages})。
  • [ ] IronPDFライセンスキーの保存を計画する(環境変数を推奨)
  • [ ] まずはIronPDFトライアルライセンスでテストしてください。

パッケージの変更

  • [ ] pdforge NuGet パッケージを削除する。
  • [ ] PdfForge NuGet パッケージを削除してください。
  • [ ] IronPdf NuGetパッケージをインストールします:dotnet add package IronPdf NuGetパッケージをインストールします。

コードの変更

  • [ ] 名前空間のインポートをすべて更新する (using PdfForge;using IronPdf;)
  • [using IronPdf.Rendering; for paper size and orientation enumsを追加してください。
  • [ ] HtmlToPdfConverterChromePdfRendererに置き換えてください。
  • [ ] ConvertHtmlString()RenderHtmlAsPdf()に置き換えてください。
  • [ ] ConvertUrl()RenderUrlAsPdf()に置き換えてください。
  • [ ] File.WriteAllBytes()pdf.SaveAs()に置き換えてください。
  • [ ] PageSizeプロパティをRenderingOptions.PaperSizeに移動します。
  • [ ] OrientationプロパティをRenderingOptions.PaperOrientationに移動します。
  • [ ] 列挙名を更新する(PageSize.A4PdfPaperSize.A4)
  • [ ] 列挙名を更新 (PageOrientation.LandscapePdfPaperOrientation.Landscape)
  • [ヘッダー/フッターのプレースホルダー構文の更新

移行後

  • [PDF 出力の品質が期待に沿うかどうかのテスト
  • [オフライン動作の確認
  • [設定からAPI認証情報を削除する
  • [必要に応じて、新しい機能(マージ、透かし、セキュリティ)を追加してください。

結論

pdforgeからIronPDFに移行することで、PDFワークフローはクラウド依存のAPIサービスから、ローカルで処理される完全な機能を備えたPDFライブラリに変わります。 この移行により、継続的なサブスクリプションコストが不要になり、インターネットへの依存がなくなり、すべての文書処理をお客様のサーバーで行うことで、完全なデータプライバシーが実現します。

この移行における主な変更点は以下のとおりです: 1.メインクラスHtmlToPdfConverterChromePdfRenderer 2.HTMLメソッドConvertHtmlString()RenderHtmlAsPdf()。 3.URLメソッドConvertUrl()RenderUrlAsPdf()。 4.戻り値の型byte[]PdfDocument 5.保存メソッドFile.WriteAllBytes()pdf.SaveAs(). 6.ページサイズconverter.PageSize = PageSize.A4renderer.RenderingOptions.PaperSize=PdfPaperSize.A4。です。 7.オリエンテーションconverter.Orientation = PageOrientation.Landscaperenderer.RenderingOptions.PaperOrientation=PdfPaperOrientation.Landscape。です。 8.新機能:PDFマージ、テキスト抽出、透かし、電子署名など

PdforgeとIronPDFのどちらを選ぶかは、特にカスタマイズの必要性、予算、セキュリティの考慮など、特定のプロジェクトの要件に大きく依存します。 IronPDFは、ローカルでのデプロイメントを管理できる開発者向けに、強固なセキュリティの利点を備えた、より包括的なツール群を提供します。 IronPdfはローカルで処理することで、クラウドベースのモデルに関連するプライバシーの懸念を回避し、アプリケーション開発者により費用対効果の高いスケーラブルなソリューションを提供します。

IronPDFドキュメントチュートリアルAPIリファレンスをご覧いただき、IronPDFへの移行を加速させてください。

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

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

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