2013-10-31 67 views
0

我正在用標籤,表格和圖表創建PDF。我沒有問題繪製圖像和文字,但我有自定義的PDF圖表UIViews如何轉換單個UIView,以便可以在現有的PDF中繪製它?

當前上下文首先設置爲繪製PDF,並且這裏的大多數問題都與此有關。但是我說的是,一旦你已經在繪製一個PDF,你如何添加一個額外的視圖,就像你會添加一行文本或圖像一樣。即我想添加一個包含餅圖的UIView到我正在創建的PDF中。

我試圖將視圖轉換爲圖像,但它的分辨率相當低,您可以播種像素化,而如果直接繪製它,它會使用矢量圖形,並且出來更加清晰。

PieChartView來自一個開源的github庫。經理是我寫的一個簡單的自定義類來管理它。

CGRect frame = CGRectMake(PAGE_WIDTH/2 - pieWidth/2, origin.y, pieWidth, pieHeight); 
PieChartView* pie = [[PieChartView alloc] initWithFrame:frame]; 
PieChartManager* pieManager = [[BPPieChartManager alloc] initWithData:data]; 
pie.delegate = pieManager; 
pie.datasource = pieManager; 
[pie.layer drawInContext:UIGraphicsGetCurrentContext()]; 

這會導致餅圖填充整個PDF頁面。這並不奇怪,因爲它的圖層不包含有關框架的信息。

我想我應該使用CGContextTranslateCTMCGContextScaleCTM重新定位,但我不確定是否沒有更簡單的方法,再加上我不知道如何使用它們來獲得我想要的。

感謝您的幫助

編輯:我嘗試了畫大餅是這樣的:

[pie drawRect: frame]; 

,吸引餡餅在頁面的左上角,在那的預期大小。我如何得到它我想要的地方?框架包含我想要的地方的起源,那爲什麼它把它放在左上角?

回答

0

它看起來好像在pdf中呈現的自定義UIView將始終從(0,0)開始。 您可以爲pdf頁面的整個框架添加餅圖視圖,並在UIView的drawRect函數的自定義較小框架中繪製實際的餅圖,並使剩餘區域透明。

相關問題