IRONSOFTWAREHOME
ビデオ

How to Manage Logins and Authentication Using C#

Curtis Chau
Curtis Chau
Updated: 2026年5月18日

Adobe PDFライブラリSDK (APDFL)はAdobeのライセンスの下、Datalogicsによって配布され、Acrobatエンジンとソースコードを共有しています。強力ですが、販売主導の価格モデル、ネイティブランタイムフットプリント、組み込みのHTMLからPDFレンダラーの欠如、および低レベルのAPIデザインにより、多く for .NETチームが代替案を検討せざるを得ません。 このガイドは、Adobe PDFライブラリSDKからIronPDFへの段階的な移行パスを提供します—モダンな.NET PDFライブラリで、.NET Framework 4.6.2から.NET 9までをサポートします。

##Adobe PDF Library SDKからの移行を検討する理由は何ですか?

APDFLがAcrobat由来のPDFエンジンを提供する一方で、いくつかの要因からHTMLからPDF、ドキュメント操作、およびレポート生成の代替案を探索する開発チームもいます。

販売主導、オリジナル価格設定

DatalogicsはAPDFLの一覧価格を公開していません。 Datalogicsの価格ページによると、内部利用計画の開始は年間約$5,999〜で、OEM、ISV、およびSaaSデプロイメントはプラットフォームごとの料金プラスロイヤリティまたは収益シェアを交渉します。合計コストは通常、小から中規模のチームにとって手が届かないもので、ほぼ必ず販売の会話を必要とします。

複雑なネイティブ SDK の統合

APDFLは、Acrobatと系譜を共有するネイティブC/C++エンジンを包みます。 .NET バインディング (Datalogics.PDFL) にはプラットフォーム固有のランタイムバイナリが必要です - Adobe.PDF.Library.LM.NET NuGet パッケージは x64 Windows、Linux、macOS ARM ペイロードを提供します - メモリ管理に注意し、すべてのエントリポイントで明示的な Library ライフサイクルが必要です。 これにより開発オーバーヘッドが増し、CI/CDパイプラインを複雑にします。

組み込みHTMLレンダーなし

APDFLの文書化された変換リストはPDF/A、PDF/X、ZUGFeRD、EPS、PS、XPS、およびOffice形式を網羅していますが、HTMLは含まれていません。 APDFL単独でHTML文字列からPDFを生成するには、ページ、フォント、およびコンテンツランを手作業で作成する必要があるか、APDFLを別のHTMLレンダリングエンジンと組み合わせる必要があります。

低レベル API デザイン

APDFLでPDFを作成するには、プログラムによってページ、コンテンツストリーム、テキストラン、フォントを構築する必要があります。 HTML文字列のレンダリングのようなシンプルなタスクが、座標計算、フォントの埋め込み、手動コンテンツ要素管理を含む複数のステップ操作になります。

ライブラリのライフサイクル管理オーバーヘッド

すべてのエントリポイントは using (var lib = new Library()) (またはペアの Library.Initialize() / Library.Terminate() コール) にコードをラップし、中で作成されたすべてのPDFオブジェクトを慎重に破棄する必要があります。クリーンアップを逃すことでリソースリークが発生する可能性があります。

多くのプロジェクトにとって過剰

主にHTMLからPDFへの変換、基本的なドキュメント操作、またはレポート生成が必要なアプリケーションには、フルのAcrobat由来エンジンがしばしば必要以上です。

Adobe PDF Library SDKとIronPDFの比較:主な違い

これらのライブラリ間の基本的なアーキテクチャの違いを理解することは、効果的な移行戦略を計画するのに役立ちます。

