SetAbsolutePosition从底部开始?

问题描述 投票:0回答:1

我正在创建一个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()
vb.net itext
1个回答
2
投票

首先,您需要知道在哪里可以找到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)位置添加的图像接近页面底部是正常的。

© www.soinside.com 2019 - 2024. All rights reserved.