TPPDF
TPPDF is an Open Source side-project of techprimate. As we are currently working on multiple other projects, we only have limited time for fixing bugs and enhancing TPPDF.
That's why any issue reporting and especially Pull Requests are very welcome!
If you need professional support for your company, you can reach out to @philprimes on Twitter or on our website techprimate.com! This is mainly for custom or high-priority requests, therefore we won't publish a consulting pricing for now.
What's new?
TPPDF 2.0 brings a lot of new features and small tweaks. Here are some of the biggest ones:
- [x] Swift Package Manager Support
- [x] Table with cell merging
- [x] Table cell content wraps on page breaks
- [x] Hyperlinks in attributed strings
- [x] Native progress tracking using
Foundation.Progress
- [x] Instance-based generators, so you can generate multiple documents at the same time
Features
- [x] Page header and footer
- [x] Dynamic content layout with page alignment
- [x] Support for tables and cell alignment
- [x] Attributed strings
- [x] Custom spacing
- [x] Image support
- [x] Horizontal line separators
- [x] Custom indentation
- [x] Custom top offset (good for layered rendering)
- [x] Pagination
- [x] Image caption
- [x] Compress images
- [x] Custom image size fit
- [x] Images in the header and footer
- [x] Horizontal line separators in the header and footer
- [x] Generate PDF files directly to handle large PDF files (Details)
- [x] PDF metadata
- [x] Custom table styling
- [x] Multi-column sections
- [ ] Documentation
Communication
If you need help, use Stack Overflow. (Tag 'TPPDF')Just open up another issue, it might lead to better documentation.- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.
Example
To run the example project, run pod try TPPDF
Installation
Requirements
As of TPPDF 2.0 and Swift 5.2, we do not actively support older Swift versions anymore. If you still need an older Swift version, see the following table for their respective branches. Bleed development version can be found on the develop
branch.
Language | Branch | Pod version | Xcode version | iOS version |
---|---|---|---|---|
Swift 4.2 | swift-4.2 | >= 1.3.x | Xcode 10.0+ | iOS 8.3+ |
Swift 4.1 | swift-4.1 | >= 1.0.x | Xcode 9.3 | iOS 8.3+ |
Swift 3.0 | swift-3.0 | >= 0.2.x | Xcode 8 | iOS 8.0+ |
Swift 2.3 | swift-2.3 | 0.1.5 | Xcode 8, Xcode 7.3.x | iOS 8.0+ |
Swift 2.2 | swift-2.2 | 0.1.4 | Xcode 7.3.x | iOS 8.0+ |
CocoaPods
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
To integrate TPPDF into your Xcode project using CocoaPods, specify it in your Podfile
:
source 'https://cdn.cocoapods.org/'
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'TPPDF'
end
Then, run the following command:
$ pod install
Carthage
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate TPPDF into your Xcode project using Carthage, specify it in your Cartfile
:
github "techprimate/TPPDF" ~> 1.4
Run carthage update
to build the framework and drag the built TPPDF.framework
into your Xcode project
Swift Package Manager
Swift Package Manager is now supported for iOS. macOS support is a requested feature and work-in-progress.
Linux support is not available, as UIKit
is not available on linux.
Once you have your Swift package set up, adding TPPDF as a dependency is as easy as adding it to the dependencies
value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/techprimate/TPPDF", .upToNextMajor(from: "2.0.0"))
]