Skip to content

Repository files navigation

Simple PDF

Platform: iOS 8.0+Language: Swift 4Cocoapods

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

letA4paperSize=CGSize(width:595, height:842)letpdf=SimplePDF(pageSize: A4paperSize)
pdf.addText("Hello World!")
// or
// pdf.addText("Hello World!", font: myFont, textColor: myTextColor)
pdf.addImage( anImage )letdataArray=[["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)letpdfData= 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

letA4paperSize=CGSize(width:595, height:842)letpdf=SimplePDF(pageSize: A4paperSize, pageMargin:20.0)
// or define all margins extra
letpdf=SimplePDF(pageSize: A4paperSize, pageMarginLeft:35, pageMarginTop:50, pageMarginBottom:40, pageMarginRight:35)

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)

Layout

You can layout horizontally and vertically

// Start a horizonal arrangement
pdf.beginHorizontalArrangement()
// Add space from the left
pdf.addHorizontalSpace(60) // now add your text, table, image, ...
// finishe the horizontal arrangement so you can continue vertically
pdf.endHorizontalArrangement()
// adds a vertical space
pdf.addVerticalSpace(70)

Table Definitions

Define the layout of tables with definitions

lettableDef=TableDefinition(alignments:[.left,.left],
columnWidths:[100,300],
fonts:[UIFont.systemFont(ofSize:20),UIFont.systemFont(ofSize:16)],
textColors:[UIColor.black,UIColor.blue])letdata=[] // my data
pdf.addTable(data.count, columnCount:2, rowHeight:25, tableLineWidth:0, // this is taken from the definition
tableDefinition: tableDef, dataArray: data)

Utilities

pdf.beginNewPage() // Begin a new page

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

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

Generate PDF data

letpdfData= 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

Stars

254 stars

Watchers

13 watching

Forks

Releases

Packages

Used by

Contributors

Languages