从UIView转换时,Pdf不完整

时间:2015-11-03 14:00:17

标签: ios swift uiview pdf-generation

我需要以PDF格式生成报告并将其打印出来。我生成一个包含所有信息的视图并将其转换为pdf,然后在UIWebView中显示pdf文件。但是当我在UIWebView中看到Pdf文件时,文件不完整(右侧区域的很大一部分和机器人区域被切断)。当我将UIView转换为Pdf或UIWebView正在削减它时,我不知道func createPDFfromUIView(aView: UIView) //-> UIImage { let pdfData = NSMutableData() UIGraphicsBeginPDFContextToData(pdfData, aView.frame, nil) UIGraphicsBeginPDFPage() let pdfContext = UIGraphicsGetCurrentContext(); aView.layer.renderInContext(pdfContext!) UIGraphicsEndPDFContext(); let documentsDirectory: NSString = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask,true)[0] as NSString let dataPath = documentsDirectory.stringByAppendingPathComponent("/JamaWEpdf") if (!NSFileManager.defaultManager().fileExistsAtPath(dataPath as String)) { do{ try NSFileManager.defaultManager().createDirectoryAtPath(dataPath, withIntermediateDirectories: false, attributes: nil) } catch _{} } let filePath = "\(dataPath)entry\(entry1.entryId)pdf.pdf" pdfData.writeToFile(filePath, atomically: true) let webView = UIWebView() webView.loadRequest(NSURLRequest(URL: NSURL(fileURLWithPath: filePath))) webView.frame = self.view.frame self.view.addSubview(webView) } 是否太大了。

PDF功能

UIView

我不知道我的方法是否正确。 {{1}}大小为w:2480小时:3508。

1 个答案:

答案 0 :(得分:0)

我正在以编程方式生成视图,所以当执行此行时:

UIGraphicsBeginPDFContextToData(pdfData, aView.frame, nil)

框架未渲染或其他东西。所以我使用了一个我想要的CGRect,它可以工作:

UIGraphicsBeginPDFContextToData(pdfData, CGRect(x: 0, y: 0, width: 2480, height: 3508), nil)