2017-07-17 410 views
0

我遇到了一個關於如何獲取 pdf文件的寬度和高度的問題。該代碼片段如下:如何通過pdfContentByte獲取頁面寬度和高度

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進行該操作,或者有其他方式可以做到這一點。非常感謝。

回答

2

這有可能使經由pdfContentByte

編號A PdfContenByte實例代表一個非常大的帆布其中只有最終顯示頁面中的部分(或窗體X對象或註釋或... )。

您可以使用PdfReader方法GetCropBox提供該問題的頁碼作爲參數來檢索該部分的位置和大小。