我的照片是在第2页中创建的,但在插入之前创建了paragrah(第1页)

时间:2018-03-05 08:24:22

标签: image itext

我使用了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));

这是我的应用程序的应用程序序列:

  1. 占据页面高度80%的段落
  2. 图片(有时适用于第1页,有时第2页)
  3. 一行文字
  4. 如果图片高于页面的其余部分,则为PDF结果:

    1. Parapgraph
    2. 一行文字
    3. 图片
    4. 在任何情况下,我想要图片后面的图片名称。我是如何解决这个问题的?

      非常感谢

2 个答案:

答案 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);