2016-11-18 409 views
0

抱歉,您可能不瞭解我的問題,因爲我不擅長英語。 我想在pdf的頂部和底部添加一些標籤,但標籤位置可以設置minus。如果我設置了一個減號,我應該使其更大以設置標籤。 我從How to resize existing pdf page size 的幫助來改變我的pdf pagesize,然後我遇到了另一個問題,當我設置lly爲
減去,我的文本被截斷,然後我想添加底部長度到頂部,但我不知道如何向上移動文本以使文本居中。如何通過itext更改PDF中的現有文本位置

鍵碼

float newTop = rectangle.getTop(); 
        if (printSet.getHeaderMargins() < 0) { 
         newTop += height2Offset(PrintSet.defaultMargins - printSet.getHeaderMargins()); 
         headMargins = height2Offset(PrintSet.defaultMargins); 
        } 
        if (printSet.getFooterMargins() < 0) { 
         newTop += height2Offset(PrintSet.defaultMargins - printSet.getFooterMargins()); 
         footMargins = height2Offset(PrintSet.defaultMargins); 
        } 
        float[] newBoxValues = new float[] { 
          rectangle.getLeft(), 
          rectangle.getBottom(), 
          rectangle.getRight(), 
          newTop 
        }; 
        PdfArray newBox = new PdfArray(newBoxValues); 
        PdfDictionary pageDict = reader.getPageN(page + 1); 
        pageDict.put(PdfName.CROPBOX, newBox); 
        pageDict.put(PdfName.MEDIABOX, newBox); 

enter image description here

+0

我花很多時間畫一幅美麗的圖畫來形容我的quesiton!哦,如此強大 –

+0

*「然後我遇到了另一個問題,當我將lly設置爲 減號時,我的文本被截斷了」* - 因此,這是您的實際問題,應該是您問題的焦點,因爲*「要添加底部長度到頂部「*和*」將文本向上移動以使文本居中「*是解決該問題的一種不必要的複雜方式。 – mkl

回答

0

目前,要定義一個新的頁面大小是這樣的:

float[] newBoxValues = new float[] { 
    rectangle.getLeft(), 
    rectangle.getBottom(), 
    rectangle.getRight(), 
    newTop 
}; 

這將創建一個更大的矩形,而是矩形只擴大頁朝着頂部。

我想你應該創建新的矩形像這樣:

float[] newBoxValues = new float[] { 
    rectangle.getLeft(), 
    rectangle.getBottom() - extramarginBottom, 
    rectangle.getRight(), 
    rectangle.getTop() + extramarginTop 
}; 

我不能幫你定義的extramarginBottom價值和extramarginTop,因爲我不知道你的height2Offset()方法是應該做的,也不是什麼PrintSet.defaultMargins,printSet.getHeaderMargins()printSet.getFooterMargins()

基本上extramarginTop是在頂部要添加的高度,而extramarginBottom是在底部添加高度:

enter image description here

+0

我已經通過你的方法解決了這個問題。不用關心height2Offset()方法,它只是將頁面的實際長度改爲像素,就像A4頁面真實長度210mm×297mm到841×594一樣。感謝您的回答。 –