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

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

Ghostscript GPLからIronPDFに移行することで、.NET PDFワークフローをコマンドラインでのプロセス生成や文字列ベースのスイッチ操作から、タイプセーフでインテリセンス対応 for .NETネイティブAPIに変換します。 このガイドは、プロ for .NET開発者のために、AGPLライセンスの懸念と外部バイナリ依存を排除する包括的なステップバイステップの移行パスを提供します。

なぜGhostscript GPLからIronPDFに移行するのか

GhostscriptのGPLの課題

Ghostscript GPL は、数十年の歴史を持つ由緒ある PostScript/PDF インタプリタですが、最新の .NET アプリケーションで使用するには大きな課題があります:

  1. AGPL ライセンスの制限:Ghostscript GPLの AGPL ライセンスでは、Artifex から高価な商用ライセンスを購入しない限り、それを使用するソフトウェアを配布する場合、ソース コードをリリースする必要があります。 この"バイラル"ライセンスモデルは、プロプライエタリなアプリケーションに重大な法的リスクをもたらします。

2.コマンドライン インターフェイス:Ghostscript GPLは基本的にコマンドライン ツールです。 C#からこのツールを使用するには、プロセスを起動し、文字列引数を渡し、出力を解析する必要があります。

3.外部バイナリ依存関係:Ghostscript GPLを個別にインストールし、PATH 変数を管理し、展開環境間でのバージョン互換性を確保する必要があります。 32 ビットと 64 ビットでは異なる DLL が必要です (gsdll32.dllgsdll64.dll)。

4.ネイティブ HTML から PDF への変換なし:Ghostscript GPLは HTML を PDF に直接変換できません。 まず別のツールを使ってHTMLをPostScriptに変換し、次にGhostscript GPLを使ってPostScriptをPDFに変換する必要があります。

5.複雑なスイッチ構文:操作は、-dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=... のような難解なコマンドライン スイッチによって制御されます。 インテリセンス、タイプセーフティがなく、ミスタイプしやすい。

6.エラー処理:エラーはテキスト文字列として stderr から渡されるため、構造化例外処理ではなく解析が必要です。

7.プロセス管理のオーバーヘッド:各操作は個別のプロセスを生成し、エラー処理、タイムアウト、およびリソースのクリーンアップのオーバーヘッドと複雑さを追加します。

ゴーストスクリプトGPLとIronPDFの比較

アスペクト Ghostscript GPL IronPDF
ライセンス AGPL(ウィルス性)または高価な商用 明確な用語によるコマーシャル
インテグレーション コマンドラインプロセスの起動 .NETネイティブライブラリ
APIデザイン 文字列ベースのスイッチ 型付き、インテリセンス対応API
エラー処理 標準エラーテキストの解析 .NET の例外
HTMLからPDFへ 非対応(外部ツールが必要) 内蔵Chromiumエンジン
依存関係 外部バイナリのインストール 自己完結型NuGetパッケージ
デプロイメント PATHの設定、DLLのコピー NuGetリファレンスを追加するだけです。
スレッドの安全性 プロセス分離のみ スレッドセーフ設計
最新 for .NET 限定サポート .NET 6/7/8/9/10をフルサポート
非同期サポート プロセスベース ネイティブasync/await

2025年、2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFは最新 for .NETパターンとネイティブに統合する将来性のある基盤を提供します。


マイグレーションの複雑さの評価

機能別の見積もり作業

フィーチャー 移行の複雑さ
PDFから画像へ 低レベル
PDFのマージ 低レベル
PDF圧縮 低レベル
PDF最適化 低レベル
暗号化 中規模
ページ抽出 低レベル
ポストスクリプトからPDFへ 中・高
カスタムスイッチ 中・高

パラダイムシフト

このGhostscript GPL移行における基本的な変化は、コマンドライン プロセス実行から型指定された.NET API 呼び出しへの変更です。

Ghostscript GPL:  "これらの文字列スイッチを外部プロセスに渡す"
IronPDF:          ".NET オブジェクトでこれらのメソッドを呼び出す

始める前に

前提条件

  1. .NETバージョン: IronPDFは.NET Framework 4.6.2以降および.NET Core 2.0以降 / .NET 5/6/7/8/9以降をサポートしています。 2.ライセンスキー: IronPDFからIronPDFライセンスキーを取得します。 3.バックアップ:移行作業用のブランチを作成する

