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