• <menu id="w2i4a"></menu>
  • logo E-iceblue中文文檔

    文檔首頁>>E-iceblue中文文檔>>在C#中將多頁圖像轉(zhuǎn)換為PDF

    在C#中將多頁圖像轉(zhuǎn)換為PDF


    Spire.PDF for .NET 是一款專門對 Word 文檔進行操作的 .NET 類庫。致力于在于幫助開發(fā)人員輕松快捷高效地創(chuàng)建、編輯、轉(zhuǎn)換和打印 Microsoft Word 文檔,而無需安裝 Microsoft Word。

    行號用于在每行文本旁邊顯示 Word 自動計算的行數(shù)。當我們需要參考合同或法律文件等文檔中的特定行時,它非常有用。word中的行號功能允許我們設置起始值、編號間隔、與文本的距離以及行號的編號方式。使用 Spire.Doc,我們可以實現(xiàn)上述所有功能。本文將介紹如何將 XPS 轉(zhuǎn)為PDF 格式。

    Spire.PDF for.NET 最新下載

    歡迎加入spire技術交流群:767755948

    對于將圖像轉(zhuǎn)換為PDF的功能,Spire.PDF可以快速有效地處理。該.NET PDF庫不僅可以將常用格式的圖像轉(zhuǎn)換為PDF文檔,如jpg、bmp、png,還可以將gif、tif和ico圖像轉(zhuǎn)換為PDF。只需在此下載即可。

    要使用Spire.PDF將多頁圖像轉(zhuǎn)換為PDF文件,只需將以下代碼復制到您的應用程序中,并調(diào)用方法ConvertImagetoPDF即可完成。

    步驟1:分割多頁圖像的方法

    Spire.Pdf有一個名為DrawImage的方法將圖像轉(zhuǎn)換為PDF。但它不能直接處理多頁圖像。因此在轉(zhuǎn)換之前,需要將多頁圖像分割成多個單頁圖像。

    [C#]

    1 Guid guid = image.FrameDimensionsList[0];
    2 FrameDimension dimension = new FrameDimension(guid);
    3 int pageCount = image.GetFrameCount(dimension);
    
    這一步是為了獲得多頁圖像中的幀總數(shù)(頁數(shù))。

    [C#]

    1  image.SelectActiveFrame(dimension, i);
    

    這一步是在該圖像對象中選擇一幀圖像。

    [C#]

    1  image.Save(buffer, format);
    
    將所選幀保存到緩沖區(qū)。

    第2步:將圖像轉(zhuǎn)換為PDF

    分割多頁圖像后,Spire.Pdf可以使用DrawImage方法直接將分割后的圖像繪制成PDF。

    [C#]

    1   PdfImage pdfImg = PdfImage.FromImage(img[i])
    以PdfImage格式加載圖像文件。
    [C#]

    1   page.Canvas.DrawImage(pdfImg, x, 0, width, height);
    
    繪制PdfImage到PDF。唯一要做的是指定圖像在PDF上的位置。寬度和高度是圖像將被繪制的區(qū)域的大小。有時我們需要放大或縮小圖像的原始尺寸,直到它適合PDF頁面。x和0是坐標。

    檢查原始TIF文件的有效截圖。

    PDF文件:

    完整演示:

    [C#]

    using Spire.Pdf;
    
    using Spire.Pdf.Graphics;
    
    using System;
    
    using System.Drawing;
    
    using System.Drawing.Imaging;
    
    using System.IO;
    
    namespace ConvertMultipageImagetoPDF
    
    {
    
    class Program
    
    {
    
     static void Main(string[] args)
    
    {
    
    {
    
    ConvertImagetoPDF(@"..\..\Chapter1.tif");
    
    }
    
    }     
    
    public static void ConvertImagetoPDF(String ImageFilename)
    
    {
    
    using (PdfDocument pdfDoc = new PdfDocument())
    
    {
    
    Image image = Image.FromFile(ImageFilename);
    
    Image[] img = SplitImages(image, ImageFormat.Png);
    
    for (int i = 0; i < img.Length; i++)
    
    {
    
    PdfImage pdfImg = PdfImage.FromImage(img[i]);
    
    PdfPageBase page = pdfDoc.Pages.Add();
    
    float width = pdfImg.Width * 0.3f;
    
    float height = pdfImg.Height * 0.3f;
    
    float x = (page.Canvas.ClientSize.Width - width) / 2;
    
    page.Canvas.DrawImage(pdfImg, x, 0, width, height);
    
    }
    
    string PdfFilename = "result.pdf";
    
    pdfDoc.SaveToFile(PdfFilename);
    
    System.Diagnostics.Process.Start(PdfFilename);
    
    }
    
    }
    
    public static Image[] SplitImages(Image image, ImageFormat format)
    
    {
    
    Guid guid = image.FrameDimensionsList[0];
    
    FrameDimension dimension = new FrameDimension(guid);
    
    int pageCount = image.GetFrameCount(dimension);
    
    Image[] frames = new Image[pageCount];
    
    for (int i = 0; i < pageCount; i++)
    
    {
    
    using (MemoryStream buffer = new MemoryStream())
    
    {
    
    image.SelectActiveFrame(dimension, i);
    
    image.Save(buffer, format);
    
    frames[i] = Image.FromStream(buffer);
    
    }
    
    }
    
    return frames;       
    
    }
    
    }
    
    }
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();