C# PDF Dosyası Bayt Dizisini Dönüştür

Byte Array, verileri depolamak veya iletmek için yararlıdır. Aynı şekilde, PDF dosya formatı da özellikleri ve uyumluluğu nedeniyle popülerdir. C# dilini kullanarak PDF Dosyasını Byte Dizisine ve Byte Dizisini PDF Dosyasına dönüştürebilirsiniz. Bu, PDF dosyalarını veritabanında daha verimli bir şekilde depolamanıza ve arşivlemenize yardımcı olabilir. Byte Array ile çalışarak da verileri seri hale getirebilirsiniz. Bu biçimlerin birbirine dönüştürülebilirliğini keşfedelim.

PDF Dosyasını Bayt Dizisine ve Bayt Dizisini PDF Dosyasına Dönüştürme – API Kurulumu

Aspose.PDF for .NET API, PDF belgeleriyle çalışmak için pek çok özellik sunar. Basit ve kolay API çağrılarıyla PDF dosyaları oluşturabilir, düzenleyebilir, değiştirebilir veya dönüştürebilirsiniz. PDF dosyalarını Byte Array’e dönüştürmek veya tersi için API’yi resmi web sitesinden veya Visual Studio IDE’de aşağıdaki kurulum komutunu kullanarak NuGet galerisinden indirerek yüklemeniz gerekir.

PM> Install-Package Aspose.Pdf

C# kullanarak PDF Dosyasını Bayt Dizisine Dönüştür

Daha sonraki işlemler için iletmek veya saklamak üzere PDF’yi Byte Array’e dönüştürebilirsiniz. Örneğin, bir PDF belgesini seri hale getirmeniz ve ardından onu bir bayt dizisine dönüştürmeniz gerekebilir. PDF’yi bayt dizisine dönüştürmek için aşağıdaki adımları izlemeniz gerekir:

  1. Giriş PDF Dosyasını Yükle
  2. Bayt Dizisini Başlat
  3. FileStream nesnesini başlat
  4. Dosya içeriğini bayt dizisine yükleyin

Tüm bu adımları izledikten sonra artık PDF dosyasını byte dizisi şeklinde işleyebilirsiniz. Örneğin aşağıdaki örnekteki gibi başka bir fonksiyona aktarabilirsiniz.

Aşağıdaki kod, elde edilen ByteArray’in girdi dosyasını görüntülere dönüştürmek için bir yönteme geçirildiği C# kullanarak bir PDF Dosyasının Byte Dizisine nasıl dönüştürüleceğini gösterir:

dataDir = @"D:\Test\";

// Giriş PDF dosyasını yükle
string inputFile = dataDir + @"testpdf.pdf";

// Bir bayt dizisini başlat
byte[] buff = null;

// FileStream nesnesini başlat
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;

// Dosya içeriğini bayt dizisine yükleyin
buff = br.ReadBytes((int) numBytes);
fs.Close();

// Bayt dizisindeki PDF dosyasıyla çalışın
ConvertPDFToJPEG(buff, 300, dataDir);


public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
    // Belgeyi aç
    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))
            {
                // Belirtilen özniteliklere sahip JPEG aygıtı oluştur
                // Genişlik, Yükseklik, Çözünürlük, Kalite
                // Kalite [0-100], 100 Maksimum
                // Çözünürlük nesnesi oluştur

                Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
                // JpegDevice jpegDevice = yeni JpegDevice(500, 700, çözünürlük, 100);

                // manzara olup olmadığını belirlemek için aşağıdakileri ekledi
                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 =
                //yeni Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4, res, 100);
                new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100);
                // Belirli bir sayfayı dönüştürün ve görüntüyü akışa kaydedin

                //Aspose.Pdf.PageSize.A4.IsLandscape = true;
                jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
                // Akışı kapat
                imageStream.Close();
            }
        }
    }
}

C# kullanarak Bayt Dizisini PDF Dosyasına Dönüştür

Bir adım daha ilerleyelim, bir Bayt Dizisi PDF Dosyasına dönüştürülebilir. Bunu Bayt Dizisi olarak bir görüntüyü PDF dosyasına dönüştürme örneğiyle öğrenelim. Byte Array’i PDF dosyasına dönüştürmek için aşağıdaki adımları takip etmeniz gerekmektedir.

  1. Giriş dosyasını yükle
  2. Bayt dizisini başlat
  3. Giriş görüntüsünü Bayt Dizisine yükleyin
  4. Document sınıfının bir örneğini başlat
  5. PDF sayfasına resim ekleme
  6. Çıktı PDF Dosyasını Kaydet

Aşağıdaki kod, C# kullanarak bir Bayt Dizisini programlı olarak PDF Dosyasına nasıl dönüştüreceğinizi açıklar:

// Giriş dosyasını yükle
string inputFile = dataDir + @"Test.PNG";

// Bayt dizisini başlat
byte[] buff = null;
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;

// Giriş görüntüsünü Bayt Dizisine yükleyin
buff = br.ReadBytes((int)numBytes);


Document doc = new Document();
// Belge koleksiyonuna sayfa ekleme
Page page = doc.Pages.Add();
// Kaynak görüntü dosyasını Akış nesnesine yükleyin
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// Yüklenen görüntü akışıyla BitMap nesnesinin örneğini oluşturun
Bitmap b = new Bitmap(mystream);

// Kenar boşluklarını görüntünün sığacağı şekilde ayarlayın, vb.
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);
// Bir görüntü nesnesi oluşturun
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// Görüntüyü bölümün paragraflar koleksiyonuna ekleyin
page.Paragraphs.Add(image1);
// Görüntü dosyası akışını ayarla
image1.ImageStream = mystream;

// Ortaya çıkan PDF dosyasını kaydet
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);

// memoryStream nesnesini kapat
mystream.Close();

Çözüm

Bu yazıda, C# programlama dilini kullanarak PDF Dosyasını Byte Array’e ve Byte Array’i PDF Dosyasına nasıl dönüştüreceğimizi araştırdık. PDF dosyasıyla daha fazla çalışmakla ilgileniyorsanız, gereksinimlerinizi lütfen Ücretsiz Destek Forumu aracılığıyla bizimle paylaşın. Ayrıca, API tarafından sunulan özelliklerin derinlemesine analizi için API Dokümantasyonu ve API Referansları’nı da keşfedebilirsiniz. Sizinle iletişime geçmek için sabırsızlanıyoruz!

Ayrıca bakınız