首页 > 解决方案 > iTextSharp 正在生成单页 pdf

问题描述

将二进制“data:image/jpeg;base64”转换为 pdf 但没有得到正确的输出,我的二进制字符串很长,其中包含 10 页 pdf,图像 url 我得到完整的图像,但是当我生成 ToBase64String 到 pdf 然后只有一页

string folderPath = Server.MapPath("~/ImageFiles/");
    WebBrowser webrowse = sender as WebBrowser;        
    Bitmap bitmap = new Bitmap(webrowse.Width, webrowse.Height, PixelFormat.Format16bppRgb565);     
    webrowse.DrawToBitmap(bitmap, webrowse.Bounds);    
    MemoryStream stream = new MemoryStream();
    bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
    byte[] strbytes = stream.ToArray();
    imgscreenshot.Visible = true;
    imgscreenshot.ImageUrl = "data:image/jpeg;base64," + Convert.ToBase64String(strbytes);
    string base64 = Convert.ToBase64String(strbytes);          
    byte[] imageBytes = Convert.FromBase64String(base64);
    iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(imageBytes);

    using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream())
    {
        Document document = new Document(PageSize.A4, 88f, 88f, 10f, 10f);
        PdfWriter writer = PdfWriter.GetInstance(document, stream);
        document.Open();
        document.Add(image);
        document.Close();
        byte[] bytes = memoryStream.ToArray();
        memoryStream.Close();

        Response.Clear();
        Response.ContentType = "application/pdf";
        Response.AddHeader("Content-Disposition", "attachment; filename=Image.pdf");
        Response.ContentType = "application/pdf";
        Response.Buffer = true;
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.BinaryWrite(bytes);
        Response.End();
    }

在下面的图像是单页生成的,也不在中心位置,应该有大约 10 页,但没有生成

在此处输入图像描述

标签: c#asp.netwebformsitext

解决方案


推荐阅读