我想在每個頁面的右側伯特生成一個PDF文檔中垂直寫入動態文本(2.5.2)動態(背景)圖像報告
這使我變成兩個問題也許可以獨立解決:
- 寫入文本垂直
- 將這個在每個頁面上右邊(頁眉和頁腳不能幫我那裏)
對於問題1)
我無法找到一個方法來垂直書寫文字,所以我決定把我的文字變成一個JLabel,做90度旋轉,圖像寫入到一個ByteArrayOutputStream,並使用ByteArray的添加一個動態圖像到我的報告。 =>這已經是工作,如果有一個簡單的3線解決方案,我沒有想到,我會聽的理由:)
對於問題2)
由於事實上,頁眉和頁腳不適用於右側或左側的圖像/文本我的方法是使用背景圖像並將其放在右側。
的問題是,在BIRT背景圖像只能是一個URL或嵌入式圖像 用我產生的ByteArray我需要使用動態圖像。
所以現在我只能想到一種可能的解決方案:將我生成的圖像保存到具有唯一網址的臨時文件夾中,將此圖像添加爲背景圖像並在之後刪除。 但我認爲應該有一個更簡單的解決方案。
==> UPDATE 1
我創建一個兩列布局添加在右側我的動態圖像。我的報告最多有五頁,因此我在每幅圖像前分頁放置了五次圖像。這是工作,結果如預期...與一個新的問題:
在某些情況下,報告有3或4頁,所以我需要隱藏最後的圖像。我可以通過「reportContext.getPageVariable('pageNumber')」獲得第一列中報表末尾的頁數,並將其保存到我自己的報表變量中。如果數字大於我的最後一個頁碼,五個圖像中的每一個都會得到1到5的數字,並顯示一個隱藏條件。
現在我需要正確的地方,我讓我的PAGENUMBER:
- 在呈現第一列中的最後一個元素得到正確的號碼,但它設置晚於我用它在第二列
- 在渲染行始終返回1,但在使用它在第二列
- 添加第二行會返回正確的頁碼之前設置,但後來比我用它在第二列設置
有誰知道如何做到這一點?
http://eclipse.org/birt/phoenix/deploy/reportScripting.php
==>更新1 END
嗨,馬克,對不起我的遲到的反應,我不得不先解決其他問題,並嘗試了另外兩個我想到的解決方案。 GraphicMasterPages似乎只是爲了這個目的......但還沒有實現。 – ThomasK
第二種方法是通過birt腳本將其加載到內存後添加背景並替換圖像。 – ThomasK
您的想法至少有點幫助,我創建了一個雙列布局,並在每張圖片之前將生成的圖片放置在右列5次,並帶有分頁符。這對於5頁的完整報告來說工作得很好。但在某些情況下,報告可能有3或4頁。我會爲這個問題添加一個新的迴應。 – ThomasK