すべてのGhostscript GPLの使用法を特定する

# Find all Ghostscript.NET references
grep -r "Ghostscript\.NET\|GhostscriptProcessor\|GhostscriptRasterizer\|gsdll" --include="*.cs" .

# Find direct process calls to Ghostscript
grep -r "gswin64c\|gswin32c\|gs\|ProcessStartInfo.*ghost" --include="*.cs" .

# Find package references
grep -r "Ghostscript" --include="*.csproj" .
# Find all Ghostscript.NET references
grep -r "Ghostscript\.NET\|GhostscriptProcessor\|GhostscriptRasterizer\|gsdll" --include="*.cs" .

# Find direct process calls to Ghostscript
grep -r "gswin64c\|gswin32c\|gs\|ProcessStartInfo.*ghost" --include="*.cs" .

# Find package references
grep -r "Ghostscript" --include="*.csproj" .
SHELL

NuGetパッケージの変更

# Remove Ghostscript.NET
dotnet remove package Ghostscript.NET

# Install IronPDF
dotnet add package IronPdf
# Remove Ghostscript.NET
dotnet remove package Ghostscript.NET

# Install IronPDF
dotnet add package IronPdf
SHELL

GhostscriptのGPL依存関係を削除する

移行後

  • サーバーからGhostscript GPLをアンインストールする
  • デプロイメントから gsdll32.dll / gsdll64.dll を削除します
  • Ghostscript GPLのPATH設定を削除する
  • GhostscriptVersionInfo 参照を削除します

クイック スタート マイグレーション

ステップ 1: ライセンス構成の更新

ビフォア (Ghostscript GPL):

Ghostscript GPL under AGPLは、ソースコードの開示か、Artifexからの高価な商用ライセンスが必要です。

翻訳後(IronPDF):

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

ステップ 2: 名前空間インポートを更新する

// Before (Ghostscript GPL)
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using Ghostscript.NET.Rasterizer;

// After (IronPDF)
using IronPdf;
// Before (Ghostscript GPL)
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using Ghostscript.NET.Rasterizer;

// After (IronPDF)
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

完全な API リファレンス

コア クラス マッピング

Ghostscript.NET IronPDF 翻訳内容
GhostscriptProcessor さまざまなPdfDocumentメソッド PDF処理
GhostscriptRasterizer PdfDocument.ToBitmap() / RasterizeToImageFiles() PDFから画像へ
GhostscriptVersionInfo 該当なし(不要) DLLの場所
GhostscriptStdIO 該当なし(例外あり) I/O処理
プロセス+コマンドライン ChromePdfRenderer HTML to PDF.

コマンドライン スイッチ マッピング

Ghostscript GPL スイッチ IronPDF 同等物 翻訳内容
-dNOPAUSE 該当なし(不要) ページ間で一時停止しない
-dBATCH 該当なし(不要) 処理終了後
-dSAFER 該当なし(デフォルト) 安全なファイルアクセス
-sDEVICE=pdfwrite さまざまなPDFメソッド 出力PDF
-sDEVICE=png16m ToBitmap() または RasterizeToImageFiles() PNG出力
-sOutputFile=X SaveAs("X") 出力ファイル名
-r300 メソッド内のDPIパラメータ 解像度
-dPDFSETTINGS=/ebook CompressImages(quality: 75) 中程度の品質
-sOwnerPassword=X SecuritySettings.OwnerPassword オーナーパスワード
-sUserPassword=X SecuritySettings.UserPassword ユーザーパスワード

コード移行の例

例1: HTMLからPDFへの変換

ビフォア (Ghostscript GPL):

// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using System.IO;
using System.Text;

class GhostscriptExample
{
    static void Main()
    {
        // Ghostscript cannot directly convert HTML to PDF
        // You need to first convert HTML to PS/EPS using another tool
        // then use Ghostscript to convert PS to PDF

        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        string psFile = "temp.ps";
        string outputPdf = "output.pdf";

        // This is a workaround - Ghostscript primarily works with PostScript
        GhostscriptProcessor processor = new GhostscriptProcessor();

        List<string> switches = new List<string>
        {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}",
            psFile
        };

