iT邦幫忙

0

用PDFKit產生的PDF,如何在上面繪製折線圖

大家好
我是接觸swift的新手
我需要產生PDF且上面繪製折線圖
我產生PDF是用PDFKit,這部分沒問題
但是折線圖....
我是用charts來繪製折線,但沒辦法顯示在PDF上
懇求各位大神給點方向
是該換其他時麼套件嗎?

以下是不成功的code

func addChart(){
//        var chartView: LineChartView!
        let chartView = LineChartView()
        let points = [30.65, 30.68, 30.61, 30.62, 30.60, 30.68, 30.60, 30.69, 30.57, 30.55]
        let entries: [ChartDataEntry] = points.enumerated().map {
            return ChartDataEntry.init(x: Double($0), y: Double($1))
        }

        // 建立 LineChartDataSet
        let set = LineChartDataSet.init(entries: entries, label: "即期買進")

        // 設定 chart.data
        let data = LineChartData(dataSets: [set])
        chartView.data = data

//        print(chartView)

本來想轉成UIImage,在顯示再PDF上的,但不成功(type)問題
//        let image = UIImage(data: data)
//        let image:UIImage = chartView.getChartImage(transparent: true) ??
        
//        print(image)
        
       
            let chartViewRect = CGRect(x: 50, y: 50,
            width: 50, height: 50)
           
        chartView.draw(chartView)
        
        }
    
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2020-10-20 07:27:01
最佳解答

參考這篇在 PDFKit 中畫線
如果能將 LineChart 「轉」過去用最好
萬一不行又找不到答案
就只好自己「手工」打造了

另外,點這裡是我這次鐵人賽唯一的一篇文章,喜歡的話左上角點 Like

0
Leo
iT邦新手 5 級 ‧ 2020-10-20 13:45:50

先把 UIView 轉成圖片再放到 PDF 中的想法應該可以
不過實際上的做法應該是擴展 UIView ,你一開始的方法是將 dataSet 傳給 Image ,雖然都叫 data 但他們其實是不同東西,dataSet 的資料是 chart 所需要的結構,Image 的是圖片轉成的 binary data
可以參考這篇 swift 截圖功能 - 擴展UIView

我要發表回答

立即登入回答