![C# Konwertuj tablicę bajtów pliku PDF](images/C-Convert-PDF-File-Byte-Array.png#center)
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
- Konwertuj plik PDF na tablicę bajtów za pomocą C#
- Konwertuj tablicę bajtów na plik PDF za pomocą C#
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:
- Załaduj wejściowy plik PDF
- Zainicjuj tablicę bajtów
- Zainicjuj obiekt FileStream.
- 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.
- Załaduj plik wejściowy
- Zainicjuj tablicę bajtów
- Załaduj obraz wejściowy do tablicy bajtów
- Zainicjuj instancję klasy Document.
- Dodaj obraz na stronie PDF
- 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ą!