提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:吉炜炜|2025-08-25 14:07:01.953|阅读 92 次
概述:在 C# 开发中,处理 PDF 的字节数组是一种常见需求。本文将通过 Spire.PDF for .NET 演示具体实现步骤。你将学习如何将字节数组转换为 PDF,如何将 PDF 转换为字节数组,以及如何直接在内存中使用 C# 代码编辑 PDF。
#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
相关链接:
在 C# 开发中,处理 PDF 的字节数组是一种常见需求。开发者常常需要将 PDF 文档存储到数据库、通过 API 传输,或者完全在内存中进行处理而不依赖文件系统。在这些场景下,在 C# 中实现 PDF 与字节数组的互转 就显得尤为重要。
E-iceblue旗下Spire系列产品,是文档开发组件领域的佼佼者,支持国产化信创。本文将通过 Spire.PDF for .NET 演示具体实现步骤。你将学习如何将字节数组转换为 PDF,如何将 PDF 转换为字节数组,以及如何直接在内存中使用 C# 代码编辑 PDF。
加入Spire技术交流QQ群(125237868),与更多开发者一起提升文档开发技能。
使用 byte[] 作为传输格式,可以避免生成临时文件,使代码更适配云环境和容器环境。
准备工作: 在运行示例前,请先在项目中安装 Spire.PDF for .NET 的 NuGet 包。
Install-Package Spire.PDF
安装完成后,即可通过 byte[] 或 Stream 加载 PDF,编辑页面,并将结果写回内存或磁盘,无需额外转换器。
当上游服务(如 API 或消息队列)传递一个代表 PDF 的 byte[] 时,通常需要将其还原为文档,便于进一步处理或保存到磁盘。使用 Spire.PDF for .NET,这个过程可以直接在内存中完成,无需中间临时文件。
应用场景与方法: 从数据库或 API 获取一个 byte[],在内存中构建 PdfDocument,可选地验证一些基础信息,然后保存为 PDF。
using Spire.Pdf;
using System.IO;
class Program
{
static void Main()
{
// 示例来源:从数据库或 API 获取的字节数组
byte[] pdfBytes = File.ReadAllBytes("Sample.pdf"); // 请替换为实际数据来源
// 1) 从字节数组加载 PDF(内存中完成)
PdfDocument doc = new PdfDocument();
doc.LoadFromBytes(pdfBytes);
// 2) (可选)在保存或处理前查看文档信息
// int pageCount = doc.Pages.Count;
// 3) 保存为文件
doc.SaveToFile("Output.pdf");
doc.Close();
}
}
下图展示了字节数组到 PDF 的转换流程:
代码解析:
反向转换时,将 PDF 转换为 byte[] 便于写入数据库、缓存,或通过 HTTP 响应返回文件。Spire.PDF for .NET 支持将 PDF 保存到 MemoryStream,再通过 ToArray() 转换为字节数组。
应用场景与方法: 加载现有 PDF,将其保存到 MemoryStream,再提取 byte[]。这种方式特别适用于 API 返回 PDF 或持久化存储。
using Spire.Pdf;
using System.IO;
class Program
{
static void Main()
{
// 1) 从磁盘、网络或资源文件加载 PDF
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Input.pdf");
// 2) 保存到内存流,避免生成临时文件
byte[] pdfBytes;
using (var ms = new MemoryStream())
{
doc.SaveToStream(ms);
pdfBytes = ms.ToArray();
}
doc.Close();
// pdfBytes 现在包含完整文档(可直接写入数据库或 API 返回)
// 示例:return File(pdfBytes, "application/pdf");
}
}
下图展示了 PDF 转换为字节数组的流程:
关键点总结:
更强大的场景是直接在内存中编辑 PDF。你可以从 byte[] 加载 PDF,添加文字或图片、加水印、填写表单,再将结果保存为新的 byte[]。这种无文件管道非常适合微服务。
应用场景与方法: 从字节数组加载 PDF,在第一页添加文字标记,最后输出新的字节数组。
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System.IO;
class Program
{
static void Main()
{
// 来源可以是数据库、API 或文件,这里用 byte[] 表示
byte[] inputBytes = File.ReadAllBytes("Input.pdf");
// 1) 内存加载 PDF
var doc = new PdfDocument();
doc.LoadFromBytes(inputBytes);
// 2) 编辑:在第一页写入一个小标记
PdfPageBase page = doc.Pages[0];
page.Canvas.DrawString(
"编辑后的PDF文档",
new PdfTrueTypeFont(new Font("HarmonyOS Sans SC", 26f), true),
PdfBrushes.DarkBlue,
new PointF(100, page.Size.Height - 100)
);
// 3) 保存为新的字节数组
byte[] editedBytes;
using (var ms = new MemoryStream())
{
doc.SaveToStream(ms);
editedBytes = ms.ToArray();
}
doc.Close();
// editedBytes 可持久化存储或由 API 返回
}
}
下图展示了编辑后的 PDF 页面:
要点说明:
下表总结了该 API 在字节数组处理中的优势:
| 需求点 | Spire.PDF for .NET 的优势 |
|---|---|
| I/O 灵活性 | 同一个 PdfDocument API 支持从文件路径、Stream 或 byte[] 加载与保存 |
| 内存编辑 | 可绘制文本/图片、管理批注/表单、添加水印等,无需临时文件 |
| 服务友好 | 轻松集成到 ASP.NET 接口和后台任务 |
| 处理真实文档 | 支持多页 PDF,可通过流控制内存消耗 |
| 代码简洁 | 避免手动字节操作和复杂互操作,简化实现 |
本文演示了如何在 C# 中 将字节数组转换为 PDF、如何 将 PDF 转换为字节数组,以及如何 直接在内存中编辑 PDF。通过流和字节数组操作,可以让 API 设计更简洁、响应更高效,同时兼顾数据库和云环境的适配性。Spire.PDF for .NET 提供了一套一致的无文件化工作流,既适合快速转换,也能扩展为完整的内存文档处理。
可以。使用 LoadFromBytes 从 byte[] 加载 PDF,然后保存到 MemoryStream 或直接在 API 中返回,无需落盘。
使用 PdfDocument.SaveToStream 方法,并调用 MemoryStream.ToArray() 获取字节数组,再存储为 BLOB 或传递给其他服务。
完全可以。先通过字节数组加载 PDF,再进行文字、图片、水印、批注或表单填写等编辑,最后保存为新的 byte[]。
及时释放流、在合适的场景重用缓冲区、每个操作/线程单独创建 PdfDocument。对于大文件,建议使用流式 I/O 控制内存使用,保证可预测性。
如需体验 Spire.PDF for .NET 的完整功能(无评估限制),你可以联系客服申请免费 30 天试用授权。
————————————————————————————————————————
关于慧都科技:
慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务。E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。
欢迎下载|体验更多E-iceblue产品
获取更多信息请咨询慧都在线客服 ;技术交流Q群(125237868)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:慧都网



