C# המר מערך בתים של קבצי PDF

מערך בייטים מועיל לאחסון או שידור נתונים. כמו כן, פורמט קובץ ה-PDF פופולרי בגלל התכונות והתאימות שלו. אתה יכול להמיר קובץ PDF למערך Byte וכן מערך Byte לקובץ PDF באמצעות שפת C#. זה יכול לעזור לך לאחסן ולאחסן קבצי PDF במסד הנתונים, בצורה יעילה יותר. אתה יכול גם לעשות סדרה של הנתונים על ידי עבודה עם מערך הבתים. הבה נחקור את ההמרה ההדדית של פורמטים אלה.

המרת קובץ PDF ל-Byte ומערך Byte ל-PDF - התקנת API

Aspose.PDF for .NET API מציע הרבה תכונות לעבודה עם מסמכי PDF. אתה יכול ליצור, לערוך, לתפעל או להמיר קבצי PDF באמצעות קריאות API פשוטות וקלות. להמרת קבצי PDF למערך Byte או להיפך, עליך להתקין את ה-API על ידי הורדתו מהאתר הרשמי, או מהגלריה NuGet באמצעות פקודת ההתקנה שלהלן ב-Visual Studio IDE.

PM> Install-Package Aspose.Pdf

המרת קובץ PDF למערך בייטים באמצעות C#

אתה יכול להמיר PDF למערך Byte כדי לשדר או לאחסן אותו לעיבוד נוסף. לדוגמה, ייתכן שיהיה עליך לבצע סדרה של מסמך PDF ואז המרתו למערך בתים יכול לעזור. עליך לבצע את השלבים הבאים להמרת PDF למערך בתים:

  1. טען קובץ PDF קלט
  2. אתחול מערך בייטים
  3. אתחול אובייקט FileStream
  4. טען את תוכן הקובץ במערך הבתים

לאחר ביצוע כל השלבים הללו, כעת תוכל לעבד את קובץ ה-PDF בצורה של מערך בתים. לדוגמה, אתה יכול להעביר אותו לפונקציה אחרת כמו הדוגמה למטה.

הקוד הבא מראה כיצד להמיר קובץ PDF למערך Byte באמצעות C# כאשר 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 היא מקסימום
                // צור אובייקט רזולוציה

                Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
                // JpegDevice jpegDevice = new 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 =
                //new 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 באמצעות C#

הבה נמשיך צעד נוסף קדימה, ניתן להמיר מערך בייטים לקובץ PDF. הבה נלמד זאת באמצעות הדוגמה של המרת תמונה כמערך Byte לקובץ PDF. עליך לבצע את השלבים הבאים להמרת מערך בתים לקובץ PDF.

  1. טען קובץ קלט
  2. אתחול מערך בתים
  3. טען תמונת קלט לתוך מערך בייטים
  4. אתחול מופע של מחלקה Document
  5. הוסף תמונה בדף PDF
  6. שמור פלט קובץ PDF

הקוד הבא מסביר כיצד להמיר מערך בייטים לקובץ PDF באופן תוכנתי באמצעות C#:

// טען קובץ קלט
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 למערך Byte וכן מערך Byte לקובץ PDF באמצעות שפת התכנות C#. אם אתה מעוניין לעבוד הלאה עם קובץ ה-PDF, אנא שתף אותנו בדרישות שלך באמצעות פורום תמיכה חינם. יתרה מזאת, אתה יכול גם לחקור את תיעוד ה-API ו-API References לניתוח מעמיק של התכונות שמציע ה-API. נשמח ליצור איתך קשר!

ראה גם