Byte Array برای ذخیره یا انتقال داده ها مفید است. به همین ترتیب، فرمت فایل PDF به دلیل ویژگی ها و سازگاری آن محبوب است. با استفاده از زبان سی شارپ می توانید فایل PDF را به آرایه بایت و همچنین آرایه بایت را به فایل PDF تبدیل کنید. این می تواند به شما کمک کند تا فایل های PDF را با کارایی بیشتری در پایگاه داده ذخیره و بایگانی کنید. همچنین می توانید با کار با آرایه بایت، داده ها را سریال کنید. اجازه دهید قابلیت تبدیل بین این فرمت ها را بررسی کنیم.
- تبدیل فایل PDF به آرایه بایت و آرایه بایت به فایل PDF – نصب API
- تبدیل فایل PDF به آرایه بایت با استفاده از سی شارپ
- تبدیل آرایه بایت به فایل PDF با استفاده از سی شارپ
تبدیل فایل PDF به آرایه بایت و آرایه بایت به فایل PDF – نصب API
Aspose.PDF for .NET API ویژگی های زیادی را برای کار با اسناد PDF ارائه می دهد. شما می توانید فایل های PDF را با فراخوانی های ساده و آسان API ایجاد، ویرایش، دستکاری یا تبدیل کنید. برای تبدیل فایلهای PDF به آرایه بایت یا برعکس، باید API را با دانلود آن از وبسایت رسمی یا از گالری NuGet با استفاده از دستور نصب زیر در Visual Studio IDE نصب کنید.
PM> Install-Package Aspose.Pdf
تبدیل فایل پی دی اف به آرایه بایت با استفاده از سی شارپ
شما می توانید PDF را به آرایه بایت تبدیل کنید تا آن را برای پردازش بیشتر انتقال یا ذخیره کنید. به عنوان مثال، ممکن است لازم باشد یک سند PDF را سریال کنید و سپس تبدیل آن به یک آرایه بایت می تواند کمک کند. برای تبدیل PDF به آرایه بایتی باید مراحل زیر را دنبال کنید:
- فایل PDF ورودی را بارگیری کنید
- یک آرایه بایت را راه اندازی کنید
- شیء FileStream را مقداردهی کنید
- محتویات فایل را در آرایه بایت بارگیری کنید
پس از انجام تمام این مراحل، اکنون می توانید فایل PDF را در قالب یک آرایه بایت پردازش کنید. به عنوان مثال، می توانید آن را به تابع دیگری مانند مثال زیر منتقل کنید.
کد زیر نحوه تبدیل یک فایل PDF به آرایه بایت با استفاده از سی شارپ را نشان می دهد که در آن ByteArray حاصل به روشی برای تبدیل فایل ورودی به تصویر ارسال می شود:
dataDir = @"D:\Test\";
// فایل PDF ورودی را بارگیری کنید
string inputFile = dataDir + @"testpdf.pdf";
// یک آرایه بایت را راه اندازی کنید
byte[] buff = null;
// شی FileStream را راه اندازی کنید
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;
// محتویات فایل را در آرایه بایت بارگیری کنید
buff = br.ReadBytes((int) numBytes);
fs.Close();
// با فایل PDF در آرایه بایت کار کنید
ConvertPDFToJPEG(buff, 300, dataDir);
public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
// سند را باز کنید
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))
{
// دستگاه JPEG با ویژگی های مشخص شده ایجاد کنید
// عرض، ارتفاع، وضوح، کیفیت
// کیفیت [0-100]، 100 حداکثر است
// شی Resolution را ایجاد کنید
Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
// JpegDevice jpegDevice = جدید JpegDevice(500, 700, وضوح, 100);
// برای تعیین اینکه آیا منظره است یا خیر، موارد زیر را اضافه کرد
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 =
//جدید Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4, res, 100);
new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100);
// یک صفحه خاص را تبدیل کنید و تصویر را در جریان ذخیره کنید
//Aspose.Pdf.PageSize.A4.IsLandscape = true;
jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
// بستن جریان
imageStream.Close();
}
}
}
}
تبدیل آرایه بایت به فایل PDF با استفاده از سی شارپ
اجازه دهید یک گام دیگر جلوتر برویم، یک آرایه بایت را می توان به یک فایل PDF تبدیل کرد. اجازه دهید این را با مثال تبدیل یک تصویر به عنوان آرایه بایت به یک فایل PDF یاد بگیریم. برای تبدیل بایت آرایه به فایل PDF باید مراحل زیر را دنبال کنید.
- فایل ورودی را بارگیری کنید
- آرایه بایت را راه اندازی کنید
- تصویر ورودی را در آرایه بایت بارگیری کنید
- نمونه ای از کلاس Document را راه اندازی کنید
- اضافه کردن تصویر در صفحه PDF
- ذخیره فایل PDF خروجی
کد زیر نحوه تبدیل یک آرایه بایت به فایل PDF را به صورت برنامهنویسی با استفاده از سی شارپ توضیح میدهد:
// فایل ورودی را بارگیری کنید
string inputFile = dataDir + @"Test.PNG";
// آرایه بایت را راه اندازی کنید
byte[] buff = null;
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;
// تصویر ورودی را در آرایه بایت بارگیری کنید
buff = br.ReadBytes((int)numBytes);
Document doc = new Document();
// اضافه کردن یک صفحه به صفحات مجموعه سند
Page page = doc.Pages.Add();
// فایل تصویر منبع را در شی Stream بارگیری کنید
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// با جریان تصویر بارگذاری شده، شی BitMap را نمونه سازی کنید
Bitmap b = new Bitmap(mystream);
// حاشیه ها را طوری تنظیم کنید که تصویر مناسب باشد و غیره.
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);
// یک شیء تصویری ایجاد کنید
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// تصویر را به مجموعه پاراگراف های بخش اضافه کنید
page.Paragraphs.Add(image1);
// جریان فایل تصویر را تنظیم کنید
image1.ImageStream = mystream;
// فایل PDF حاصل را ذخیره کنید
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);
// آبجکت memoryStream را ببندید
mystream.Close();
نتیجه
در این مقاله نحوه تبدیل فایل PDF به آرایه بایت و همچنین بایت آرایه به فایل PDF با استفاده از زبان برنامه نویسی سی شارپ را بررسی کرده ایم. اگر علاقه مند به کار بیشتر با فایل PDF هستید، لطفاً نیازهای خود را از طریق تالار گفتمان پشتیبانی رایگان با ما در میان بگذارید. علاوه بر این، برای تجزیه و تحلیل عمیق ویژگیهای ارائه شده توسط API، میتوانید API Documentation و API References را نیز بررسی کنید. ما مشتاقانه منتظر تماس با شما هستیم!