SimplePDF 3.0.0

SimplePDF 3.0.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新发布2017年9月
SwiftSwift 版本4.0
SPM支持 SPM

Nutchaphon Rewik 维护。



SimplePDF 3.0.0

SimplePDF 是用 Swift 编写的 UIGraphics PDF context 的封装。

您可以

  • 添加文本、图片、空格和线条、表格
  • 设置页面布局,调整内容对齐
  • 生成 PDF 数据/文件。

总之,您可以轻而易举地创建简单的 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

页面设置

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)

写入内容

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

生成 PDF 数据

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