Byte Array è utile per archiviare o trasmettere dati. Allo stesso modo, il formato di file PDF è popolare per le sue caratteristiche e compatibilità. Puoi convertire un file PDF in un array di byte e un array di byte in un file PDF usando il linguaggio C#. Questo può aiutarti a memorizzare e archiviare i file PDF nel database, in modo più efficiente. Puoi anche serializzare i dati lavorando con Byte Array. Esploriamo l’interconvertibilità di questi formati.
- Conversione da file PDF a array di byte e da array di byte a file PDF - Installazione API
- Converti file PDF in array di byte usando C#
- Converti matrice di byte in file PDF usando C#
Conversione da file PDF a array di byte e da array di byte a file PDF - Installazione API
Aspose.PDF for .NET L’API offre molte funzionalità per lavorare con i documenti PDF. Puoi creare, modificare, manipolare o convertire file PDF con chiamate API semplici e facili. Per convertire i file PDF in Byte Array o viceversa, è necessario installare l’API scaricandola dal sito Web ufficiale o dalla galleria NuGet usando il comando di installazione seguente nell’IDE di Visual Studio.
PM> Install-Package Aspose.Pdf
Converti file PDF in array di byte usando C#
È possibile convertire PDF in Byte Array per trasmetterlo o archiviarlo per un’ulteriore elaborazione. Ad esempio, potrebbe essere necessario serializzare un documento PDF, quindi convertirlo in un array di byte può essere d’aiuto. È necessario seguire i passaggi seguenti per convertire il PDF in un array di byte:
- Carica file PDF di input
- Inizializza una matrice di byte
- Inizializza l’oggetto FileStream.
- Carica il contenuto del file nell’array di byte
Dopo aver seguito tutti questi passaggi, ora puoi elaborare il file PDF sotto forma di array di byte. Ad esempio, puoi passarlo a un’altra funzione come nell’esempio seguente.
Il codice seguente mostra come convertire un file PDF in una matrice di byte utilizzando C# in cui il risultante ByteArray viene passato a un metodo per convertire il file di input in immagini:
dataDir = @"D:\Test\";
// Carica il file PDF di input
string inputFile = dataDir + @"testpdf.pdf";
// Inizializza una matrice di byte
byte[] buff = null;
// Inizializza l'oggetto FileStream
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;
// Carica il contenuto del file nell'array di byte
buff = br.ReadBytes((int) numBytes);
fs.Close();
// Lavora con il file PDF nell'array di byte
ConvertPDFToJPEG(buff, 300, dataDir);
public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
// Apri documento
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))
{
// Crea un dispositivo JPEG con attributi specificati
// Larghezza, Altezza, Risoluzione, Qualità
// Qualità [0-100], 100 è il massimo
// Crea oggetto Risoluzione
Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
// JpegDevice jpegDevice = new JpegDevice(500, 700, risoluzione, 100);
// aggiunto quanto segue per determinare se orizzontale o meno
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 =
//nuovo Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4, res, 100);
new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100);
// Converti una pagina particolare e salva l'immagine per lo streaming
//Aspose.Pdf.PageSize.A4.IsLandscape = true;
jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
// Chiudi flusso
imageStream.Close();
}
}
}
}
Converti matrice di byte in file PDF usando C#
Procediamo un altro passo oltre, un Byte Array può essere convertito in un file PDF. Impariamo questo dall’esempio di conversione di un’immagine come Byte Array in un file PDF. È necessario seguire i seguenti passaggi per convertire una matrice di byte in un file PDF.
- Carica file di input
- Inizializza matrice di byte
- Carica l’immagine di input in Byte Array
- Inizializza un’istanza della classe Document.
- Aggiungi un’immagine su una pagina PDF
- Salva file PDF di output
Il codice seguente spiega come convertire una matrice di byte in file PDF a livello di codice utilizzando C#:
// Carica file di input
string inputFile = dataDir + @"Test.PNG";
// Inizializza matrice di byte
byte[] buff = null;
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;
// Carica l'immagine di input in Byte Array
buff = br.ReadBytes((int)numBytes);
Document doc = new Document();
// Aggiungi una pagina alla raccolta di pagine del documento
Page page = doc.Pages.Add();
// Carica il file immagine di origine nell'oggetto Stream
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// Crea un'istanza dell'oggetto BitMap con il flusso di immagini caricato
Bitmap b = new Bitmap(mystream);
// Imposta i margini in modo che l'immagine si adatti, ecc.
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);
// Crea un oggetto immagine
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// Aggiungi l'immagine nella raccolta di paragrafi della sezione
page.Paragraphs.Add(image1);
// Imposta il flusso del file immagine
image1.ImageStream = mystream;
// Salva il file PDF risultante
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);
// Chiudere l'oggetto memoryStream
mystream.Close();
Conclusione
In questo articolo, abbiamo esplorato come convertire file PDF in Byte Array e Byte Array in file PDF utilizzando il linguaggio di programmazione C#. Se sei interessato a lavorare ulteriormente con il file PDF, condividi gentilmente le tue esigenze con noi tramite Forum di supporto gratuito. Inoltre, puoi anche esplorare la Documentazione API e Riferimenti API per un’analisi approfondita delle funzionalità offerte dall’API. Non vediamo l’ora di metterti in contatto con te!