c# - iTextSharp 图像未在 c# 的 aws lambda 中显示
问题描述
我以这种方式将图像添加到 iTextSharp pdf:
iTextSharp.text.Document doc = new iTextSharp.text.Document(PageSize.A4, 0F,0F, 0F, 0F);
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance("https://s3-eu-west-1.amazonaws.com/foo/bar.png");
img.ScaleToFit(595, 120);
MemoryStream ms = new MemoryStream();
PdfWriter.GetInstance(doc, ms);
doc.Open();
doc.Add(img);
doc.Close();
然后我将其转换为byte[]
,然后再转换为base64 string
,因此它可以由 AWS API Gateway 处理。
byte[] pdf = ms.ToArray();
var headersDic = new Dictionary<string, string>();
headersDic.Add("Content-type", "application/pdf");
headersDic.Add("Content-disposition", "inline;filename=file.pdf");
return new APIGatewayProxyResponse
{
Body = Convert.ToBase64String(pdf),
IsBase64Encoded = true,
Headers = headersDic,
StatusCode = 200
};
但是图像没有显示在 pdf 中,只是其中几乎无法区分的部分,您可以在此处看到这一行:
有任何想法吗?也许转换为 byte[] 或 base64 并再次转换为二进制会产生问题?
当我添加文本时,一切顺利。
解决方案
推荐阅读
- typescript - Typescript 声明合并 Express 请求对象和 Passport.js 用户/会话
- amazon-web-services - 通过命令行使用 EC2 服务在 AWS 平台上部署开源 Jitsi 视频会议解决方案时出错
- android - 使用新的 FragmentStateManager 时不运行片段进入动画
- flutter - 水平可滚动图表性能不佳
- oracle - 从 oracle 中的触发器进行审计
- pandas - 尽管存在 if 条件,但数据帧值相同
- r - 使用具有非数值变量的 if else 语句
- c++ - 我正在尝试使用 cpp 计算球体的公式
- spring - Spring UriComponentsBuilder
- c++ - 使用异步是否总是让 C++ 代码更快