sabioweb/ocr-space-package
Composer 安装命令:
composer require sabioweb/ocr-space-package
包简介
A pure PHP OCR package using OCR.Space API - Developed by Sabioweb Team
README 文档
README
A pure PHP OCR package for extracting text from images and PDF files using OCR.Space API.
Developer: Sabioweb
Author: Ramezanzadeh
🇮🇷 Read in Persian / خواندن به فارسی
Installation
Install via Composer
composer require sabioweb/ocr-space-package
Install via Git
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/sabioweb/OcrSpace-Package.git"
}
],
"require": {
"sabioweb/ocr-space-package": "dev-main"
}
}
Features
- ✅ Extract text from images (JPG, PNG)
- ✅ Extract text from PDF files
- ✅ Extract text from image and PDF URLs
- ✅ Support for multiple languages (Persian, English, Arabic, etc.)
- ✅ Advanced OCR settings
- ✅ Error handling and exceptions
- ✅ Compatible with PHP 8.3+
- ✅ Framework-independent (Pure PHP)
Usage
Basic Usage: Extract Text from Image File
<?php require 'vendor/autoload.php'; use Sabioweb\Ocr\SBOClient; use Sabioweb\Ocr\SBORequestBuilder; // Create client (API Key is optional) $client = new SBOClient('YOUR_API_KEY'); // Extract text from image file $builder = new SBORequestBuilder(); $response = $client->recognizeFromFile( $builder ->setFile('/path/to/image.jpg') ->setLanguage('fas+eng') ->build() ); echo $response->getText(); echo "\nConfidence: " . $response->getConfidence();
Extract Text from URL
$builder = new SBORequestBuilder(); $response = $client->recognizeFromUrl( $builder ->setUrl('https://example.com/image.png') ->setLanguage('eng') ->build() ); echo $response->getText();
Extract Text from PDF File
$builder = new SBORequestBuilder(); $response = $client->recognizeFromFile( $builder ->setFile('/path/to/document.pdf') ->setLanguage('fas+eng') ->build() ); // Get text from all pages echo $response->getText(); // Get text from specific page echo $response->getTextByPage(0); // First page echo $response->getTextByPage(1); // Second page // Page count echo "Total pages: " . $response->getPageCount();
Advanced Settings
$builder = new SBORequestBuilder(); $response = $client->recognizeFromFile( $builder ->setFile('/path/to/image.jpg') ->setLanguage('fas+eng') ->setOcrEngine(2) // OCR Engine (1-3) ->setIsOverlayRequired(true) // Get overlay information ->setScale('2') // Image scale ->setDetectOrientation('true') // Detect image orientation ->build() ); // Get overlay for first page $overlay = $response->getOverlayByPage(0);
Error Handling
use Sabioweb\Ocr\Exception\NetworkException; use Sabioweb\Ocr\Exception\OcrApiException; use Sabioweb\Ocr\Exception\ValidationException; try { $response = $client->recognizeFromFile($request); echo $response->getText(); } catch (ValidationException $e) { echo "Validation error: " . $e->getMessage(); } catch (NetworkException $e) { echo "Network error: " . $e->getMessage(); } catch (OcrApiException $e) { echo "API error: " . $e->getMessage(); $errorDetails = $e->getErrorDetails(); }
Laravel Usage
Controller Example
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Sabioweb\Ocr\SBOClient; use Sabioweb\Ocr\SBORequestBuilder; use Sabioweb\Ocr\Exception\OcrApiException; class OcrController extends Controller { public function recognizeImage(Request $request) { $request->validate([ 'image' => 'required|image|mimes:jpeg,png,jpg|max:10240', ]); try { $client = new SBOClient(config('services.ocr.api_key')); $builder = new SBORequestBuilder(); $response = $client->recognizeFromFile( $builder ->setFile($request->file('image')->getRealPath()) ->setLanguage('fas+eng') ->setIsOverlayRequired(false) ->build() ); return response()->json([ 'success' => true, 'text' => $response->getText(), 'confidence' => $response->getConfidence(), 'processing_time' => $response->getProcessingTimeInMilliseconds(), ]); } catch (OcrApiException $e) { return response()->json([ 'success' => false, 'error' => $e->getMessage(), ], 400); } } public function recognizeFromUrl(Request $request) { $request->validate([ 'url' => 'required|url', ]); $client = new SBOClient(config('services.ocr.api_key')); $builder = new SBORequestBuilder(); $response = $client->recognizeFromUrl( $builder ->setUrl($request->input('url')) ->setLanguage('fas+eng') ->build() ); return response()->json([ 'success' => true, 'text' => $response->getText(), 'confidence' => $response->getConfidence(), ]); } }
Service Class Example
<?php namespace App\Services; use Sabioweb\Ocr\SBOClient; use Sabioweb\Ocr\SBORequestBuilder; final class OcrService { public function __construct( private readonly SBOClient $client ) {} public function extractTextFromFile(string $filePath, string $language = 'fas+eng'): string { $builder = new SBORequestBuilder(); $request = $builder ->setFile($filePath) ->setLanguage($language) ->build(); $response = $this->client->recognizeFromFile($request); return $response->getText(); } public function extractTextFromUrl(string $url, string $language = 'fas+eng'): string { $builder = new SBORequestBuilder(); $request = $builder ->setUrl($url) ->setLanguage($language) ->build(); $response = $this->client->recognizeFromUrl($request); return $response->getText(); } }
API Reference
SBOClient
Main client class for communicating with OCR.Space API.
Methods
-
recognizeFromFile(SBORequest $request): SBOResponse
Extract text from file (image or PDF) -
recognizeFromUrl(SBORequest $request): SBOResponse
Extract text from URL (image or PDF)
SBORequestBuilder
Builder class for creating OCR requests using Fluent Interface.
Methods
setFile(string $filePath): self- Set file pathsetUrl(string $url): self- Set URLsetLanguage(string $language): self- Set language (e.g., 'eng', 'fas', 'fas+eng')setOcrEngine(int $ocrEngine): self- Set OCR engine (1-3)setIsOverlayRequired(bool $isOverlayRequired): self- Get overlay informationsetScale(string $scale): self- Set image scalesetDetectOrientation(string $detectOrientation): self- Detect image orientationsetIsCreateSearchablePdf(bool $isCreateSearchablePdf): self- Create searchable PDFsetIsSearchablePdfHideTextLayer(bool $isSearchablePdfHideTextLayer): self- Hide text layer in PDFbuild(): SBORequest- Build and return request
SBOResponse
Response class for managing OCR results.
Methods
getText(): string- Get extracted text from all pagesgetTextByPage(int $pageIndex): ?string- Get text from specific pagegetConfidence(): float- Get average confidencegetConfidenceByPage(int $pageIndex): ?float- Get confidence for specific pagegetPageCount(): int- Get page countgetOverlayByPage(int $pageIndex): ?array- Get overlay for specific pagegetAllOverlays(): array- Get all overlaysgetProcessingTimeInMilliseconds(): int- Get processing time in millisecondsgetSearchablePdfOutput(): ?string- Get searchable PDF output (base64)isErroredOnProcessing(): bool- Check if error occurredgetErrorMessage(): string- Get error messagegetErrorDetails(): string- Get error details
Exception Classes
OcrException- Base exception classNetworkException- Network errorOcrApiException- API errorValidationException- Validation error
Supported Languages
eng- Englishfas- Persian/Farsiara- Arabicdeu- Germanfra- Frenchspa- Spanish- And other languages supported by OCR.Space
To use multiple languages, separate them with +: 'fas+eng'
Testing
To run tests:
composer install vendor/bin/phpunit
License
This package is released under the MIT License.
Support
For support and bug reports, visit Sabioweb or GitHub Repository.
sabioweb/ocr-space-package 适用场景与选型建议
sabioweb/ocr-space-package 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 12 月 02 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「OCR」 「pdf-to-text」 「text-recognition」 「image-to-text」 「ocr-space」 「sabioweb」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 sabioweb/ocr-space-package 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sabioweb/ocr-space-package 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 sabioweb/ocr-space-package 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Extract text from a pdf
Extract text from a pdf
Extract text from a pdf
Extract text from a pdf
Extract text from a pdf file using pdf-to-text binary.
The Best Image Ocr SDK For BAT.
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 32
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-02