我使用了itextsharp(itext),我设置了这样的图片:
img = iTextSharp.text.Image.GetInstance(Server.MapPath("~/Areas/ActionPlan/uploads/") + doc.path);
float width = (document.PageSize.Width / 100 * 88) / 2; // half width of the page
float height = width / img.Width * img.Height;
img.ScaleAbsoluteWidth(width);
img.ScaleAbsoluteHeight(height);
document.Add(img);
这样的文字:
document.Add(new Chunk(Environment.NewLine));
document.Add(new Paragraph("Document : " + doc.path, times));
这是我的应用程序的应用程序序列:
如果图片高于页面的其余部分,则为PDF结果:
在任何情况下,我想要图片后面的图片名称。我是如何解决这个问题的?
非常感谢答案 0 :(得分:2)
调用writer.StrictImageSequence = true
以确保文本和图像的打印顺序与添加的顺序相同。
https://developers.itextpdf.com/question/why-arent-images-added-sequentially的更多信息。
答案 1 :(得分:0)
最后,我检查图像高度和剩余空间。如果没有剩余空间,我会创建一个分页符。
img = Image.GetInstance(Server.MapPath("~/Areas/Audit/uploads/") + item.link);
float width = (document.PageSize.Width / 100 * 88) / 2; // resize picture to half width of the page
float height = width / img.Width * img.Height;
img.ScaleAbsoluteWidth(width);
img.ScaleAbsoluteHeight(height);
if ((pdfWriter.GetVerticalPosition(false) - document.BottomMargin) < height)
{
document.NewPage();
}
document.Add(img);