0

I want to change the starting position of the first page of the table I created

for the first page created

let pageRect = CGRect(x: 0, y: 150, width: pageWidth, height: pageHeight)

for other created pages

let pageRect = CGRect(x: 0, y: 0, width: pageWidth, height: pageHeight)

i want to use how do i do this

for detailed code : Swift 5 - How to create table in PDF with PDFKit

class PDFCreator: NSObject {
let defaultOffset: CGFloat = 20
let tableDataHeaderTitles: [String]
let tableDataItems: [TableDataItem]

init(tableDataItems: [TableDataItem], tableDataHeaderTitles: [String]) {
    self.tableDataItems = tableDataItems
    self.tableDataHeaderTitles = tableDataHeaderTitles
    
}

func create() -> Data {
    
    let pageWidth = 8.5 * 72.0
    let pageHeight = 11 * 72.0
    let pageRect = CGRect(x: 0, y: 0, width: pageWidth, height: pageHeight)
    let renderer = UIGraphicsPDFRenderer(bounds: pageRect, format: UIGraphicsPDFRendererFormat())
    let numberOfElementsPerPage = calculateNumberOfElementsPerPage(with: pageRect)
    let tableDataChunked: [[TableDataItem]] = tableDataItems.chunkedElements(into: numberOfElementsPerPage)
    let data = renderer.pdfData { context in
        for tableDataChunk in tableDataChunked {
            context.beginPage()
            
            if pdfHeaderStatus==false {

                let baslikTasarım = [
                    NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 17),
                    NSAttributedString.Key.foregroundColor: UIColor(red: 32.0/255.0, green: 161.0/255.0, blue: 218.0/255.0, alpha: 1.0)
                ]
                
                let altBaslık = [
                    NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 11),
                    NSAttributedString.Key.foregroundColor: UIColor.black
                ]

                let unvanTarih = [
                    NSAttributedString.Key.font: UIFont.systemFont(ofSize: 11),
                    NSAttributedString.Key.foregroundColor: UIColor.black
                ]
                
                let image = UIImage(named: "forgotpassword")
                let che = "CARİ   HESAP   EKSTRESİ"
                let text = "TARİH: "
                let alici = "ALICI: "
                let tarih = "\(bastarihTitle) - \(bittarihTitle)"
                let unvans = "\(unvanTitle)"
                che.draw(at: CGPoint(x: 30, y: -120), withAttributes: baslikTasarım)
                alici.draw(at: CGPoint(x: 30, y: -70), withAttributes: altBaslık)
                text.draw(at: CGPoint(x: 30, y: -20), withAttributes: altBaslık)
                image?.draw(at: CGPoint(x: 300, y: -120))
                tarih.draw(at: CGPoint(x: 110, y: -20), withAttributes: unvanTarih)
                unvans.draw(at: CGPoint(x: 110, y: -70), withAttributes: unvanTarih)
                
                let cgContext = context.cgContext
                print("cgContext", cgContext)
                drawTableHeaderRect(drawContext: cgContext, pageRect: pageRect)
                drawTableHeaderTitles(titles: tableDataHeaderTitles, drawContext: cgContext, pageRect: pageRect)
                drawTableContentInnerBordersAndText(drawContext: cgContext, pageRect: pageRect, tableDataItems: tableDataChunk)

                pdfHeaderStatus=true
                
            }
                    let cgContext = context.cgContext
                    drawTableHeaderRect(drawContext: cgContext, pageRect: pageRect)
                    drawTableHeaderTitles(titles: tableDataHeaderTitles, drawContext: cgContext, pageRect: pageRect)
                    drawTableContentInnerBordersAndText(drawContext: cgContext, pageRect: pageRect, tableDataItems: tableDataChunk)
            
        
        }
    }
    
    return data
}


func calculateNumberOfElementsPerPage(with pageRect: CGRect) -> Int {
    print("defaultOffset",defaultOffset)
    let rowHeight = (defaultOffset * 3)
    let number = Int((pageRect.height - rowHeight) / rowHeight)
    print("number",number)
    return number
}}

The header and table of the code I wrote works fine. but i can't change xy locations it won't let me MyPDFTable

4

0 回答 0