测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可 | MIT |
发布最新发布 | 2017年9月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✗ |
由 Nutchaphon Rewik 维护。
SimplePDF 是用 Swift 编写的 UIGraphics PDF context 的封装。
您可以
总之,您可以轻而易举地创建简单的 PDF。
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)
查看结果 example.pdf,它是从 ExampleCode.swift 生成的。
通过 Cocoapods
use_frameworks!
pod 'SimplePDF'
import SimplePDF
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)
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)
您可以选择水平或垂直布局
// 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)
使用定义来定义表格布局
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)
pdf.beginNewPage() // Begin a new page
以下命令将影响您在调用后的所有写入内容。
pdf.setContentAlignment(.Center) // .Left, .Center, .Right
let pdfData = pdf.generatePDFdata()
// write to file
try? pdfData.writeToFile(path, options: .DataWritingAtomic)
// or upload to Internet
// For example, Alamofire.upload(...)
SimplePDF 可在MIT 许可协议下使用。
Nutchaphon Rewik