0

CGPDFContextCreateWithURL で簡単な pdf を作成しようとしていますが、pdf を表示すると空白になります。私のコード:

 override func viewDidLoad() {
    super.viewDidLoad()

drawSuperPDF("test4.pdf")

   showPDFFile()

}

私の drawSuperPDF() 関数

func drawSuperPDF(filename: String) {

    let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
    let pdfFileName = documentsURL.URLByAppendingPathComponent(filename)
    let fullPath = pdfFileName.path!

    let url = NSURL(fileURLWithPath: fullPath)


    var mediaBox:CGRect = CGRectMake(0, 0, 612, 792)


    let myPDFContext = CGPDFContextCreateWithURL(url, &mediaBox, nil)


    drawHeaders()



CGPDFContextEndPage(myPDFContext)


}

私の drawHeaders() と drawHeaderText() 関数

func drawHeaders() {


    drawHeaderText(CGPoint(x: 30, y:  10), headerText: "Hello World:", underline: true)


    drawHeaderText(CGPoint(x: 30, y: 25), headerText: "Hello World:", underline: true)


    drawHeaderText(CGPoint(x: 30, y: 40), headerText: "Hello World:", underline: true)


    drawHeaderText(CGPoint(x: 30, y: 70), headerText: "Hello World:", underline: true)




}

func drawHeaderText(point: CGPoint, headerText: String, underline: Bool) {

    let drawingPoint = CGPoint(x: point.x, y: point.y)

    if underline {


        var multipleAttributes = [String : NSObject]()
        multipleAttributes[NSFontAttributeName] = UIFont.boldSystemFontOfSize(12)
        multipleAttributes[NSUnderlineStyleAttributeName] = NSUnderlineStyle.StyleSingle.rawValue


        headerText.drawAtPoint(drawingPoint,
            withAttributes: multipleAttributes)


    } else {

        let font = UIFont.systemFontOfSize(12)
        headerText.drawAtPoint(drawingPoint,
            withAttributes: [NSFontAttributeName : font])}

}

そして最後に、私の showPDFFile()

func showPDFFile() {

    let fileName = "test4.pdf"
    let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
    let pdfFileName = documentsURL.URLByAppendingPathComponent(fileName)
    let fullPath = pdfFileName.path!
    let webView : UIWebView = UIWebView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height))
    let url : NSURL = NSURL(fileURLWithPath: fullPath)
    let request : NSURLRequest = NSURLRequest(URL: url)

    webView.scalesPageToFit = true
    webView.loadRequest(request)

    self.view.addSubview(webView)


}
4

1 に答える 1

0

PDF ページで描画を開始する前に、 を呼び出してページを「開始」する必要がありますCGPDFContextBeginPage。ちなみに、開始ページと終了ページの呼び出しはバランスを取る必要があります。

于 2016-03-05T18:38:06.460 に答える