在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
便携式文件格式 (PDF) PDF 是最流行的文档格式,可在单个文档中表示文本、链接、按钮、图形等。如果不使用 C# 的 PDF API,在 C# 编程语言中操作 PDF 几乎是不可能的。在本文中,我们将探讨如何使用两种不同的 API 与 PDF 文档进行交互和操作,并对这两种 API 的性能、功能和许可进行比较。
本文将讨论的 PDF API 包括
IronPDF 是一款功能强大的 HTML 到 PDF 转换 API。IronPDF 是在 .NET 和 .NET Core 开发中转换 HTML 网站的理想解决方案。它不仅能转换 HTML,还具有多种附加功能。IronPDF 允许开发人员在 .NET Core 和 .NET Framework 项目中创建、更改和检索 PDF 文档。使用 IronPDF 软件包,开发人员可以轻松地从 HTML 页面生成或更改 PDF。
PDF 可以轻松编辑、盖章、添加页眉和页脚。它还能让阅读 PDF 文本和提取图片变得异常简单。IronPDF 使用 .NET Chromium 引擎将 HTML 页面渲染为 PDF 文件。
该功能包括从 HTML、HTML 字符串、MVC 视图、Web 表单和 URL 等不同格式创建 PDF。
它允许用户从 PDF 创建图像和从图像创建 PDF。它包括图像提取、支持不同的图像扩展名和 PDF 打印。
IronPDF 还提供 128 位加密、密码锁定和数字签名功能。
IronPDF 的这一功能提供所有类型的 PDF 格式化,如添加水印、添加页面、删除页面、添加背景、添加前景等。简而言之,IronPDF 提供了处理 PDF 所需的所有功能。
在许多情况下,您可以直接提取 PDF 中的嵌入文本。如果这不起作用,那么你的文本很可能是嵌入在图像中的。使用 IronOCR 库扫描文档以获取可视文本,而不是纯文本。
创建 PDF 时可以添加页眉和页脚,也可以添加到现有的 PDF 中。打印选项属性允许您为每个文档页面制作页眉和页脚。访问 Chrome PDF 渲染器对象上的这些选项。本示例在 .NET Core 控制台应用程序中运行。
IronPDF 支持几乎所有与 C# 兼容的操作系统和框架,包括以下系统:
PDFShift 是一款 HTML 到 PDF 转换 API 工具,可帮助企业在几秒钟内将 HTML 页面转换为 PDF。并行转换、异步查询、原始 HTML 支持和其他功能均可通过基于云服务器的 API 工具实现。PDFShift 是一个简单易用的解决方案,支持包括 Ruby、Python、JavaScript、Node 和 PHP 在内的多种开发人员语言,使转换过程更加轻松。
PDFShift 允许客户建立自定义页眉和页脚、应用自定义 CSS、加密文件等,从而使企业能够完全控制转换过程。
PDFShift 支持并行转换,允许用户一次转换多个文档,以提高转换速度。
创建带有页码的自定义页眉和页脚、使用自定义 CSS 和 JavaScript、加密文档等。
PDFShift 支持原始 HTML 到 PDF 的转换,无需公开页面。
PDFShift 可在数秒内将 HTML 转换为高保真 PDF 文档。
使用我们先进的实时系统,可在转换完成时收到提示。使用功能强大的 PDFShift API 将 HTML 转换为 PDF,只需三行代码即可集成系统。
打开 Visual Studio 软件,进入文件菜单。选择 "新建项目",然后选择控制台应用程序。在本文中,我们将使用控制台应用程序生成 PDF 文档。
在相应的文本框中输入项目名称并选择路径。然后点击创建按钮。选择所需的 .NET 框架,如下图所示:
Visual Studio 项目现在将为所选应用程序生成结构,如果您选择了控制台、Windows 和 Web 应用程序,它将打开 program.cs 文件,您可以在其中输入代码并构建/运行应用程序。
现在我们可以添加库并测试程序了。
IronPDF 库可以通过四种不同方式下载和安装。它们是
Visual Studio 软件提供了 NuGet 包管理器选项,可直接将软件包安装到解决方案中。下面的截图显示了如何打开 NuGet 包管理器。
它提供了一个搜索框,显示 NuGet 网站上可用的软件包库列表。在软件包管理器中,我们需要搜索关键字 "IronPDF",如下截图所示
在上图中,我们可以看到搜索到的相关软件包列表。我们需要选择 IronPDF 选项,并将该软件包安装到我们的解决方案中。
在 Visual Studio 菜单中,转到工具 > NuGet 包管理器 > 包管理器控制台
在软件包管理器控制台选项卡中输入以下一行:
Install-Package IronPdf
现在,软件包将下载/安装到当前项目,并可随时使用。
第三种方法是直接从网页下载 NuGet 软件包。
点击 链接 这里直接从网页下载最新软件包。下载完成后,请按照以下步骤将软件包添加到项目中。
PDFShift 无法集成到项目中,而是远程运行。你需要使用 C# RestClient 软件包向 PDFShift 的 API 提交 POST 请求,只需将你的 API 密钥作为简单身份验证的用户参数即可。服务器会接收你的请求,对其进行处理,并返回所有输出文件,PDF 转换 API 的工作是通过 HTTP post 请求完成的。PDFShift 提供多种语言的 API,并可对所有语言进行远程操作。
这两种工具都包含 HTML 转换功能,只是转换方式略有不同。
在 C# 中使用 URL 创建 PDF 文件与上述示例一样简单,只需三行代码即可。以下代码将演示如何通过 URL 创建 PDF 文件。
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
Imports IronPdf
Private Renderer = New IronPdf.ChromePdfRenderer()
' Create a PDF from a URL or local file path
Private pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20")
' Export to a file or Stream
pdf.SaveAs("url.pdf")
以下是上述代码的输出结果。
使用 IronPDF C# .NET 库将 HTML 转换为 PDF 非常简单。
var pdf = new ChromePdfRenderer();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
mypdf.SaveAs("FirstPDFDocument.pdf");
var pdf = new ChromePdfRenderer();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
mypdf.SaveAs("FirstPDFDocument.pdf");
Dim pdf = New ChromePdfRenderer()
Dim doc As PdfDocument = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>")
mypdf.SaveAs("FirstPDFDocument.pdf")
使用 PDFShift 转换 URL 非常简单。你只需发送一个 POST 请求,将源参数设置为 URL,如下所示:
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://www.example.com"
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://www.example.com"
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
Imports System
Imports RestSharp
Imports Newtonsoft.Json
Imports System.IO
Imports RestSharp.Authenticators
Imports RestSharp.Serialization
Imports System.Net.Mail
Imports System.Net
Imports System.Collections.Generic
Imports Newtonsoft.Json.Linq
Namespace PDFShiftExample
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim client As IRestClient = New RestClient("https://api.pdfshift.io/v3/convert/pdf")
client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")
Dim request As IRestRequest = New RestRequest(Method.POST)
Dim json = New With {Key .source = "https://www.example.com"}
request.AddJsonBody(json)
Dim response As IRestResponse = client.Execute(request)
If Not response.IsSuccessful Then
' Check why status is not int 2xx.
Else
File.WriteAllBytes("result.pdf", response.RawBytes)
End If
End Sub
End Class
End Namespace
PDFShift 也提供 HTML 到 PDF 的直接转换,但是从 HTML 文件读取 HTML 内容。
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
string documentContent = File.ReadAllText("document.html");
var json = new
{
source = documentContent
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
string documentContent = File.ReadAllText("document.html");
var json = new
{
source = documentContent
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
Namespace PDFShiftExample
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim client As IRestClient = New RestClient("https://api.pdfshift.io/v3/convert/pdf")
client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")
Dim request As IRestRequest = New RestRequest(Method.POST)
Dim documentContent As String = File.ReadAllText("document.html")
Dim json = New With {Key .source = documentContent}
request.AddJsonBody(json)
Dim response As IRestResponse = client.Execute(request)
If Not response.IsSuccessful Then
' Check why status is not int 2xx.
Else
File.WriteAllBytes("result.pdf", response.RawBytes)
End If
End Sub
End Class
End Namespace
为 PDF 添加页眉和页脚是处理 PDF 时必须具备的功能。我们讨论的这两种工具都支持这一选项。
使用 IronPDF,您可以通过两种不同的方式添加页眉和页脚。
TextHeaderFooter允许添加基于文本的页眉,并可选择合并动态数据。
HtmlHeaderFooter允许开发人员将 HTML 页眉和页脚呈现到 PDF 文件中,也允许动态数据模板化。它更加灵活,但较难使用。
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a coverpage will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a coverpage will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
Imports IronPdf
Private Renderer = New IronPdf.ChromePdfRenderer()
Renderer.RenderingOptions.FirstPageNumber = 1 ' use 2 if a coverpage will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = True
Renderer.RenderingOptions.TextHeader.CenterText = "{url}"
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica
Renderer.RenderingOptions.TextHeader.FontSize = 12
您可以通过添加自定义页眉或页脚来定制生成的文档。这些页眉或页脚常用来标识当前页面或在每一页上显示贵公司的徽标。
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://quillbot.com/",
footer = new { source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>", spacing = "50px" }
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://quillbot.com/",
footer = new { source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>", spacing = "50px" }
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
Imports System
Imports RestSharp
Imports Newtonsoft.Json
Imports System.IO
Imports RestSharp.Authenticators
Imports RestSharp.Serialization
Imports System.Net.Mail
Imports System.Net
Imports System.Collections.Generic
Imports Newtonsoft.Json.Linq
Namespace PDFShiftExample
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim client As IRestClient = New RestClient("https://api.pdfshift.io/v3/convert/pdf")
client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")
Dim request As IRestRequest = New RestRequest(Method.POST)
Dim json = New With {
Key .source = "https://quillbot.com/",
Key .footer = New With {
Key .source = "<div style=""font-size: 12px"">Page {{page}} of {{total}}</div>",
Key .spacing = "50px"
}
}
request.AddJsonBody(json)
Dim response As IRestResponse = client.Execute(request)
If Not response.IsSuccessful Then
' Check why status is not int 2xx.
Else
File.WriteAllBytes("result.pdf", response.RawBytes)
End If
End Sub
End Class
End Namespace
使用编程语言给 PDF 文件加水印是一项相当困难的任务。IronPDF 和 PDFShift 都支持为 PDF 文件添加水印。
IronPDF 提供了用 HTML 给 PDF 文档添加 "水印 "的方法。水印可设置在现有内容的上方或下方,并具有内置的不透明度、旋转和超链接功能。
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", IronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, -45, "https://www.nuget.org/packages/IronPdf");
Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", IronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, -45, "https://www.nuget.org/packages/IronPdf");
Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf
Private Renderer = New IronPdf.ChromePdfRenderer()
Private Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", IronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, -45, "https://www.nuget.org/packages/IronPdf")
Pdf.SaveAs("C:\Path\To\Watermarked.pdf")
用户需要在 PDF 上清晰识别水印。
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://www.example.com",
watermark = new { image = "https://pdfshift-dev.netlify.com/images/logo/logo-violet.png", offset_x = 50, offset_y = "100px", rotate = 45 }
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://www.example.com",
watermark = new { image = "https://pdfshift-dev.netlify.com/images/logo/logo-violet.png", offset_x = 50, offset_y = "100px", rotate = 45 }
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
Imports System
Imports RestSharp
Imports Newtonsoft.Json
Imports System.IO
Imports RestSharp.Authenticators
Imports RestSharp.Serialization
Imports System.Net.Mail
Imports System.Net
Imports System.Collections.Generic
Imports Newtonsoft.Json.Linq
Namespace PDFShiftExample
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim client As IRestClient = New RestClient("https://api.pdfshift.io/v3/convert/pdf")
client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")
Dim request As IRestRequest = New RestRequest(Method.POST)
Dim json = New With {
Key .source = "https://www.example.com",
Key .watermark = New With {
Key .image = "https://pdfshift-dev.netlify.com/images/logo/logo-violet.png",
Key .offset_x = 50,
Key .offset_y = "100px",
Key .rotate = 45
}
}
request.AddJsonBody(json)
Dim response As IRestResponse = client.Execute(request)
If Not response.IsSuccessful Then
' Check why status is not int 2xx.
Else
File.WriteAllBytes("result.pdf", response.RawBytes)
End If
End Sub
End Class
End Namespace
IronPDF 是一个提供免费开发者许可证的库。IronPDF 还提供特殊的价格结构:轻量级软件包的起价为 $749,没有任何隐藏费用。您也可以重新发布 SaaS 和 OEM 产品。所有许可证均包括 30 天退款保证、一年的软件支持和升级、开发/测试/分期/生产有效性以及永久许可证。 (一次性购买).IronPDF 许可证可根据用户需求提供最高性能。请访问此链接查看 IronPDF 的整个定价结构和许可证。
PDFShift PDF 转换 API 按月和按年提供五种不同的许可套餐。购买各种套餐时使用 "积分 "系统,详情如下:
免费套餐 (每月 50 个学分)
启动 (每月 500 个信用点,收费 9 美元;每年 6,000 个信用点,收费 99 美元)
增强 (每月 2 500 个信用点,收费 24 美元;每年 30 000 个信用点,收费 240 美元)
增长 (每月 5,000 个信用点,收费 39 美元;每年 60,000 个信用点,收费 390 美元)
文件大小也有限制:免费软件包的限制为每个文件 1MB,而其他软件包的限制为每个文件 5MB。
欲了解更多信息和价格,请访问以下网站 链接.
IronPDF 是一款面向独立开发者的免费应用程序,它提供多种功能,能够修改 PDF 文件并将其转换为其他格式。IronPDF 为 PDF 处理提供了最好的编辑和格式化工具。它能将 HTML 转换为 PDF 的结果转换为适合高质量商业印刷的矢量文件。因此,您将获得清晰、高质量的 PDF 文件。该网页包含许可和定价信息。
PDFShift 是一款高质量、高保真且功能强大的 HTML 到 PDF 转换 API。它提供了一个简单易学的端点,带有一系列工具和一套完整的功能,以及一个适用于多种语言的软件包。PDFShift 使用 postMessage 向服务器发送请求,可以处理文档的并行转换--这意味着你可以同时转换多个文档。
IronPDF 的许可证是基于开发人员的,这意味着你应该根据使用该产品的开发人员数量来购买许可证。而 PDFShift 许可证则以月度和年度积分为基础,这意味着您将根据订购的套餐每月获得特定的积分。IronPDF 支持 OME 和 SaaS 分发,而 PDFShift 不支持。IronPDF 许可证是一次性购买的,您可以终身使用,而 PDFShift 提供按月和按年的许可证。
经过对这两种工具的快速比较,我们可以得出结论:IronPDF 库提供的功能远远多于 PDFShift。PDFShift 只提供了少量操作 PDF 的功能。IronPDF 只需三行代码就能将 URL 转换为 PDF,而 PDFShift 则需要更多行代码才能完成同样的任务。集成 IronPDF 非常简单,只需几分钟即可完成。PDFShift 在基于云的系统中工作,不需要集成;但是,它确实依赖于其他 API,如 Rest Sharp,因此,事实上,这是一个复杂的过程。
此外,Iron Software 目前还提供五种工具的套餐,而价格仅为两种。Iron Suite 包含的工具有
请访问此链接探索 铁匠套房.