アスペクトAdobe PDF Library SDKIronPDF
価格について販売主導; 内部利用から約$5,999/年、OEM/SaaSロイヤルティ上乗せ開発者毎のトランスペアレント / デプロイメント毎
インストールAdobe.PDF.Library.LM.NET はプラットフォームごとにネイティブ実行環境を提供しますシンプルなNuGetパッケージ
ドキュメント作成低レベルのページ/コンテンツ構築HTML/CSSレンダリング
HTMLからPDFへビルトインではないChromePdfRenderer.RenderHtmlAsPdf
初期化using (Library lib = new Library()) 必須自動翻訳
座標システムポストスクリプトポイント、左下原点CSSベースのレイアウト
フォントの扱い手動での埋め込みが必要自動翻訳
メモリ管理すべてのPDFオブジェクトの手動廃棄標準IDisposableパターン
非同期サポートについて不可完全なasync/awaitのサポート

移行前の準備

前提条件

移行を開始する前に、お使いの環境がこれらの要件を満たしていることを確認してください:

  • .NET Framework 4.6.2+または.NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+またはJetBrains Rider
  • NuGetパッケージマネージャへのアクセス
  • IronPDFライセンスキー (ironpdf.com にて無料トライアル可能)

アドビ PDF ライブラリ SDK の使用状況を監査する

ソ リ ュ ーシ ョ ンデ ィ レ ク ト リ 内で以下の コ マ ン ド を実行 し て、 すべてのAdobe PDF Library SDK参照を特定 し ます:

grep -r "using Datalogics" --include="*.cs" .
grep -r "Adobe.PDF.Library" --include="*.csproj" .
grep -r "Library.Initialize\|Library.Terminate" --include="*.cs" .
SHELL

予想される画期的な変更

カテゴリAdobe PDF Library SDKIronPDF移行作業
初期設定Library.Initialize() / Terminate()自動翻訳ライフサイクルコードの削除
ドキュメントの作成new Document() ページ構築とともにChromePdfRendererHTMLレンダリングを使用
座標系ポストスクリプトポイント、左下原点CSSベースのレイアウトHTML/CSSを使用
フォントの取り扱い手動での Font の作成と埋め込み自動翻訳フォントコードの削除
メモリ管理COM オブジェクトの手動廃棄標準IDisposableusing ステートメントを使用する
ページ構成CreatePage(), AddContent()HTMLからの自動翻訳大幅に簡素化

ステップごとの移行プロセス

ステップ 1: NuGet パッケージを更新する

Adobe PDF Library SDKパッケージを削除し、IronPDFをインストールしてください:

# Remove Adobe PDF Library (.NET 6/7/8 projects)
dotnet remove package Adobe.PDF.Library.LM.NET
# .NET Framework projects use the LM.NETFramework variant
dotnet remove package Adobe.PDF.Library.LM.NETFramework

# Install IronPDF
dotnet add package IronPdf
SHELL

ステップ 2: ライセンス キーの設定

AdobeのライセンスをIronPDFのコードベースのライセンスキーに置き換えてください:

// Replace Adobe's Library.LicenseKey withIronPDFlicense
// Add at application startup, before anyIronPDFoperations
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// Verify license status
bool isLicensed = IronPdf.License.IsLicensed;

ステップ 3: 名前空間参照の更新

ソリューション全体でグローバルな検索と置換を実行してください:

検索置換対象
using Datalogics.PDFL;using IronPdf;

APDFLは単一のルート名前空間、Datalogics.PDFL を公開します。 Font、そして Color は、その名前空間内のすべてのクラスですので、交換する using ディレクティブは1つだけです。

ステップ 4: ライブラリ ライフサイクル コードを削除する

最も重要な簡素化のひとつは、初期化パターンと終了パターンの削除です:

//Adobe PDF Library SDK- REMOVE THIS PATTERN
Library.Initialize();
try
{
    // PDF operations
}
finally
{
    Library.Terminate(); // Must always terminate
}

//IronPDF- Just use directly
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);

完全な API 移行のリファレンス

ライブラリのライフサイクルメソッド

アドビ方式IronPDF 同等物
Library.Initialize()不要
Library.Terminate()不要
Library.LicenseKey = "KEY"IronPdf.License.LicenseKey = "KEY"
using (Library lib = new Library())不要

ドキュメント作成方法

