libtesseract

Swift Tools Version Badge ios platform badge catalyst platform badge macOS platform badge Build

此库已停止维护,不会再有任何更新。

如果你的应用需要OCR支持,我建议你使用苹果官方的方案,即使用Apple Vision框架的文本识别功能。如果苹果不支持你的语言,我建议你fork这个项目并自行维护。如果你需要帮助迁移到其他解决方案或维护你自己的fork,你或你的公司可以联系我安排一份合同协议。


此仓库包含编译Tesseract及其依赖项的构建脚本,以便将其作为Swift包分发到Apple平台。它的主要目标是帮助将SwiftyTesseract迁移为可作为Swift Package Manager依赖项使用。如果你正在寻找一种快速开始在你的Apple平台应用程序中使用Tesseract的方法,而无需处理内存管理的粗糙边缘和C语言互操作,那么你应该从SwiftyTesseract开始。

安装

添加 libtesseract 作为 Swift Package 依赖项

// Package.swift
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription

let package = Package(
  name: "AwesomePackage",
  platforms: [
    // These are the minimum versions libtesseract supports
    .macOS(.v10_13),
    .iOS(.v11),
  ],
  products: [
    .library(
      name: "AwesomePackage",
      targets: ["AwesomePackage"]
    ),
  ],
  dependencies: [
    .package(url: "https://github.com/SwiftyTesseract/libtesseract.git", from: "0.2.0")
  ],
  targets: [
    .target(
      name: "AwesomePackage",
      dependencies: ["libtesseract"],
      linkerSettings: [.linkedLibrary("z"), .linkedLibrary("c++")]
    ),
  ]
)

// AwesomePackage.swift
import libtesseract

其他必需配置

你必须链接以下库

这可以在基于 Xcode 的项目中通过在 Build Phases -> Link Binary with Libaries 中添加它们来完成 screenshot of xcode linking libc++ and libz

在 Swift Package Manager 项目中,可以通过将以下内容添加到你的目标 linkerSettings 中来实现此目的

// See Package.swift example above for full context
  targets: [
    .target(
      name: "AwesomePackage",
      dependencies: ["libtesseract"],
      linkerSettings: [.linkedLibrary("z"), .linkedLibrary("c++")]
    ),
  ]

请参阅 SwiftyTesseract 的 附加配置 说明,了解有关包含语言训练数据文件的注意事项。

构建依赖项

如果你想从源代码构建 libtesseract,你需要在你的机器上安装 automakepkg-configtask。 这些可以通过 homebrew 安装

brew install automake pkg-config go-task/tap/go-task

要构建用于分发的库,请运行 task build-tesseract-xcframework-zip

归属

libtesseract 以二进制形式分发以下依赖项