c# - 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 页,但没有生成
解决方案
推荐阅读
- spring-webflux - 如何使用 Spring Webflux 创建列表流?
- google-play - Google Play 上的应用提供的订阅产品是否可以在任何地方公开显示?
- amazon-web-services - 实施 AWS Lambda 的首选请求处理程序接口
- javascript - 如何通过 jQuery 替换一段字符串?
- r - 在 *for* 函数中,我可以保持堆叠值吗?
- http - LotusScript GetDocumentByURL 未在计划代理中进行身份验证
- c++ - std::optional 是否更改函数的签名?
- dataframe - 使用 ID 文件替换数据集中的某些列,然后打印整个数据集
- reactjs - “点安装-e。” 相当于 npm/typescript/react
- javascript - Meteor.js 中的函数在包装在另一个函数中时总是返回 False