提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:李显亮|2020-12-01 09:50:32.080|阅读 478 次
概述:字节数组有助于存储或传输数据。同样,PDF文件格式因其功能和兼容性而广受欢迎。可以使用C#语言将PDF文件转换为字节数组,也可以将字节数组转换为PDF文件。
#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
相关链接:
字节数组有助于存储或传输数据。同样,PDF文件格式因其功能和兼容性而广受欢迎。可以使用C#语言将PDF文件转换为字节数组,也可以将字节数组转换为PDF文件。这可以帮助更有效地在数据库中存储和归档PDF文件,还可以通过使用字节数组来序列化数据。让我们探讨这些格式的互转换性。
(安装包仅提供部分功能,并设置限制,如需试用完整功能请。)
使用C#将PDF文件转换为字节数组
可以将PDF转换为字节数组,以便传输或存储它以进行进一步处理。例如,您可能需要序列化PDF文档,然后将其转换为字节数组会有所帮助。您需要按照以下步骤将PDF转换为字节数组:
以下代码显示了如何使用C#将PDF文件转换为字节数组,其中将所得的ByteArray传递给将输入文件转换为图像的方法:
dataDir = @"D:\Test\";
// Load input PDF file
string inputFile = dataDir + @"testpdf.pdf";
// Initialize a byte array
byte[] buff = null;
// Initialize FileStream object
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;
// Load the file contents in the byte array
buff = br.ReadBytes((int) numBytes);
fs.Close();
// Work with the PDF file in byte array
ConvertPDFToJPEG(buff, 300, dataDir);
public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
// Open document
using (MemoryStream InputStream = new MemoryStream(PDFBlob))
{
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(InputStream);
for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++) { using (FileStream imageStream = new FileStream(dataDir + "image" + pageCount + "_out" + ".jpg", FileMode.Create)) { // Create JPEG device with specified attributes // Width, Height, Resolution, Quality // Quality [0-100], 100 is Maximum // Create Resolution object Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution); // JpegDevice jpegDevice = new JpegDevice(500, 700, resolution, 100); // added the following to determine if landscape or not Int32 height, width = 0; PdfFileInfo info = new PdfFileInfo(pdfDocument); width = Convert.ToInt32(info.GetPageWidth(pdfDocument.Pages[pageCount].Number)); height = Convert.ToInt32(info.GetPageHeight(pdfDocument.Pages[pageCount].Number)); Aspose.Pdf.Devices.JpegDevice jpegDevice = //new Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4, res, 100); new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100); // Convert a particular page and save the image to stream //Aspose.Pdf.PageSize.A4.IsLandscape = true; jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream); // Close stream imageStream.Close(); } } } }
使用C#将字节数组转换为PDF文件
让我们进一步进行下一步,可以将字节数组转换为PDF文件。让我们通过将图像作为字节数组转换为PDF文件的示例来学习这一点。您需要按照以下步骤将字节数组转换为PDF文件。
以下代码说明了如何使用C#以编程方式将字节数组转换为PDF文件:
// Load input file string inputFile = dataDir + @"Test.PNG"; // Initialize byte array byte[] buff = null; FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); long numBytes = new FileInfo(inputFile).Length; // Load input image into Byte Array buff = br.ReadBytes((int)numBytes); Document doc = new Document(); // Add a page to pages collection of document Page page = doc.Pages.Add(); // Load the source image file to Stream object MemoryStream outstream = new MemoryStream(); MemoryStream mystream = new MemoryStream(buff); // Instantiate BitMap object with loaded image stream Bitmap b = new Bitmap(mystream); // Set margins so image will fit, etc. page.PageInfo.Margin.Bottom = 0; page.PageInfo.Margin.Top = 0; page.PageInfo.Margin.Left = 0; page.PageInfo.Margin.Right = 0; page.CropBox = new Aspose.Pdf.Rectangle(0, 0, b.Width, b.Height); // Create an image object Aspose.Pdf.Image image1 = new Aspose.Pdf.Image(); // Add the image into paragraphs collection of the section page.Paragraphs.Add(image1); // Set the image file stream image1.ImageStream = mystream; // Save resultant PDF file doc.Save(outstream, SaveFormat.Pdf); //doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf); // Close memoryStream object mystream.Close();
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@hmdbvip.cn




Parasoft C/C++test是一款专为C/C++代码设计的自动化测试工具,通过静态代码分析、单元测试和运行时错误检测等功能,帮助开发团队在早期发现并修复缺陷,提升代码质量和开发效率 。在实际使用中,尤其是在VC6此类旧版开发环境中执行单元测试时,可能会因环境兼容性问题触发链接错误。
本文主要介绍如何在MVVM应用程序中使用虚拟源,欢迎下载最新版组件体验!
Aspose.Slides for Java使用户能够轻松地操作幻灯片、添加注释和转换文件。其易用性和集成能力提高了工作效率,使开发人员能够专注于更关键的任务。
在嵌入式软件测试领域,对交叉编译代码进行单元测试是一大挑战。Parasoft C/C++test作为专业的C/C++测试工具,能够与劳特巴赫Trace32调试器深度集成。下面会详细介绍如何在C++test中配置Trace32调试器,实现对PowerPC架构程序的单元测试,涵盖环境设置、项目导入到测试执行的全过程。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@hmdbvip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
永利最大(官方)网站