// // SampleTableViewController.swift // PDFGenerator // // Created by Suguru Kishimoto on 2016/02/27. // // import UIKit import PDFGenerator class SampleTableViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() self.tableView.contentInset = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 0.0) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } @objc fileprivate func generatePDF() { do { let dst = NSHomeDirectory() + "/sample_tblview.pdf" try PDFGenerator.generate(self.tableView, to: dst) openPDFViewer(dst) } catch let error { print(error) } } fileprivate func openPDFViewer(_ pdfPath: String) { let url = URL(fileURLWithPath: pdfPath) let storyboard = UIStoryboard(name: "PDFPreviewVC", bundle: nil) let vc = storyboard.instantiateInitialViewController() as! PDFPreviewVC vc.setupWithURL(url) present(vc, animated: true, completion: nil) } // MARK: - Table view data source override func numberOfSections(in tableView: UITableView) -> Int { return 3 } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 10 } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! SampleTableViewCell cell.leftLabel.text = "\((indexPath as NSIndexPath).section)-\((indexPath as NSIndexPath).row)cell" cell.rightLabel.text = "sample" return cell } override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { return "section\(section)" } override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { generatePDF() } /* // Override to support conditional editing of the table view. override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool { // Return false if you do not want the specified item to be editable. return true } */ /* // Override to support editing the table view. override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { if editingStyle == .Delete { // Delete the row from the data source tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade) } else if editingStyle == .Insert { // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view } } */ /* // Override to support rearranging the table view. override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) { } */ /* // Override to support conditional rearranging of the table view. override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool { // Return false if you do not want the item to be re-orderable. return true } */ /* // MARK: - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { // Get the new view controller using segue.destinationViewController. // Pass the selected object to the new view controller. } */ }