        processor.Process(switches.ToArray());
    }
}
// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using System.IO;
using System.Text;

class GhostscriptExample
{
    static void Main()
    {
        // Ghostscript cannot directly convert HTML to PDF
        // You need to first convert HTML to PS/EPS using another tool
        // then use Ghostscript to convert PS to PDF

        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        string psFile = "temp.ps";
        string outputPdf = "output.pdf";

        // This is a workaround - Ghostscript primarily works with PostScript
        GhostscriptProcessor processor = new GhostscriptProcessor();

        List<string> switches = new List<string>
        {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}",
            psFile
        };

        processor.Process(switches.ToArray());
    }
}
Imports Ghostscript.NET
Imports Ghostscript.NET.Processor
Imports System.IO
Imports System.Text

Class GhostscriptExample
    Shared Sub Main()
        ' Ghostscript cannot directly convert HTML to PDF
        ' You need to first convert HTML to PS/EPS using another tool
        ' then use Ghostscript to convert PS to PDF

        Dim htmlContent As String = "<html><body><h1>Hello World</h1></body></html>"
        Dim psFile As String = "temp.ps"
        Dim outputPdf As String = "output.pdf"

        ' This is a workaround - Ghostscript primarily works with PostScript
        Dim processor As New GhostscriptProcessor()

        Dim switches As New List(Of String) From {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}",
            psFile
        }

        processor.Process(switches.ToArray())
    End Sub
End Class
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";

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

Class IronPdfExample
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()

        Dim htmlContent As String = "<html><body><h1>Hello World</h1></body></html>"

        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Ghostscript GPLは、HTMLを直接PDFに変換することはできません。IronPDFの ChromePdfRenderer は、完全な CSS3、 JavaScript、および最新の Web 標準のサポートにより、HTML から PDF への直接変換を提供します。 レンダリングオプションについては、HTML to PDF documentationを参照してください。

例2:PDFから画像へ

ビフォア (Ghostscript GPL):

// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Rasterizer;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

class GhostscriptExample
{
    static void Main()
    {
        string inputPdf = "input.pdf";
        string outputPath = "output";

        GhostscriptVersionInfo gvi = new GhostscriptVersionInfo("gsdll64.dll");

        using (GhostscriptRasterizer rasterizer = new GhostscriptRasterizer())
        {
            rasterizer.Open(inputPdf, gvi, false);

            for (int pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
            {
                Image img = rasterizer.GetPage(300, pageNumber);
                img.Save($"{outputPath}_page{pageNumber}.png", ImageFormat.Png);
                img.Dispose();
            }
        }
    }
}
// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Rasterizer;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

class GhostscriptExample
{
    static void Main()
    {
        string inputPdf = "input.pdf";
        string outputPath = "output";

        GhostscriptVersionInfo gvi = new GhostscriptVersionInfo("gsdll64.dll");

        using (GhostscriptRasterizer rasterizer = new GhostscriptRasterizer())
        {
            rasterizer.Open(inputPdf, gvi, false);

            for (int pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
            {
                Image img = rasterizer.GetPage(300, pageNumber);
                img.Save($"{outputPath}_page{pageNumber}.png", ImageFormat.Png);
                img.Dispose();
            }
        }
    }
}
Imports Ghostscript.NET
Imports Ghostscript.NET.Rasterizer
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO

Class GhostscriptExample
    Shared Sub Main()
        Dim inputPdf As String = "input.pdf"
        Dim outputPath As String = "output"

        Dim gvi As New GhostscriptVersionInfo("gsdll64.dll")

        Using rasterizer As New GhostscriptRasterizer()
            rasterizer.Open(inputPdf, gvi, False)

            For pageNumber As Integer = 1 To rasterizer.PageCount
                Dim img As Image = rasterizer.GetPage(300, pageNumber)
                img.Save($"{outputPath}_page{pageNumber}.png", ImageFormat.Png)
                img.Dispose()
            Next
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

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

class IronPdfExample
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");

        var images = pdf.ToBitmap();

        for (int i = 0; i < images.Length; i++)
        {
            images[i].Save($"output_page{i + 1}.png");
        }
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");

        var images = pdf.ToBitmap();

        for (int i = 0; i < images.Length; i++)
        {
            images[i].Save($"output_page{i + 1}.png");
        }
    }
}
Imports IronPdf
Imports System