アドビ方式IronPDF メソッド
new Document()new ChromePdfRenderer()
new Document(path)PdfDocument.FromFile(path)
doc.CreatePage(index, rect)HTMLからの自動翻訳
doc.Save(SaveFlags.Full, path)pdf.SaveAs(path)
doc.NumPagespdf.PageCount
doc.GetPage(index)pdf.Pages[index]
doc.InsertPages(insertAfter, src, start, count, flags)PdfDocument.Merge(pdfs)

コンテンツ作成(大きなパラダイムシフト)

Adobe PDF Library SDKは、低レベルのコンテンツ構築を必要とします。 IronPDFはHTML/CSSを使用しています:

アドビ方式IronPDF メソッド
new Text()HTML <h1> などを使用する
text.AddRun(textRun)HTMLを使用
new TextRun(text, font, size, point)CSSスタイリング
new Font(name, flags)CSS font-family
new Image(path)HTML <img> タグ
content.AddElement(...)HTMLコンテンツ
page.UpdateContent()不要

電子透かしとセキュリティ手法

アドビ方式IronPDF メソッド
doc.Watermark(textParams, wmParams)pdf.ApplyWatermark(html)
WatermarkParams.Opacity (0.0-1.0)opacity パラメータ (0-100) または CSS opacity
new EncryptionHandler(user, owner, perms)pdf.SecuritySettings
PermissionFlags.PrintDocAllowUserPrinting

テキスト抽出

アドビ方式IronPDF メソッド
new WordFinder(doc, config)pdf.ExtractAllText()
wordFinder.GetWordList()pdf.Pages[i].Text
複雑な単語/文字の反復単一メソッド呼び出し

コード移行の例

HTMLからPDFへの変換

APDFLには組み込みのHTMLレンダーがありません。 最も類似しているのは、HTMLドキュメントが生成するレイアウトを模倣するためにページとコンテンツランを手作業で構築することです—またはAPDFLを別のHTMLからPDFエンジンと組み合わせることです。

アドビ PDF ライブラリ SDK の実装:

//Adobe PDF Library SDK(Datalogics APDFL)
// NuGet: Adobe.PDF.Library.LM.NET — namespace Datalogics.PDFL
using Datalogics.PDFL;
using System;

class AdobeHtmlToPdf
{
    static void Main()
    {
        using (Library lib = new Library())
        using (Document doc = new Document())
        {
            // US Letter in points (8.5 x 11 inches @ 72 DPI)
            Rect pageRect = new Rect(0, 0, 612, 792);
            using (Page page = doc.CreatePage(Document.BeforeFirstPage, pageRect))
            {
                Content content = page.Content;
                Font font = new Font("Helvetica", FontCreateFlags.Embedded);

                Text text = new Text();
                text.AddRun(new TextRun("Hello World", font, 24, new Point(72, 720)));
                content.AddElement(text);

                page.UpdateContent();
            }

            doc.Save(SaveFlags.Full, "output.pdf");
        }
    }
}
C#

IronPDFの実装:

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

class IronPdfHtmlToPdf
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        
        // Convert HTML to PDF with simple API
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}

IronPDFはライブラリライフサイクルラッパー、変換パラメータオブジェクト、明示的な廃棄を排除します。 ChromePdfRenderer は、ピクセル完璧なCSSとJavaScriptのサポートのために Chromium ベースのエンジンを使用します。 高度なシナリオについては、HTML to PDF documentationを参照してください。

複数のPDFをマージする

PDFマージは、APIの複雑さの違いを明確に示します。

アドビ PDF ライブラリ SDK の実装:

//Adobe PDF Library SDK(Datalogics APDFL)
using Datalogics.PDFL;
using System;

class AdobeMergePdfs
{
    static void Main()
    {
        using (Library lib = new Library())
        using (Document doc1 = new Document("document1.pdf"))
        using (Document doc2 = new Document("document2.pdf"))
        {
            // InsertPages(insertAfter, sourceDoc, sourceStartPage, pageCount, flags)
            doc1.InsertPages(
                Document.LastPage,
                doc2,
                0,
                Document.AllPages,
                PageInsertFlags.Bookmarks | PageInsertFlags.Threads);

            doc1.Save(SaveFlags.Full, "merged.pdf");
        }
    }
}
C#

