Need help with SimplePDF?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

nRewik
212 Stars 48 Forks MIT License 23 Commits 24 Opened issues

Description

Create a simple PDF effortlessly. :smile:

Services available

!
?

Need anything else?

Contributors list

# 274,220
Swift
Shell
C
19 commits
# 588,714
TypeScr...
graphic...
HTML
Shell
1 commit
# 530,996
Shell
C
Ruby
1 commit
# 597,230
Ruby
Objecti...
1 commit
# 153,912
Swift
catalys...
Xcode
swift4
1 commit

Simple PDF

Platform: iOS 8.0+ Language: Swift 4 Cocoapods

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

You can: - [x] add texts, images, spaces and lines, table - [x] set up page layout, adjust content alignment - [x] generate PDF data/file.

In summary, you can create a simple PDF effortlessly. :smile:

Example

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

pdf.addText("Hello World!") // or // pdf.addText("Hello World!", font: myFont, textColor: myTextColor)

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)
// or define all margins extra
let pdf = 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 ```swift // 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 ```swift let tableDef = TableDefinition(alignments: [.left, .left], columnWidths: [100, 300], fonts: [UIFont.systemFont(ofSize: 20), UIFont.systemFont(ofSize: 16)], textColors: [UIColor.black, UIColor.blue])

let data = [] // 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

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.