SimplePDF alternatives and similar libraries
Based on the "Utility" category.
Alternatively, view SimplePDF alternatives based on common mentions on social networks and blogs.
-
SwifterSwift
A handy collection of more than 500 native Swift extensions to boost your productivity. -
R.swift
Strong typed, autocompleted resources like images, fonts and segues in Swift projects -
SwiftGen-Storyboard
The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs! -
SwiftGen
The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs! -
Dollar
A functional tool-belt for Swift Language similar to Lo-Dash or Underscore.js in Javascript -
swift-protobuf
Plugin and runtime library for using protobuf with Swift -
EZSwiftExtensions
:smirk: How Swift standard types and classes were supposed to work. -
DifferenceKit
💻 A fast and flexible O(n) difference algorithm framework for Swift collection. -
Result
Swift type modelling the success/failure of arbitrary operations. -
DeepDiff
🦀Amazingly incredible extraordinary lightning fast diffing in Swift -
Device
Light weight tool for detecting the current device and screen size written in swift. -
SwiftLinkPreview
It makes a preview from an URL, grabbing all the information such as title, relevant texts and images. -
WhatsNew
Showcase new features after an app update similar to Pages, Numbers and Keynote. -
Codextended
Extensions giving Swift's Codable API type inference super powers 🦸♂️🦹♀️ -
Popsicle
Delightful, extensible Swift value interpolation framework. -
SwiftyJSONAccelerator
macOS app to generate Swift 5 code for models from JSON (with Codeable) -
Playbook
📘A library for isolated developing UI components and automatically taking snapshots of them. -
ReadabilityKit
Preview extractor for news, articles and full-texts in Swift -
Compass
:earth_africa: Compass helps you setup a central navigation system for your application -
ObjectiveKit
Swift-friendly API for a set of powerful Objective C runtime functions. -
Bow
🏹 Bow is a cross-platform library for Typed Functional Programming in Swift -
Pythonic.swift
Pythonic tool-belt for Swift – a Swift implementation of selected parts of Python standard library. -
Prototope
Swift library of lightweight interfaces for prototyping, bridged to JS.
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of SimplePDF or a related project?
README
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](Assets/example.pdf), which is generated from [ExampleCode.swift](ExampleCode.swift).
Installation
via Cocoapods
use_frameworks!
pod 'SimplePDF'
Usage
import SimplePDF
Page Setup
[page setup](Assets/page_setup.png)
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
// 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
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](LICENSE).
Authors
Nutchaphon Rewik
*Note that all licence references and agreements mentioned in the SimplePDF README section above
are relevant to that project's source code only.