Search code examples
iosswiftpdfkit

iOS PDF Kit - Full Size Page


I want to create a pdf document with full size page. It doesn't fill the whole page. How can I fix it.

class PDFAssortmentExporter: NSObject {
        
    var metaDataPDF: PDFMetaData
    lazy var pageWidth : CGFloat  = {
        return 11 * 72.0
    }()

    lazy var pageHeight : CGFloat = {
        return 8.5 * 72.0
    }()

    lazy var pageRect : CGRect = {
        CGRect(x: 0, y: 0, width: pageWidth, height: pageHeight)
    }()

    lazy var marginPoint : CGPoint = {
        return CGPoint(x: 10, y: 10)
    }()

    lazy var marginSize : CGSize = {
        return CGSize(width: self.marginPoint.x * 2 , height: self.marginPoint.y * 2)
    }()
    
    init(metaDataPDF: PDFMetaData) {
        self.metaDataPDF = metaDataPDF
    }
    
    func prepareData() -> Data {
        
        let pdfMetaData = [
            kCGPDFContextCreator: metaDataPDF.contextCreatorPDF,
            kCGPDFContextAuthor: metaDataPDF.authorPDF,
            kCGPDFContextTitle: metaDataPDF.contextTitle
        ]

        let format = UIGraphicsPDFRendererFormat() 
        format.documentInfo = pdfMetaData as [String: Any]
        
        let renderer = UIGraphicsPDFRenderer(bounds: pageRect, format: format)

        
        let data = renderer.pdfData { (context) in

        }
        
        return data
    }
}

enter image description here


Solution

  • Change the displayMode to single page for pdfView

    pdfView.displayMode = .singlePage
    pdfView.displayDirection = .vertical
    pdfView.autoScales = true
    //pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit
    pdfView.usePageViewController(true, withViewOptions: nil)