面对异构设备集成、实时数据处理、系统可靠性及安全保障等挑战,传统的设计方法已难以应对。Sparx Systems Enterprise Architect作为一款基于UML的综合性建模平台,为物联网系统设计提供了完整的解决方案,支持从需求分析、系统设计到代码生成和测试的全生命周期管理。
目前业内主流的三大类渲染技术路线包括:HOOPS工程级图形引擎、Unity游戏引擎以及Autodesk Forge云平台。那么,它们之间究竟有何不同?又各自适用于怎样的场景?
Excel 中的切片器是 Excel 最直观的数据筛选和可视化工具之一。本教程将展示如何借助Aspose.cells使用C#在Excel中添加切片器,您还将学习如何以编程方式编辑和更新切片器,以及如何为分析师、数据专家和开发人员打造功能强大的 Excel 工作簿,实现完全掌控 Excel 自动化,并添加交互式筛选器。
近日,欧洲知名企业级前端框架 Vaadin 正式发布了 官方 MCP(Model Context Protocol)服务端,这意味着开发者的 AI 编码助手(如 GitHub Copilot、Claude、Cursor 等)可以实时访问最新的 Vaadin 官方文档,实现精准代码生成与智能指导。
相关产品
Spire.PDF for .NET是独立的PDF控件,用于.NET程序中创建、编辑和操作PDF文档
Spire.Office for .NET专业的.NET Office套件,涵盖office文档创建、编辑、转换、管理和OCR内容识别等操作
Aspose.PDF for .NETPDF文档创建组件,无需Adobe Acrobat,也可以在任何平台上操作PDF文档。
Aspose.PDFPDF文档创建组件,无需Adobe Acrobat,也可以在任何平台上操作PDF文档。
IronPDF在C#中用HTML、MVC、ASPX和图像生成PDF,具备50多个阅读和编辑PDF的功能
最新文章 MORE
相关文章 MORE
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 
渝公网安备
50010702500608号
首页