IronPDFの実装:

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

class IronPdfMergePdfs
{
    static void Main()
    {
        // Load PDF documents
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        
        // Merge PDFs with simple method
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}

アドビのアプローチでは、挿入パラメータを使用してページごとに反復する必要があります。 IronPDFは、複数のドキュメントを受け入れる単一の Merge メソッドを提供します。

透かしの追加

透かしは、IronPDFがどのようにHTML/CSSを活用して柔軟なスタイリングを実現しているかを示しています。

アドビ PDF ライブラリ SDK の実装:

//Adobe PDF Library SDK(Datalogics APDFL)
using Datalogics.PDFL;
using System;

class AdobeAddWatermark
{
    static void Main()
    {
        using (Library lib = new Library())
        using (Document doc = new Document("input.pdf"))
        {
            WatermarkParams watermarkParams = new WatermarkParams();
            watermarkParams.Opacity = 0.5; // 0.0 - 1.0
            watermarkParams.Rotation = 45.0;
            watermarkParams.Scale = -1; // auto-fit

            WatermarkTextParams textParams = new WatermarkTextParams();
            textParams.Text = "CONFIDENTIAL";
            textParams.Color = new Color(0.8, 0.8, 0.8);
            textParams.TextAlign = HorizontalAlignment.Center;

            // Apply via Document.Watermark(textParams, wmParams)
            doc.Watermark(textParams, watermarkParams);

            doc.Save(SaveFlags.Full, "watermarked.pdf");
        }
    }
}
C#

IronPDFの実装:

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

class IronPdfAddWatermark
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");
        
        // Apply text watermark with simple API
        pdf.ApplyWatermark("<h1 style='color:red; opacity:0.5;'>CONFIDENTIAL</h1>",
            rotation: 45,
            verticalAlignment: VerticalAlignment.Middle,
            horizontalAlignment: HorizontalAlignment.Center);
        
        pdf.SaveAs("watermarked.pdf");
    }
}

IronPDFのHTMLベースの透かしは、CSSスタイリングによる完全なデザインコントロールを提供し、個別のパラメーターオブジェクトを必要としません。

パスワード保護と暗号化

アドビ PDF ライブラリ SDK の実装:

using Datalogics.PDFL;

public void ProtectPdf(string inputPath, string outputPath, string password)
{
    Library.Initialize();
    try
    {
        using (Document doc = new Document(inputPath))
        {
            PermissionFlags permissions =
                PermissionFlags.PrintDoc |
                PermissionFlags.PrintFidelity;

            EncryptionHandler encHandler = new EncryptionHandler(
                password,      // User password
                password,      // Owner password
                permissions,
                EncryptionMethod.AES256);

            doc.SetEncryptionHandler(encHandler);
            doc.Save(SaveFlags.Full | SaveFlags.Encrypted, outputPath);
        }
    }
    finally
    {
        Library.Terminate();
    }
}

IronPDFの実装:

using IronPdf;

public void ProtectPdf(string inputPath, string outputPath, string password)
{
    using var pdf = PdfDocument.FromFile(inputPath);

    pdf.SecuritySettings.UserPassword = password;
    pdf.SecuritySettings.OwnerPassword = password;
    pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
    pdf.SecuritySettings.AllowUserCopyPasteContent = false;
    pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit;

    pdf.SaveAs(outputPath);
}

IronPDFはビット単位のパーミッションフラグや暗号化ハンドラオブジェクトの代わりに、強く型付けされたプロパティを使用します。

テキスト抽出

アドビ PDF ライブラリ SDK の実装:

using Datalogics.PDFL;

