SetAbsolutePosition从底部开始?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SetAbsolutePosition从底部开始?相关的知识,希望对你有一定的参考价值。
我正在创建一个PDF,然后我添加了一个图像。
图像是256x256像素,没什么特别的。
我确定了它的位置
nImg.SetAbsolutePosition(30, 30)
但是,图像似乎位于页面的底部。
PDF看起来像这样:
当我调用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轴指向左边:
这在How should I interpret the coordinates of a rectangle in PDF?问题的答案中有解释
知道:
- 起源位于左下角,
- y轴指向上方,
在(30, 30)
位置添加的图像接近页面底部是正常的。
以上是关于SetAbsolutePosition从底部开始?的主要内容,如果未能解决你的问题,请参考以下文章