SetAbsolutePosition从底部开始?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SetAbsolutePosition从底部开始?相关的知识,希望对你有一定的参考价值。

我正在创建一个PDF,然后我添加了一个图像。

图像是256x256像素,没什么特别的。

我确定了它的位置

nImg.SetAbsolutePosition(30, 30)

但是,图像似乎位于页面的底部。

PDF看起来像这样:

enter image description here

当我调用SetAbsolutePosition(30,30)时,我预计它将被放置在左上角。

这可能会发生什么?

这是完整的代码:

       Dim nFs As System.IO.FileStream = New FileStream(sThis, FileMode.Create)

        Dim nDocument As Document = New Document(PageSize.A4, 25, 25, 25, 25)
        Dim nWriter As PdfWriter = PdfWriter.GetInstance(nDocument, nFs)
        nDocument.Open()

        Dim nCb As PdfContentByte = nWriter.DirectContent
        Dim nImg As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance("d:myimage.png")

        nImg.SetAbsolutePosition(30, 30)
        nCb.AddImage(nImg)

        nDocument.Close()
        nWriter.Close()

        nFs.Close()
答案

首先,您需要知道在哪里可以找到PDF页面的原点:Where is the Origin (x,y) of a PDF page?通常,(0, 0)坐标与左下角重合。当/MediaBox以特殊方式创建时,或者当有/CropBox时,有例外,但似乎并非如此。

然后你需要知道x轴指向右边,y轴指向左边:

enter image description here

这在How should I interpret the coordinates of a rectangle in PDF?问题的答案中有解释

知道:

  1. 起源位于左下角,
  2. y轴指向上方,

(30, 30)位置添加的图像接近页面底部是正常的。

以上是关于SetAbsolutePosition从底部开始?的主要内容,如果未能解决你的问题,请参考以下文章

从底部开始然后向上滚动

UITextView 从底部开始

开始时从底部锚定的 UIScrollview

需要垂直文本从底部开始与横幅左侧对齐

UITextView从文本的底部或中间开始

从底部开始渲染水平列表项