public string ExtractText(string pdfPath)
{
    string extractedText = "";

    Library.Initialize();
    try
    {
        using (Document doc = new Document(pdfPath))
        {
            WordFinderConfig config = new WordFinderConfig();
            config.IgnoreCharGaps = true;

            for (int i = 0; i < doc.NumPages; i++)
            {
                using (WordFinder wordFinder = new WordFinder(doc, i, config))
                {
                    IList<Word> words = wordFinder.GetWordList();
                    foreach (Word word in words)
                    {
                        extractedText += word.Text + " ";
                    }
                    extractedText += "\n";
                }
            }
        }
    }
    finally
    {
        Library.Terminate();
    }

    return extractedText;
}

IronPDFの実装:

using IronPdf;

public string ExtractText(string pdfPath)
{
    using var pdf = PdfDocument.FromFile(pdfPath);
    return pdf.ExtractAllText();
}

Adobeの単語ごとの繰り返しは、IronPDFでは単一のメソッド呼び出しになります。

ヘッダーとフッター

アドビ PDF ライブラリ SDK の実装:

using Datalogics.PDFL;

public void AddHeaderFooter(string inputPath, string outputPath)
{
    Library.Initialize();
    try
    {
        using (Document doc = new Document(inputPath))
        {
            Font font = new Font("Helvetica", FontCreateFlags.None);

            for (int i = 0; i < doc.NumPages; i++)
            {
                using (Page page = doc.GetPage(i))
                {
                    Content content = page.Content;

                    // Add header
                    Text header = new Text();
                    header.AddRun(new TextRun("Document Header",
                        font, 10, new Point(72, page.MediaBox.Top - 36)));
                    content.AddElement(header);

                    // Add footer with page number
                    Text footer = new Text();
                    footer.AddRun(new TextRun($"Page {i + 1} of {doc.NumPages}",
                        font, 10, new Point(72, 36)));
                    content.AddElement(footer);

                    page.UpdateContent();
                }
            }
            doc.Save(SaveFlags.Full, outputPath);
        }
    }
    finally
    {
        Library.Terminate();
    }
}

IronPDFの実装:

using IronPdf;

public void CreatePdfWithHeaderFooter(string html, string outputPath)
{
    var renderer = new ChromePdfRenderer();

    renderer.RenderingOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Document Header",
        FontSize = 10,
        FontFamily = "Helvetica"
    };

    renderer.RenderingOptions.TextFooter = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        FontSize = 10,
        FontFamily = "Helvetica"
    };

    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs(outputPath);
}

IronPDFはページの繰り返しを自動で処理し、{page}{total-pages} のようなプレースホルダトークンをサポートします。 より高度なレイアウトについては、headers and footers documentationを参照してください。

URLからPDFへの変換

Adobe PDF Library SDKには、URLレンダリング機能が組み込まれていません。 IronPDFはネイティブサポートを提供します:

using IronPdf;

public void ConvertUrlToPdf(string url, string outputPath)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderUrlAsPdf(url);
    pdf.SaveAs(outputPath);
}

完全なURL変換オプションについては、URL to PDF documentationを参照してください。

.NETコアの統合

Adobe PDF Library SDKの静的初期化パターンでは、依存性注入との摩擦が生じます。 IronPDFは最新 for .NETアーキテクチャに自然に統合されます。

Adobeパターン(DIの問題点):

public class AdobePdfService
{
    public byte[] Generate(string content)
    {
        Library.Initialize();
        try
        {
            //複雑な文書construction...
            return bytes;
        }
        finally
        {
            Library.Terminate();
        }
    }
}

IronPDFパターン(DIフレンドリー):

public interface IPdfService
{
    Task<byte[]> GeneratePdfAsync(string html);
}

public class IronPdfService : IPdfService
{
    private readonly ChromePdfRenderer _renderer;

    public IronPdfService()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    }

    public async Task<byte[]> GeneratePdfAsync(string html)
    {
        using var pdf = await _renderer.RenderHtmlAsPdfAsync(html);
        return pdf.BinaryData;
    }
}

// Register in Program.cs (.NET 6+):
builder.Services.AddSingleton<IPdfService, IronPdfService>();

