SetAbsolutePosition从底部开始?

时间:2017-12-20 20:47:31

标签: vb.net itext

我正在创建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()

1 个答案:

答案 0 :(得分: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轴指向上方,
  3. 您在位置(30, 30)添加的图片是否接近页面底部是正常的。