C# Konwertuj tablicę bajtów pliku PDF

Tablica bajtów jest przydatna do przechowywania lub przesyłania danych. Podobnie format pliku PDF jest popularny ze względu na jego funkcje i kompatybilność. Możesz przekonwertować plik PDF na tablicę bajtów, a także tablicę bajtów na plik PDF, używając języka C#. Może to pomóc w wydajniejszym przechowywaniu i archiwizowaniu plików PDF w bazie danych. Możesz także serializować dane, pracując z tablicą bajtów. Przyjrzyjmy się możliwości wzajemnej konwersji tych formatów.

Konwersja plików PDF do Byte Array i Byte Array do PDF File – Instalacja API

Aspose.PDF for .NET API oferuje wiele funkcji do pracy z dokumentami PDF. Możesz tworzyć, edytować, manipulować lub konwertować pliki PDF za pomocą prostych i łatwych wywołań API. Aby przekonwertować pliki PDF na Byte Array lub odwrotnie, musisz zainstalować interfejs API, pobierając go z oficjalnej strony internetowej lub z galerii NuGet, używając poniższego polecenia instalacji w środowisku IDE programu Visual Studio.

PM> Install-Package Aspose.Pdf

Konwertuj plik PDF na tablicę bajtów za pomocą C#

Możesz przekonwertować plik PDF na tablicę bajtów w celu przesłania lub zapisania go do dalszego przetwarzania. Na przykład może zaistnieć potrzeba serializacji dokumentu PDF, a następnie przekonwertowanie go na tablicę bajtów może pomóc. Aby przekonwertować plik PDF na tablicę bajtów, wykonaj poniższe czynności:

  1. Załaduj wejściowy plik PDF
  2. Zainicjuj tablicę bajtów
  3. Zainicjuj obiekt FileStream.
  4. Załaduj zawartość pliku do tablicy bajtów

Po wykonaniu wszystkich tych kroków możesz teraz przetworzyć plik PDF w postaci tablicy bajtów. Na przykład możesz przekazać go do innej funkcji, jak w poniższym przykładzie.

Poniższy kod pokazuje, jak przekonwertować plik PDF na tablicę bajtów przy użyciu języka C#, gdzie wynikowa tablica bajtów jest przekazywana do metody konwersji pliku wejściowego na obrazy:

dataDir = @"D:\Test\";

// Załaduj wejściowy plik PDF
string inputFile = dataDir + @"testpdf.pdf";

// Zainicjuj tablicę bajtów
byte[] buff = null;

// Zainicjuj obiekt FileStream
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;

// Załaduj zawartość pliku do tablicy bajtów
buff = br.ReadBytes((int) numBytes);
fs.Close();

// Pracuj z plikiem PDF w tablicy bajtów
ConvertPDFToJPEG(buff, 300, dataDir);


public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
    // Otwórz dokument
    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))
            {
                // Utwórz urządzenie JPEG z określonymi atrybutami
                // Szerokość, wysokość, rozdzielczość, jakość
                // Jakość [0-100], 100 to maksimum
                // Utwórz obiekt rozdzielczości

                Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
                // JpegDevice jpegDevice = new JpegDevice(500, 700, rozdzielczość, 100);

                // dodano następujące elementy, aby określić, czy jest to krajobraz, czy nie
                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 =
                //nowy Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4, res, 100);
                new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100);
                // Konwertuj określoną stronę i zapisz obraz do strumienia

                //Aspose.Pdf.PageSize.A4.IsLandscape = true;
                jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
                // Zamknij strumień
                imageStream.Close();
            }
        }
    }
}

Konwertuj tablicę bajtów na plik PDF za pomocą C#

Przejdźmy o krok dalej, tablicę bajtów można przekonwertować na plik PDF. Nauczmy się tego na przykładzie konwersji obrazu jako tablicy bajtów do pliku PDF. Musisz wykonać następujące kroki, aby przekonwertować tablicę bajtów na plik PDF.

  1. Załaduj plik wejściowy
  2. Zainicjuj tablicę bajtów
  3. Załaduj obraz wejściowy do tablicy bajtów
  4. Zainicjuj instancję klasy Document.
  5. Dodaj obraz na stronie PDF
  6. Zapisz wyjściowy plik PDF

Poniższy kod wyjaśnia, jak programowo przekonwertować tablicę bajtów na plik PDF przy użyciu języka C#:

// Załaduj plik wejściowy
string inputFile = dataDir + @"Test.PNG";

// Zainicjuj tablicę bajtów
byte[] buff = null;
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;

// Załaduj obraz wejściowy do tablicy bajtów
buff = br.ReadBytes((int)numBytes);


Document doc = new Document();
// Dodaj stronę do zbioru stron dokumentu
Page page = doc.Pages.Add();
// Załaduj źródłowy plik obrazu do obiektu Stream
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// Utwórz instancję obiektu BitMap z załadowanym strumieniem obrazu
Bitmap b = new Bitmap(mystream);

// Ustaw marginesy, aby obraz się zmieścił itp.
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);
// Utwórz obiekt obrazu
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// Dodaj obraz do zbioru akapitów sekcji
page.Paragraphs.Add(image1);
// Ustaw strumień pliku obrazu
image1.ImageStream = mystream;

// Zapisz wynikowy plik PDF
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);

// Zamknij obiekt memoryStream
mystream.Close();

Wniosek

W tym artykule zbadaliśmy, jak przekonwertować plik PDF na tablicę bajtów, a także tablicę bajtów na plik PDF przy użyciu języka programowania C#. Jeśli jesteś zainteresowany dalszą pracą z plikiem PDF, uprzejmie podziel się z nami swoimi wymaganiami za pośrednictwem Bezpłatne forum pomocy technicznej. Ponadto możesz również zapoznać się z Dokumentacją interfejsu API i Odniesieniami interfejsu API, aby uzyskać dogłębną analizę funkcji oferowanych przez interfejs API. Czekamy na kontakt z Tobą!

Zobacz też