Skip to content

fbonniec/SimplePDF

 
 

Repository files navigation

Simple PDF

Platform: iOS 9.0+ Language: Swift 2 Cocoapods

SimplePDF is a wrapper of UIGraphics PDF context written in Swift.

You can:

  • add texts, images, spaces and lines, table
  • set up page layout, adjust content alignment
  • generate PDF data/file.

In summary, you can create a simple PDF effortlessly. 😄

Example

let A4paperSize = CGSize(width: 595, height: 842)
let pdf = SimplePDF(pageSize: A4paperSize)

pdf.addText("Hello World!")
pdf.addImage( anImage )

let dataArray = [["Test1", "Test2"],["Test3", "Test4"]]
pdf.addTable(rowCount: 2, columnCount: 2, rowHeight: 20.0, columnWidth: 30.0, tableLineWidth: 1.0, font: UIFont.systemFontOfSize(5.0), dataArray: dataArray)

let pdfData = pdf.generatePDFdata()

// save as a local file
try? pdfData.writeToFile(path, options: .DataWritingAtomic)

See the result example.pdf, which is generated from ExampleCode.swift.

Installation

via Cocoapods

use_frameworks!
pod 'SimplePDF'

Usage

import SimplePDF

Page Setup

page setup

let A4paperSize = CGSize(width: 595, height: 842)
let pdf = SimplePDF(pageSize: A4paperSize, pageMargin: 20.0)

Write Something

pdf.addText( "some text" )
pdf.addImage( UIImage )
pdf.addAttributedText( NSAttributedString )
pdf.addLineSeparator(height: 30) // or pdf.addLineSeparator() default height is 1.0
pdf.addLineSpace(20)

Utilities

pdf.beginNewPage() // Begin a new page

These following commands will affect everything you write after you call.

pdf.setContentAlignment(.Center) // .Left, .Center, .Right

pdf.setFont( UIFont ) // only affect pdf.addText(...) command

Generate PDF data

let pdfData = pdf.generatePDFdata()

// write to file
try? pdfData.writeToFile(path, options: .DataWritingAtomic)

// or upload to Internet
// For example, Alamofire.upload(...)

License

SimplePDF is available under the MIT License.

Authors

Nutchaphon Rewik

my twitter

About

Create a simple PDF effortlessly. 😄

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 95.6%
  • Ruby 2.4%
  • Objective-C 2.0%