• <menu id="w2i4a"></menu>
  • logo Aspose.PDF使用教程

    文檔首頁(yè)>>Aspose.PDF使用教程>>Aspose.PDF功能演示:使用C#實(shí)現(xiàn)PDF文件和字節(jié)數(shù)組的相互轉(zhuǎn)換

    Aspose.PDF功能演示:使用C#實(shí)現(xiàn)PDF文件和字節(jié)數(shù)組的相互轉(zhuǎn)換


    字節(jié)數(shù)組有助于存儲(chǔ)或傳輸數(shù)據(jù)。同樣,PDF文件格式因其功能和兼容性而廣受歡迎??梢允褂肅#語(yǔ)言將PDF文件轉(zhuǎn)換為字節(jié)數(shù)組,也可以將字節(jié)數(shù)組轉(zhuǎn)換為PDF文件。這可以幫助更有效地在數(shù)據(jù)庫(kù)中存儲(chǔ)和歸檔PDF文件,還可以通過(guò)使用字節(jié)數(shù)組來(lái)序列化數(shù)據(jù)。讓我們探討這些格式的互轉(zhuǎn)換性。

    • 使用C#將PDF文件轉(zhuǎn)換為字節(jié)數(shù)組
    • 使用C#將字節(jié)數(shù)組轉(zhuǎn)換為PDF文件

    點(diǎn)擊下載最新版Aspose.PDF


    使用C#將PDF文件轉(zhuǎn)換為字節(jié)數(shù)組

    可以將PDF轉(zhuǎn)換為字節(jié)數(shù)組,以便傳輸或存儲(chǔ)它以進(jìn)行進(jìn)一步處理。例如,您可能需要序列化PDF文檔,然后將其轉(zhuǎn)換為字節(jié)數(shù)組會(huì)有所幫助。您需要按照以下步驟將PDF轉(zhuǎn)換為字節(jié)數(shù)組:

    • 加載輸入PDF文件
    • 初始化字節(jié)數(shù)組
    • 初始化FileStream對(duì)象
    • 將文件內(nèi)容加載到字節(jié)數(shù)組中

    以下代碼顯示了如何使用C#將PDF文件轉(zhuǎn)換為字節(jié)數(shù)組,其中將所得的ByteArray傳遞給將輸入文件轉(zhuǎn)換為圖像的方法:

    dataDir = @"D:\Test\";
    
    // Load input PDF file
    string inputFile = dataDir + @"testpdf.pdf";
    
    // Initialize a byte array
    byte[] buff = null;
    
    // Initialize FileStream object
    FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
    BinaryReader br = new BinaryReader(fs);
    long numBytes = new FileInfo(inputFile).Length;
    
    // Load the file contents in the byte array
    buff = br.ReadBytes((int) numBytes);
    fs.Close();
    
    // Work with the PDF file in byte array
    ConvertPDFToJPEG(buff, 300, dataDir);
    
    
    public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
    {
        // Open document
        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)) { // Create JPEG device with specified attributes // Width, Height, Resolution, Quality // Quality [0-100], 100 is Maximum // Create Resolution object Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution); // JpegDevice jpegDevice = new JpegDevice(500, 700, resolution, 100); // added the following to determine if landscape or not 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); // Convert a particular page and save the image to stream //Aspose.Pdf.PageSize.A4.IsLandscape = true; jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream); // Close stream imageStream.Close(); } } } }

    使用C#將字節(jié)數(shù)組轉(zhuǎn)換為PDF文件

    讓我們進(jìn)一步進(jìn)行下一步,可以將字節(jié)數(shù)組轉(zhuǎn)換為PDF文件。讓我們通過(guò)將圖像作為字節(jié)數(shù)組轉(zhuǎn)換為PDF文件的示例來(lái)學(xué)習(xí)這一點(diǎn)。您需要按照以下步驟將字節(jié)數(shù)組轉(zhuǎn)換為PDF文件。

    • 加載輸入文件
    • 初始化字節(jié)數(shù)組
    • 將輸入圖像加載到字節(jié)數(shù)組中
    • 初始化Document類的實(shí)例
    • 在PDF頁(yè)面上添加圖像
    • 保存輸出PDF文件

    以下代碼說(shuō)明了如何使用C#以編程方式將字節(jié)數(shù)組轉(zhuǎn)換為PDF文件:

    // Load input file
    string inputFile = dataDir + @"Test.PNG";
    
    // Initialize 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;
    
    // Load input image into Byte Array
    buff = br.ReadBytes((int)numBytes);
    
    
    Document doc = new Document();
    // Add a page to pages collection of document
    Page page = doc.Pages.Add();
    // Load the source image file to Stream object
    MemoryStream outstream = new MemoryStream();
    MemoryStream mystream = new MemoryStream(buff);
    // Instantiate BitMap object with loaded image stream
    Bitmap b = new Bitmap(mystream);
    
    // Set margins so image will fit, etc.
    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);
    // Create an image object
    Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
    // Add the image into paragraphs collection of the section
    page.Paragraphs.Add(image1);
    // Set the image file stream
    image1.ImageStream = mystream;
    
    // Save resultant PDF file
    doc.Save(outstream, SaveFormat.Pdf);
    //doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);
    
    // Close memoryStream object
    mystream.Close();

    還想要更多嗎?您可以點(diǎn)擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問(wèn)或需求,請(qǐng)隨時(shí)加入Aspose技術(shù)交流群(761297826),我們很高興為您提供查詢和咨詢。
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();