我的照片是在第2页中创建的,但之后创建的段落是在插入之后(第1页)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的照片是在第2页中创建的,但之后创建的段落是在插入之后(第1页)相关的知识,希望对你有一定的参考价值。

我正在使用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. 一行文字

如果图片高于页面的其余部分,这是PDF结果:

  1. 一行文字
  2. 图片

在任何情况下,我想要图片后面的图片名称。我是怎么解决的?

非常感谢

答案

调用writer.StrictImageSequence = true以确保文本和图像以相同的顺序打印。

有关https://developers.itextpdf.com/question/why-arent-images-added-sequentially的更多信息。

另一答案

最后,我检查图像高度和剩余空间。如果没有剩余空间,我会创建一个分页符。

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

以上是关于我的照片是在第2页中创建的,但之后创建的段落是在插入之后(第1页)的主要内容,如果未能解决你的问题,请参考以下文章

即使令牌是在邮递员中创建的,JWT 令牌也会返回空

ProgrammingError:对象是在线程 id 14408 中创建的,这是线程 id 2776。我无法创建帐户

С++ 中的字符串文字是在静态内存中创建的吗?

调用的突变返回false,但对象是在数据库中创建的

MongoDB 数据库不是在 Kotlin(Ktor) 中创建的

逃逸分析(Escape Analysis)