SwiftyHaru

Build Status codecov documentation Language Platform Cocoapods

SwiftyHaru 是一个面向对象的 Swift 封装库,用于 LibHaru,一个用于创建 PDF 文档的 C 语言库。它将 Swift 的安全性带到 Linux、macOS、iOS、watchOS 和 tvOS 等不同平台上创建 PDF 的过程中。

查看 LibHaru 的哪些功能 已经在 FEATURES.md 中实现。

要求

安装

CocoaPods

要在 CocoaPods 中使用最新版本,请将以下内容添加到您的 Podfile

use_frameworks!

pod 'SwiftyHaru'

要使用最新的开发版本

use_frameworks!

pod 'SwiftyHaru', :git => 'https://github.com/WeirdMath/SwiftyHaru.git', :branch => 'dev'

Swift Package Manager

将 SwiftyHaru 作为依赖项添加到您的 Package.swift 中。例如

let package = Package(
    name: "YourPackageName",
    dependencies: [
        .package(url: "https://github.com/WeirdMath/SwiftyHaru.git", from: "0.3.0")
    ]
)

重要提示: 当构建将 SwiftyHaru 作为依赖项的项目时,您需要将 -Xlinker -lz 标志传递给编译器。 这是因为 SwiftyHaru 必须与 zlib 链接(必须安装在您的计算机上)。 例如

$ swift build -Xlinker -lz
$ swift test -Xlinker -lz

文档

在此处获得。

快速入门

import SwiftyHaru

// Initialize stuff
let document = PDFDocument()

try document.addPage(width: 600, height: 400) { context in

    // Construct a path
    let path = Path()
        .moving(toX: 100, y: 100)
        .appendingLine(toX: 400, y: 100)
        .moving(toX: 500, y: 200)
        .appendingArc(x: 400, y: 200, radius: 100, beginningAngle: 90, endAngle: 180)
        .appendingCircle(x: 200, y: 200, radius: 50)
        .moving(toX: 500, y: 200)
        .appendingCurve(controlPoint1: Point(x: 400, y: 200),
                        controlPoint2: Point(x: 400, y: 300),
                        endPoint: Point(x: 500, y: 300))
        .closingSubpath()

    // Paint the path
    context.strokeColor = .blue
    context.stroke(path)

    // Put some text
    context.textLeading = 11
    try context.show(text: "Roses are red,\nViolets are blue,\nSugar is sweet,\nAnd so are you.",
                     atX: 300, y: 200)
}

贡献

构建

$ make debug

$ make release

测试

$ make test

生成 Xcode 项目

由于 Xcode 项目被明确地 gitignored,您可能需要生成它,以便让您的开发更舒适。 这可以通过运行以下命令来完成

make generate-xcodeproj