【发布时间】:2020-10-23 08:18:52
【问题描述】:
当我尝试将旧徽标 (i3screen) 替换为我的徽标时,我得到以下信息:
i3screen 徽标出现在我的未知原因顶部
我的代码:
PdfReader pdfReader = new PdfReader(model.InputFile);
Document document = new Document(pdfReader.GetPageSizeWithRotation(1));
using (MemoryStream ms = new MemoryStream())
{
PdfWriter writer = PdfWriter.GetInstance(document, ms);
document.Open();
PdfContentByte cb = writer.DirectContent;
var pic = AddBlank(model.Blank);
document.Add(pic);
PdfImportedPage page = writer.GetImportedPage(pdfReader, 1);
cb.AddTemplate(page, 0, 0);
document.Close();
writer.Close();
return ms.ToArray();
}
iTextSharp.text.Image AddBlank(byte[] blank)
{
iTextSharp.text.Image pic = iTextSharp.text.Image.GetInstance(blank);
using (MemoryStream imgMs = new MemoryStream(blank))
{
System.Drawing.Image img = System.Drawing.Image.FromStream(imgMs);
}
pic.SetAbsolutePosition(10, 600 + (pic.Height / 2));
return pic;
}
也许,我可以为我的徽标设置布局,高于 i3screen 徽标的布局或其他什么?
【问题讨论】:
-
您是否尝试过先添加导入的页面,然后再添加图像?
-
这是完整的代码。
-
那是否意味着你没有尝试过?那么请做!
-
@mkl 同样的结果
-
啊,我现在才意识到你是通过
Document添加图片和直接将导入页面添加到DirectContent。这可能导致生成的绘图顺序与内容添加顺序不同。请尝试将导入的页面添加到writer.DirectContentUnder而不是writer.DirectContent。