我以这种方式将图像添加到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以及再次转换为二进制会带来问题?
添加文字后,一切都会好起来。