Class IronPdfExample
    Shared Sub Main()
        Dim pdf = PdfDocument.FromFile("input.pdf")

        Dim images = pdf.ToBitmap()

        For i As Integer = 0 To images.Length - 1
            images(i).Save($"output_page{i + 1}.png")
        Next
    End Sub
End Class
$vbLabelText   $csharpLabel

Ghostscript GPL アプローチでは、外部の gsdll64.dll を見つけ、GhostscriptVersionInfo オブジェクトを作成し、1 から始まるインデックスのページ番号を使用する必要があります。IronPDFの ToBitmap() メソッドは、外部依存関係のないクリーンな単一行のアプローチを提供します。 ページのインデックスの違いに注意してください:Ghostscript GPLは1-indexedページを使用し、IronPDFは0-indexed (標準的な.NETの慣習)を使用します。

例3: PDFファイルをマージする

ビフォア (Ghostscript GPL):

// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using System.Collections.Generic;

class GhostscriptExample
{
    static void Main()
    {
        string outputPdf = "merged.pdf";
        string[] inputFiles = { "file1.pdf", "file2.pdf", "file3.pdf" };

        GhostscriptProcessor processor = new GhostscriptProcessor();

        List<string> switches = new List<string>
        {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}"
        };

        switches.AddRange(inputFiles);

        processor.Process(switches.ToArray());
    }
}
// NuGet: Install-Package Ghostscript.NET
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using System.Collections.Generic;

class GhostscriptExample
{
    static void Main()
    {
        string outputPdf = "merged.pdf";
        string[] inputFiles = { "file1.pdf", "file2.pdf", "file3.pdf" };

        GhostscriptProcessor processor = new GhostscriptProcessor();

        List<string> switches = new List<string>
        {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}"
        };

        switches.AddRange(inputFiles);

        processor.Process(switches.ToArray());
    }
}
Imports Ghostscript.NET
Imports Ghostscript.NET.Processor
Imports System.Collections.Generic

Class GhostscriptExample
    Shared Sub Main()
        Dim outputPdf As String = "merged.pdf"
        Dim inputFiles As String() = {"file1.pdf", "file2.pdf", "file3.pdf"}

        Dim processor As New GhostscriptProcessor()

        Dim switches As New List(Of String) From {
            "-dNOPAUSE",
            "-dBATCH",
            "-dSAFER",
            "-sDEVICE=pdfwrite",
            $"-sOutputFile={outputPdf}"
        }

        switches.AddRange(inputFiles)

        processor.Process(switches.ToArray())
    End Sub
End Class
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

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