非同期サポート

Adobe PDF Library SDK は非同期操作をサポートしていません。 IronPDFはスケーラブルなWebアプリケーションに不可欠な完全な非同期/待機機能を提供します:

public async Task<IActionResult> GenerateReport()
{
    var renderer = new ChromePdfRenderer();
    using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return File(pdf.BinaryData, "application/pdf");
}

パフォーマンスの最適化

メモリ使用量の比較

シナリオAdobe PDF Library SDKIronPDF
シンプルなPDF~100 MB~50 MB
複雑な文書~200 MB~80 MB
バッチ(100 PDF)高(ネイティブメモリ)~100 MB

最適化のヒント

再利用レンダラーインスタンス

// Good: Reuse renderer for batch operations
var renderer = new ChromePdfRenderer();
foreach (var html in htmlList)
{
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}

Webアプリケーションで非同期を使用する:

public async Task<IActionResult> GenerateReport()
{
    var renderer = new ChromePdfRenderer();
    using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return File(pdf.BinaryData, "application/pdf");
}

よくある移行の問題のトラブルシューティング

問題座標ベースのポジショニングが機能しない

AdobeはPostScriptの点座標を使用しています。 IronPDFはCSSポジショニングを使用しています:

// Adobe: Point-based
new TextRun("Hello", font, 12, new Point(100, 700));

// IronPDF: CSS-based
string html = "<p style='position:absolute; left:100px; top:92px;'>Hello</p>";

課題ページサイズの違い

アドビはポストスクリプトポイントを使用しています。 IronPDFは列挙型またはカスタムディメンションを使用します:

// Adobe: Points
Rect(0, 0, 612, 792) // Letter

// IronPDF: Enum or custom
renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
// Or custom:
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

問題です:フォントが見つかりません

Adobeでは、フォントの埋め込みを手動で行う必要があります。 IronPDFは自動的にフォントを処理します:

// IronPDF: Use web fonts if needed
string html = @"
<style>
    @import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
    body { font-family: 'Roboto', sans-serif; }
</style>";

問題です:SaveFlags が使用できません

Adobeは、セーブフラグの組み合わせを使用します。 IronPDFは直接保存を使用します:

// Adobe
doc.Save(SaveFlags.Full | SaveFlags.Incremental, path);

//IronPDF- full save is default
pdf.SaveAs(path);

移行後のチェックリスト

コードの移行が完了したら、以下を確認してください:

  • 既存のユニットテストと統合テストをすべて実行する
  • PDF出力を以前のバージョンと視覚的に比較する
  • ステージング環境ですべてのPDFワークフローをテストする
  • ライセンスが正しく機能していることを確認する (IronPdf.License.IsLicensed)
  • 以前の実装と比較したパフォーマンスベンチマーク
  • Adob​​eライセンス設定を削除する
  • CI/CDパイプラインの依存関係を更新する
  • プロジェクトからすべてのAdobe PDFライブラリDLLを削除します
  • 開発チーム向けに新しいパターンを文書化する

その他のリソース


APDFLからIronPDFへの移行は、特にHTMLからPDFまたはドキュメント操作を主とするチームの場合、通常 for .NET PDF生成コードベースを簡素化することができます。 低レベルのページ構築からHTML/CSSレンダリングへの移行により、ほとんどの座標計算、フォント管理、およびLibrary ライフサイクル処理コードが削除されます。また、IronPDFの透明な開発者ごとのライセンスは、APDFLの営業主導、OEM/SaaSロイヤリティモデルよりも通常は予算が立てやすいです。

ご注意: Adobe、Acrobat、およびAdobe PDFライブラリはAdobe Inc.の登録商標です。APDFLはAdobeのライセンスの下、Datalogics, Inc.によって配布されます。 このサイトは、Adobe Inc.またはDatalogics, Inc.と提携しておらず、承認されておらず、スポンサーされていません。すべての製品名、ロゴ、およびブランドはそれぞれの所有者の財産です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。