首页 > 解决方案 > 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 并再次转换为二进制会产生问题?

当我添加文本时,一切顺利。

标签: c#imageaws-lambdaitext

解决方案


推荐阅读