Byte Array är användbart för att lagra eller överföra data. Likaså är PDF-filformatet populärt på grund av dess funktioner och kompatibilitet. Du kan konvertera PDF-fil till Byte Array såväl som en Byte Array till PDF-fil med C#-språket. Detta kan hjälpa dig att lagra och arkivera PDF-filer i databasen, mer effektivt. Du kan också serialisera data genom att arbeta med Byte Array. Låt oss utforska dessa formats interkonvertibilitet.
- PDF-fil till byte-array och byte-array till PDF-filkonvertering – API-installation
- Konvertera PDF-fil till Byte Array med C#
- Konvertera Byte Array till PDF-fil med C#
PDF-fil till byte-array och byte-array till PDF-filkonvertering – API-installation
Aspose.PDF för .NET API erbjuder många funktioner för att arbeta med PDF-dokument. Du kan skapa, redigera, manipulera eller konvertera PDF-filer med enkla och enkla API-anrop. För att konvertera PDF-filer till Byte Array eller vice versa, måste du installera API:t antingen genom att ladda ner det från den officiella webbplatsen, eller från NuGet-galleriet med hjälp av installationskommandot nedan i Visual Studio IDE.
PM> Install-Package Aspose.Pdf
Konvertera PDF-fil till Byte Array med C#
Du kan konvertera PDF till Byte Array för att överföra eller lagra den för vidare bearbetning. Till exempel kan du behöva serialisera ett PDF-dokument och sedan konvertera det till en byte-array kan hjälpa. Du måste följa stegen nedan för att konvertera PDF till en byte-array:
- Ladda in PDF-fil
- Initiera en Byte Array
- Initiera FileStream objekt
- Ladda filinnehållet i byte-arrayen
Efter att ha följt alla dessa steg kan du nu bearbeta PDF-filen i form av en byte-array. Du kan till exempel överföra den till en annan funktion som exemplet nedan.
Följande kod visar hur man konverterar en PDF-fil till en Byte Array med C# där den resulterande ByteArrayen skickas till en metod för att konvertera indatafil till bilder:
dataDir = @"D:\Test\";
// Ladda inmatad PDF-fil
string inputFile = dataDir + @"testpdf.pdf";
// Initiera en byte-array
byte[] buff = null;
// Initiera FileStream-objekt
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;
// Ladda filinnehållet i byte-arrayen
buff = br.ReadBytes((int) numBytes);
fs.Close();
// Arbeta med PDF-filen i byte-array
ConvertPDFToJPEG(buff, 300, dataDir);
public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
// Öppna dokumentet
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))
{
// Skapa JPEG-enhet med specificerade attribut
// Bredd, höjd, upplösning, kvalitet
// Kvalitet [0-100], 100 är max
// Skapa upplösningsobjekt
Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
// JpegDevice jpegDevice = new JpegDevice(500, 700, upplösning, 100);
// lade till följande för att avgöra om landskapet eller inte
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);
// Konvertera en viss sida och spara bilden för att streama
//Aspose.Pdf.PageSize.A4.IsLandscape = sant;
jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
// Stäng strömmen
imageStream.Close();
}
}
}
}
Konvertera Byte Array till PDF-fil med C#
Låt oss gå ytterligare ett steg längre, en Byte Array kan konverteras till en PDF-fil. Låt oss lära oss detta genom exemplet att konvertera en bild som en Byte Array till en PDF-fil. Du måste följa följande steg för att konvertera en Byte Array till en PDF-fil.
- Ladda indatafil
- Initiera byte array
- Ladda indatabilden i Byte Array
- Initiera en instans av klassen Dokument
- Lägg till bild på en PDF-sida
- Spara utdata PDF-fil
Följande kod förklarar hur man konverterar en Byte Array till PDF-fil programmatiskt med C#:
// Ladda indatafil
string inputFile = dataDir + @"Test.PNG";
// Initiera byte array
byte[] buff = null;
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;
// Ladda indatabilden i Byte Array
buff = br.ReadBytes((int)numBytes);
Document doc = new Document();
// Lägg till en sida till sidsamling av dokument
Page page = doc.Pages.Add();
// Ladda källbildsfilen till Stream-objektet
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// Instantiera BitMap-objekt med laddad bildström
Bitmap b = new Bitmap(mystream);
// Ställ in marginaler så att bilden passar osv.
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);
// Skapa ett bildobjekt
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// Lägg till bilden i avsnittets styckesamling
page.Paragraphs.Add(image1);
// Ställ in bildfilströmmen
image1.ImageStream = mystream;
// Spara den resulterande PDF-filen
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);
// Stäng memoryStream-objekt
mystream.Close();
Slutsats
I den här artikeln har vi utforskat hur man konverterar PDF-fil till Byte Array såväl som Byte Array till PDF-fil med programmeringsspråket C#. Om du är intresserad av att arbeta vidare med PDF-filen, vänligen dela dina krav med oss via Free Support Forum. Dessutom kan du också utforska API-dokumentation och API-referenser för en djupgående analys av funktionerna som erbjuds av API. Vi ser fram emot att komma i kontakt med dig!