class IronPdfExample
{
    static void Main()
    {
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("file1.pdf"),
            PdfDocument.FromFile("file2.pdf"),
            PdfDocument.FromFile("file3.pdf")
        };

        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class IronPdfExample
{
    static void Main()
    {
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("file1.pdf"),
            PdfDocument.FromFile("file2.pdf"),
            PdfDocument.FromFile("file3.pdf")
        };

        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Class IronPdfExample
    Shared Sub Main()
        Dim pdfs As New List(Of PdfDocument) From {
            PdfDocument.FromFile("file1.pdf"),
            PdfDocument.FromFile("file2.pdf"),
            PdfDocument.FromFile("file3.pdf")
        }

        Dim merged = PdfDocument.Merge(pdfs)
        merged.SaveAs("merged.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Ghostscript GPL アプローチでは、スイッチ構文 (-sDEVICE=pdfwrite) を記憶し、ファイル パスを文字列配列に連結する必要があります。IronPDFの静的 Merge メソッドは、適切な PdfDocument オブジェクトとの型セーフで IntelliSense 対応のマージを提供します。 PDFのマージと分割については、こちらをご覧ください。


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

ページインデックス変換

このGhostscript GPL移行における最も重要な変更点の一つは、ページインデックスの違いです:

// Ghostscript GPL: 1-indexed pages
for (int pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
{
    Image img = rasterizer.GetPage(300, pageNumber);
}

// IronPDF: 0-indexed pages (standard .NET)
for (int i = 0; i < images.Length; i++)
{
    images[i].Save($"output_page{i + 1}.png");
}
// Ghostscript GPL: 1-indexed pages
for (int pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
{
    Image img = rasterizer.GetPage(300, pageNumber);
}

// IronPDF: 0-indexed pages (standard .NET)
for (int i = 0; i < images.Length; i++)
{
    images[i].Save($"output_page{i + 1}.png");
}
Option Strict On



' Ghostscript GPL: 1-indexed pages
For pageNumber As Integer = 1 To rasterizer.PageCount
    Dim img As Image = rasterizer.GetPage(300, pageNumber)
Next

' IronPDF: 0-indexed pages (standard .NET)
For i As Integer = 0 To images.Length - 1
    images(i).Save($"output_page{i + 1}.png")
Next
$vbLabelText   $csharpLabel

AGPLライセンスに関する懸念を払拭

Ghostscript GPLのAGPLライセンスには、アプリケーションを配布する際にソースコードの公開を要求する"ウィルス性"の特性があります。 IronPDFの商用ライセンスにはそのような条件はありません。

外部バイナリは使用しないでください

IronPDFは完全に自己完結しています。 移行後、これらを削除してください:

  • gsdll32.dll および gsdll64.dll ファイル
  • サーバーからのGhostscript GPLインストール
  • PATH環境変数の設定
  • GhostscriptVersionInfo コード内の参照

ポストスクリプトファイル

IronPDFはポストスクリプト(.ps)ファイルを直接扱いません。 ワークフローで PostScript 処理が必要な場合は、次のいずれかを行ってください: 1.IronPDFで処理する前に別のツールでPostScriptをPDFに変換する。 2.ソースコンテンツをHTMLに変換し、IronPDFのHTMLレンダリングを使用する。


パフォーマンスの考慮事項

プロセス生成なし

Ghostscript GPL の操作は、関連するオーバーヘッドを伴う外部プロセスを生成します。 IronPDFは.NETプロセス内で動作します:

// Ghostscript GPL: Process spawning overhead
processor.Process(switches.ToArray());  // Creates new OS process

// IronPDF: In-process execution
var merged = PdfDocument.Merge(pdfs);  // Native .NET method call
// Ghostscript GPL: Process spawning overhead
processor.Process(switches.ToArray());  // Creates new OS process

// IronPDF: In-process execution
var merged = PdfDocument.Merge(pdfs);  // Native .NET method call
$vbLabelText   $csharpLabel

スレッドの安全性

IronPDFは設計上スレッドセーフです。 複数のスレッドは、同期を気にすることなく、ChromePdfRendererPdfDocument を同時に使用できます。


移行チェックリスト

移行前

  • コードベース内のすべてのGhostscript GPLの使用状況を一覧表示する
  • 現在使用されているコマンドラインスイッチを文書化する
  • PostScript処理を識別する(特別な処理が必要)
  • AGPLライセンスのコンプライアンスステータスを確認する
  • IronPDFライセンスキーを取得する
  • バージョン管理に移行ブランチを作成する

コードの移行

  • Ghostscript .NET NuGetパッケージを削除します: dotnet remove package Ghostscript.NET -IronPDFNuGetパッケージをインストールします: dotnet add package IronPdf
  • 外部のGhostscript GPLバイナリ依存関係を削除する
  • GhostscriptVersionInfo および DLL 参照を削除します
  • GhostscriptProcessor.Process() をIronPDFメソッドに変換する
  • GhostscriptRasterizerpdf.ToBitmap() に変換します
  • コマンドラインスイッチをAPI呼び出しに置き換える
  • エラー処理をstderr解析から例外に更新
  • 1から始まるページ番号を0から始まるページ番号に変換する

テスティング

  • PDFから画像への変換をテストする
  • PDF結合のテスト
  • テストページの抽出
  • 圧縮品質のテスト
  • パスワード保護をテストする
  • 出力品質が期待通りであることを確認する
  • パフォーマンスベンチマークのクリティカルパス

展開

  • サーバーからGhostscript GPLを削除する
  • PATH設定を削除する
  • デプロイメントから gsdll*.dll ファイルを削除します -Ghostscript GPLをインストールせずにアプリケーションが動作することを確認します

移行後

  • Ghostscript GPLライセンスを削除する(商用の場合)
  • ドキュメントの更新 -IronPDFAPI についてチームをトレーニングする
  • 問題がないか生産状況を監視

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

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

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

アイアンサポートチーム

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