如何通过pdfContentByte获取页面宽度和高度

时间:2017-07-17 03:44:07

标签: c# itext

我遇到了一个关于如何获得宽度和高度的问题 pdf文件。代码段如下:

class Program
{
    static void Main(string[] args)
    {
            Stream inputPdfStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
            Stream outputPdfStream = new FileStream(fileOutPath, FileMode.Create, FileAccess.Write, FileShare.None);
            Stream inputImageStream = new FileStream("some_image.jpg", FileMode.Open, FileAccess.Read, FileShare.Read)
            PdfReader reader = new PdfReader(inputPdfStream);
            var stamper = new PdfStamper(reader, outputPdfStream);
            var pdfContentByte = stamper.GetOverContent(1); //stamper.GetOverContent(pageNum)
            Image image = Image.GetInstance(inputImageStream);
            image.SetAbsolutePosition(100, 100);
            pdfContentByte.AddImage(image);
            stamper.Close();
    }
}

我尝试在我想要的pdf上创建水印,但我需要的是 如何获得原始pdf的正确宽度和高度 让我可以将图像设置在正确的位置。 是否可以通过pdfContentByte来实现,或者有一些 其他方式来做到这一点。非常感谢。

1 个答案:

答案 0 :(得分:2)

  

是否可以通过pdfContentByte

来实现

没有。 PdfContenByte实例表示一个非常大的画布,其中一部分最终显示为页面(或表单XObject或注释或...)。

您可以使用PdfReader方法GetCropBox检索该部分的位置和大小,并提供相关的页码作为参数。