pdfContentByte 類 圖像和文本的絕對位置


在PDF中當涉及到布局問題時(不再是自動地添加文本、圖片等等,對元素在頁面上的位置有一定的要求),有時我們希望將一些圖像或者文本放置在某頁的指定位置,為實現該功能,我們將使用PdfContentByte類。

PdfContent對象可以通過在使用Writer對象中使用getDirectContent()方法來得到該對象。例:

PdfWriter writer= PdfWriter.GetInstance(document, new FileStream("D:\\hellowrold.pdf", FileMode.OpenOrCreate));

PdfContentByte cb=writer.DirectContent;

簡單圖形的繪制:

我們可以使用諸如moveTo和lineTo方法移動到頁面上當前位置然后畫一條直線到其他位置。例如

cb.LineWidth=10f;

cb.moveTo(100,700);

cb.lineTo(200,800);

cb.stroke();

 模板(Form xObjects)

在頁眉和頁腳的解決方案時,我們可以選擇定義一小塊添加到每一頁的信息,實際上,該小塊信息寫到了文件的每一個新頁上。這並不是最經濟的解決方案,更好的方法是將該信息作為一個Form Xobject 僅在文檔中添加一次,在其可見位置重復出現。

1.創建一個PdfTemplate

2.創建PdfTemplate的最好方法是調用pdfContentByte對象中的createTemplate方法:PdfTemplate template=cb.createTemplate(500,200);

這樣,該模板的寬度為500,高度為200。通過該模板我們可以做像PdfContentByte同樣的事情

template.moveTo(0,200);

template.lineTo(500,0);

template.stroke();

添加一個文檔到模板,通過下面一樣在絕對位置添加一個模板

cb.addTemplate(template,0,400);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM