在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
PDF,或称便携文档格式(Portable Document Format),是由Adobe开发的文件格式,旨在实现文档的便捷交换。它确保文档在任何设备上都具有相同的外观,保留格式、字体和图像。PDF文件安全、互动且紧凑,使其在共享时保持内容完整。
C# PDF库 对于处理PDF文件的开发人员至关重要。这些工具有助于创建、修改和提取PDF中的内容。它们支持表单处理和数字签名等功能,并且跨不同平台工作,提高了PDF处理的效率。使用C# PDF库,开发人员可以为其应用程序添加PDF功能,从而更轻松地通过编程方式创建、编辑和管理PDF文档。
在本文中,我们将比较两种与PDF交互的不同方法: IronPDF C# 库 和 Craftmypdf API我们将查看它们的功能和用法,提供代码示例,并讨论它们的许可证。
CraftMyPDF 是一个多功能的API,设计用于创建PDF文档。它提供了一个基于网络的拖放编辑器,允许您在浏览器中直接设计PDF模板。此功能对于从可重用模板和JSON数据创建像素完美的PDF特别有用。编辑器包含丰富的布局组件,支持强大的表达式、高级格式和数据绑定,使其成为满足各种PDF生成需求的强大工具。
拖放编辑器: CraftMyPDF直观的拖放编辑器简化了PDF模板的创建。您可以无需任何编码知识设计模板,使其对各个技能水平的用户都可以使用。该编辑器允许您添加各种元素如文本、图像和形状,并自定义它们的布局和外观。
模板复用性: 该平台支持可重复使用的模板,这可以节省大量时间。模板设计完成后,可以反复使用不同的数据集,非常适合生成发票、报告和证书等文档。您可以使用PDF模板编辑器进行编辑。
JSON数据集成: CraftMyPDF允许与JSON数据无缝集成。这意味着您可以将动态数据导入模板生成定制的PDF文档。此功能对于需要生成包含可变内容的文档(如个性化发票或详细报告)的应用程序尤其有用。
高级格式设置和表达式: API支持高级格式设置选项和表达式,使您能够创建复杂的文档。您可以根据规格格式化日期、数字和货币,并使用表达式根据数据动态生成内容。
API集成: CraftMyPDF可以使用其REST API与各种平台集成。它支持与如Zapier等无代码平台集成。 Make.com以及定制应用程序。这种灵活性使开发人员能够将PDF生成功能整合到他们的工作流程中,并自动化文档创建过程。
可填写组件: 该平台还支持可填写的PDF组件,如文本框、复选框和下拉菜单。这个功能对创建用户可以电子完成的交互式表单至关重要。
IronPDF 是一款针对.NET开发者设计的强大而多功能的PDF库,提供广泛的生成、编辑和管理PDF文档的能力。IronPDF用C#编写,它通过允许开发者从HTML、CSS、JavaScript和图像格式生成像素完美的PDF文档,简化了处理PDF的过程。由于与.NET的集成,它成为任何需要PDF功能的应用的强大工具,从简单的文件生成到复杂的文档操作。
HTML转PDF IronPDF擅长于 将 HTML、CSS 和 JavaScript 直接转换为 PDF 文档. 这包括支持HTML5和CSS3,确保您的网页内容在生成的PDF中按预期显示。转换过程保持像素级的准确性,非常适合网页到打印应用程序。
URL转PDF 您可以 从任何 URL 生成 PDF1. 允许轻松将网页保存为PDF文件。此功能对于存档网页内容或从在线数据生成报告非常有用。
图像到PDF IronPDF 支持将各种图像格式(包括 JPG、PNG、GIF、BMP 和 SVG)转换为 PDF 文档。此功能适用于创建照片书、图像库或将视觉内容集成到您的PDF中。
表单填充和数据提取 库允许创建和 以编程方式填写PDF表单此外,您可以从现有表格中提取数据,实现无缝数据处理和与其他系统的集成。
数字签名和安全性 IronPDF 提供强大的安全特性,包括添加 数字签名, 设置密码和定义用户权限。这确保您的PDF文件安全并符合行业标准。
PDF编辑 您可以通过添加、复制或删除页面来编辑现有的PDF文件。您可以通过导入现有的PDF文件来实现这一点。IronPDF还允许合并和拆分PDF,使其成为文档管理的综合工具。
注释与附件 IronPDF支持 添加注释 例如粘贴便签和在PDF文档中嵌入附件。此功能对于协作文档审查和添加补充信息非常有用。
页眉、页脚和水印 该库允许在您的PDF文档中添加自定义页眉、页脚和水印。这些元素可以从HTML生成,提供在设计和内容管理方面的灵活性。
跨平台兼容性 IronPDF在各种平台上无缝运行,包括Windows、macOS、Linux、Docker、Azure和AWS。它支持.NET Core、.NET Standard和.NET Framework,确保了广泛的兼容性和在不同环境中的易于部署。
性能优化 通过完整的多线程和异步支持,IronPDF优化了批处理和大批量PDF生成任务的性能。这确保了资源的高效使用和更快的文档处理速度。
全面的文档和支持 IronPDF带有丰富的文档、教程和示例,使开发人员能够轻松上手。该库还提供24/5技术支持,帮助用户及时解决问题。
IronPDF旨在提高生产力并简化.NET应用程序中的PDF管理。其丰富的功能集,与易用性和全面的支持相结合,使其成为开发人员的无价工具。
在Visual Studio中创建C#控制台应用程序涉及几个步骤。以下是帮助您设置和启动项目的详细指南。
首先,确保您的计算机上已安装 Visual Studio。通过在开始菜单中搜索或点击桌面图标来打开 Visual Studio。
打开 Visual Studio 后,按照以下步骤创建一个新项目:
在开始页面上点击“创建一个新项目”。
从搜索结果或列表中,选择 "Console App" (.NET Core) 或 控制台应用程序 (.NET框架)“**,根据您的偏好或项目要求。”
选择控制台应用程序模板后,您需要配置您的新项目:
项目名称: 输入您的项目名称。这将是保存项目文件的文件夹名称。
位置: 选择要保存项目的文件夹。
解决方案名称: 这通常与您的项目名称相同,但如果您计划在一个解决方案中包含多个项目,可以更改此名称。
要开始使用IronPDF,您有三种主要的安装方法:使用NuGet包管理器、NuGet包管理器控制台和从NuGet网站下载。
首先,让我们谈谈 NuGet 包管理器。如果你使用的是 Visual Studio,这个方法非常简单且用户友好。打开你的项目,然后右键单击解决方案资源管理器中的“引用”或“依赖项”节点。从上下文菜单中选择“管理 NuGet 包”。
在 NuGet 包管理器中,确保选择了“浏览”选项卡,然后在搜索框中输入“IronPDF”。一旦找到 IronPDF 包,点击“安装”。此操作将把 IronPDF 库添加到你的项目中并配置好以供使用。
接下来,NuGet 包管理器控制台提供了另一种方便的安装 IronPDF 的方法。要访问此控制台,请在 Visual Studio 中点击“工具”菜单,选择“NuGet 包管理器”,然后选择“包管理器控制台。”在控制台窗口中输入以下命令:
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
然后按 Enter 键。此命令将直接将 IronPDF 软件包下载并安装到您的项目中。对于那些喜欢在 Visual Studio 环境中使用命令行工具的人来说,这种方法很有效。
最后,您可以直接从下载 IronPDF 包 NuGet 网站这种方法特别适用于您需要手动管理包版本或在直接管理包受到限制的环境中工作时。访问NuGet网站并搜索“IronPDF”。下载包文件 (通常是 .nupkg 文件)一旦下载完毕,在Visual Studio中打开您的项目,右键点击“References”或“Dependencies”,然后选择“Manage NuGet Packages”。点击“Settings”图标,然后选择“Add”来指定您下载的包路径。添加包源后,返回到“Browse”选项卡,选择您的新源,并从那里安装IronPDF。
要在您的 C# 程序中使用 CraftMyPDF,您首先需要创建一个账户,选择 API 的免费计划,然后将其集成到您的应用中。以下是入门的方法:
注册 访问 CraftMyPDF 网站 并注册一个免费账户。输入所需信息以创建您的账户。
确保你有 System.Net.Http, RestShart, 和 Newtonsoft JSON 命名空间可用,因为它们对于向 CraftMyPDF API 发出 HTTP 请求是必不可少的。
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
IRON VB CONVERTER ERROR developers@ironsoftware.com
之后,我们将调用CraftmyPdf API。
var client = new RestClient("https://api.craftmypdf.com/v1/create");
var request = new RestRequest("https://api.craftmypdf.com/v1/create",Method.Post);
string apiKey = "API Key"; // Replace with your actual API key
string templateId = "Template ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
var client = new RestClient("https://api.craftmypdf.com/v1/create");
var request = new RestRequest("https://api.craftmypdf.com/v1/create",Method.Post);
string apiKey = "API Key"; // Replace with your actual API key
string templateId = "Template ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
IRON VB CONVERTER ERROR developers@ironsoftware.com
通过编程方式创建 PDF,可以自动生成报告、发票和证书等文档。IronPDF 提供了几种在 C# 中创建 PDF 的方法,包括将 HTML 字符串、URL 和 HTML 文件转换为 PDF 文档。我们将在后面的章节中详细讨论这些方法。
将 HTML 转换为 PDF 是最常见的用例之一。它允许您使用 HTML 和 CSS 设计文档,然后将其转换为 PDF。这种方法非常灵活,因为它支持现代的 Web 标准,并确保生成的 PDF 完全按设计显示。以下是使用 IronPDF 将 HTML 字符串转换为 PDF 文档的基本示例:
using IronPdf;
public class PDFCreator
{
public void CreatePdfFromHtml()
var renderer = new ChromePdfRenderer();
// Define your HTML string
string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>";
// Render the HTML as a PDF document
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF document
pdfDocument.SaveAs("html_output.pdf");
}
}
using IronPdf;
public class PDFCreator
{
public void CreatePdfFromHtml()
var renderer = new ChromePdfRenderer();
// Define your HTML string
string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>";
// Render the HTML as a PDF document
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF document
pdfDocument.SaveAs("html_output.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
在此示例中,ChromePdfRenderer 将提供的 HTML 字符串转换为 PDF。渲染的 PDF 随后会被保存到文件系统中。
IronPDF 的另一个强大功能是能够直接从 URL 将网页转换为 PDF 文档。这在存档网页或从动态网页内容生成 PDF 时特别有用。以下是如何将 URL 转换为 PDF 文档的示例:
using IronPdf;
public class PDFCreator
{
public void CreatePdfFromUrl(string url)
{
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Render the URL as a PDF document
var pdfDocument = renderer.RenderUrlAsPdf(url);
// Save the PDF document
pdfDocument.SaveAs("url_output.pdf");
}
}
using IronPdf;
public class PDFCreator
{
public void CreatePdfFromUrl(string url)
{
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Render the URL as a PDF document
var pdfDocument = renderer.RenderUrlAsPdf(url);
// Save the PDF document
pdfDocument.SaveAs("url_output.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
此方法接受一个URL作为输入,将网页渲染成PDF,并保存生成的文档。它处理所有网页内容,包括HTML、CSS、JavaScript和图像,确保PDF准确反映原始网页。
将 HTML 文件转换为 PDF 类似于将 HTML 字符串或 URL 转换为 PDF。此方法允许您使用本地 HTML 文件,方便从存储在文件系统中的预先存在的网页或模板生成 PDF。以下是将 HTML 文件转换为 PDF 的方法:
using IronPdf;
public class PDFCreator
{
public void CreatePdfFromHtmlFile(string filePath)
{
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Render the HTML file as a PDF document
var pdfDocument = renderer.RenderHtmlFileAsPdf(filePath);
// Save the PDF document
pdfDocument.SaveAs("html_file_output.pdf");
}
}
using IronPdf;
public class PDFCreator
{
public void CreatePdfFromHtmlFile(string filePath)
{
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Render the HTML file as a PDF document
var pdfDocument = renderer.RenderHtmlFileAsPdf(filePath);
// Save the PDF document
pdfDocument.SaveAs("html_file_output.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
在此示例中,RenderHtmlFileAsPdf 方法用于将由文件路径指定的 HTML 文件内容转换为 PDF 文档。 生成的 PDF 然后保存。
通过利用这些方法,您可以使用 IronPDF 从各种 HTML 内容源创建 PDF,为您的 C# 应用程序提供灵活且强大的文档生成解决方案。 这些方法确保您可以轻松集成 PDF 创建功能,无论是处理动态 Web 内容、本地 HTML 文件或直接定义的 HTML 字符串。
CraftMyPDF 提供了一个灵活的 API,用于从模板生成 PDF。要使用此 API 创建 PDF,您必须首先在 CraftMyPDF 仪表板中创建一个模板。模板准备好后,您可以发送包含所需数据的请求给 API 以生成 PDF。以下是实现此操作的步骤。
登录CraftMyPDF仪表板 登录到您的CraftMyPDF帐户并导航到仪表板。
创建新模板 点击“创建模板”按钮。使用拖放编辑器设计您的PDF模板。您可以根据需要包括文本、图片、表格和其他元素。
创建模板后,您可以使用以下C#代码通过向CraftMyPDF API发送请求来生成PDF。
using System;
using System.Net;
using System.Threading.Tasks;
using RestSharp;
class Program
{
static async Task Main(string[] args)
{
var client = new RestClient("https://api.craftmypdf.com/v1/create");
var request = new RestRequest(Method.Post);
string apiKey = "API-Key"; // Replace with your actual API key
string templateId = "Template-ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
var body = new
{
data = new
{
invoice_number = "INV48321",
date = "2024-05-27",
due_date = "2024-06-27",
currency = "EUR",
discount = 10,
tax = 5,
company_name = "Tech Innovations Ltd",
email = "contact@techinnovations.com",
client = "Future Solutions GmbH",
client_address = "1234 Innovation Drive",
client_address2 = "Berlin",
client_address3 = "10115",
items = new[]
{
new { description = "Cloud Hosting Services", quantity = 12, unit_price = 75, total = 900 },
new { description = "Custom Web Application", quantity = 3, unit_price = 150, total = 450 },
new { description = "Technical Support", quantity = 15, unit_price = 30, total = 450 },
new { description = "Digital Marketing Campaign", quantity = 2, unit_price = 500, total = 1000 },
new { description = "SEO Optimization", quantity = 5, unit_price = 120, total = 600 }
},
gross_total = 3400
},
load_data_from = (string)null,
template_id = templateId,
version = 8,
export_type = "json",
expiration = 60,
output_file = "output.pdf",
is_cmyk = false,
image_resample_res = 600,
direct_download = 0,
cloud_storage = 1
};
request.AddJsonBody(body);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
if (response.IsSuccessful)
{
var content = response.Content;
dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
string fileUrl = result.file;
string localPath = "f:\\downloaded_output.pdf";
using (WebClient webClient = new WebClient())
{
webClient.DownloadFile(fileUrl, localPath);
}
Console.WriteLine($"PDF downloaded successfully to {localPath}");
}
else
{
Console.WriteLine($"Error: {response.Content}");
}
}
}
using System;
using System.Net;
using System.Threading.Tasks;
using RestSharp;
class Program
{
static async Task Main(string[] args)
{
var client = new RestClient("https://api.craftmypdf.com/v1/create");
var request = new RestRequest(Method.Post);
string apiKey = "API-Key"; // Replace with your actual API key
string templateId = "Template-ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
var body = new
{
data = new
{
invoice_number = "INV48321",
date = "2024-05-27",
due_date = "2024-06-27",
currency = "EUR",
discount = 10,
tax = 5,
company_name = "Tech Innovations Ltd",
email = "contact@techinnovations.com",
client = "Future Solutions GmbH",
client_address = "1234 Innovation Drive",
client_address2 = "Berlin",
client_address3 = "10115",
items = new[]
{
new { description = "Cloud Hosting Services", quantity = 12, unit_price = 75, total = 900 },
new { description = "Custom Web Application", quantity = 3, unit_price = 150, total = 450 },
new { description = "Technical Support", quantity = 15, unit_price = 30, total = 450 },
new { description = "Digital Marketing Campaign", quantity = 2, unit_price = 500, total = 1000 },
new { description = "SEO Optimization", quantity = 5, unit_price = 120, total = 600 }
},
gross_total = 3400
},
load_data_from = (string)null,
template_id = templateId,
version = 8,
export_type = "json",
expiration = 60,
output_file = "output.pdf",
is_cmyk = false,
image_resample_res = 600,
direct_download = 0,
cloud_storage = 1
};
request.AddJsonBody(body);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
if (response.IsSuccessful)
{
var content = response.Content;
dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
string fileUrl = result.file;
string localPath = "f:\\downloaded_output.pdf";
using (WebClient webClient = new WebClient())
{
webClient.DownloadFile(fileUrl, localPath);
}
Console.WriteLine($"PDF downloaded successfully to {localPath}");
}
else
{
Console.WriteLine($"Error: {response.Content}");
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
这是由PDF生成API CraftMyPdf生成的PDF文档:
设置 RestClient 和 RestRequest 一个 RestClient 是用 CraftMyPDF API URL 实例化的,并且一个 RestRequest 被创建用于生成 PDF 的 POST 方法。
添加标题 API 密钥被添加到请求头部以进行身份验证。内容类型设置为 application/json。
准备请求体 请求体被创建为一个 JSON 对象。它包括填充模板字段的数据、模板 ID 和各种选项如导出类型和过期时间。
发送请求 请求使用 ExecuteAsync 异步发送,并且它基于请求体生成 PDF 文件。
IronPDF提供各种许可选项以满足不同用户的需求。主要的许可包括Lite、Professional和Enterprise版。Lite许可售价$749,适合单个开发人员处理一个项目。Professional许可售价$1,499,支持多个项目和多名开发人员,而Enterprise许可适合更大的团队和更广泛的部署,售价$2,999。每个许可都是一次性费用,包括一年的支持和更新。此外,还有OEM重新分发许可,允许将IronPDF作为商业产品的一部分进行分发。IronPDF还提供了 免费试用 供评估用途。
CraftMyPDF 采用基于订阅的许可模式。它提供了多个计划,包括适合小规模和开发用途的免费层。免费计划允许有限使用 API,非常适合测试和小型项目。对于更高的使用需求,有付费计划提供更高的 API 调用限制和额外功能。这些付费计划旨在随着业务需求进行扩展,提供灵活性和强大的支持。用户需要通过 CraftMyPDF 网站订阅这些计划,并可以通过用户仪表板管理其订阅和 API 密钥。
IronPDF 提供 大量文件 并提供了强大的支持,帮助用户有效地利用该库。文档内容全面,包含详细的指南、示例和快速入门部分,帮助新用户快速上手。关键部分涵盖基本用法、高级配置和故障排除。此外,IronPDF通过各种渠道提供支持,包括一个广泛的知识库、电子邮件支持和针对更复杂问题的工程支持请求。支持团队每周提供 5 天 24 小时服务,能及时协助解决用户的疑问和问题。
CraftMyPDF 还为其用户提供了详尽的文档和支持。API 文档提供了所有可用端点、参数和请求示例的详细信息,确保开发人员能够顺利集成 API。文档包括关于创建模板、发出 API 请求和处理响应的指南。CraftMyPDF 通过电子邮件提供客户支持,并提供一个社区论坛供用户提问和分享见解。文档设计为用户友好,确保所有技能水平的开发人员都能有效地使用该 API 生成 PDF。
在本文中,我们探讨了两个强大PDF生成工具的功能、许可和文档:IronPDF和CraftMyPDF。两种工具都提供了强大的创建和管理PDF文档的功能,但IronPDF在几个方面具有显著优势。
IronPDF提供了一整套功能,能够满足广泛的PDF生成需求,包括轻松将HTML字符串、URL和HTML文件转换为PDF。它与.NET环境的无缝集成以及处理复杂文档结构的能力使其成为一个高度多功能的工具。另外,IronPDF支持高级选项,如添加页眉和页脚、数字签名以及处理PDF表单,确保它能够满足各种应用的需求。
IronPDF的一个显著优势是其许可结构。它提供了一种 免费试用, 允许用户在购买前评估软件。这些许可证起价为$749,使其对个人开发人员和小型团队来说是可以负担得起的。此外,IronPDF通过提供Iron Suite(包含九个产品,但只需支付两个产品的价格),提供了极具价值的选择,使其成为PDF和文档管理需求的经济有效选择。
总之,虽然IronPDF和CraftMyPDF都是出色的PDF生成工具,但IronPDF提供了更广泛的功能集、强大的支持和更有利的许可模式。它处理复杂文档需求的能力以及经济高效的Iron Suite套餐使其优于CraftMyPDF。无论您是个人开发人员还是更大的团队的一部分,IronPDF都为您的所有PDF生成需求提供可靠而强大的解决方案。