{% extends 'base.html.twig' %} {% block title %}{{ 'ocr.title'|trans({}, 'Ocr') }} — Shamra Academia{% endblock %} {% block og_title %}{{ 'ocr.title'|trans({}, 'Ocr') }} — Shamra Academia{% endblock %} {% block og_description %}{{ 'ocr.page_description'|trans({}, 'Ocr') }}{% endblock %} {% block metaDescription %}{{ 'ocr.page_description'|trans({}, 'Ocr') }}{% endblock %} {% block metaKeywords %}OCR, تحويل صور, PDF إلى وورد, استخراج نصوص, شمرا أكاديميا, ذكاء اصطناعي{% endblock %} {% block stylesheets %} {{ parent() }} {% endblock %} {% block body %}

{{ 'ocr.title'|trans({}, 'Ocr') }}

{{ 'ocr.subtitle'|trans({}, 'Ocr') }}

PDF PNG / JPG TIFF / BMP DOCX / PDF / Markdown
{% set hasCredits = false %} {% set canUpload = false %} {% if app.user and subscription %} {% set hasCredits = subscription.availableCredits >= minCredits %} {% set canUpload = hasCredits %} {% endif %} {% if app.user and subscription %}
{{ subscription.tier }} {{ 'ocr.credits_available'|trans({}, 'Ocr') }}: {{ subscription.availableCredits }} {{ 'ocr.credits_per_page'|trans({'%credits%': creditsPerPage}, 'Ocr') }}
{% if subscription.tier == 'trial' or not hasCredits %} {{ 'ocr.upgrade'|trans({}, 'Ocr') }} {% endif %}
{% endif %} {# ── CTA for guests or users with no credits ── #} {% if not app.user %}
{{ 'ocr.login_required'|trans({}, 'Ocr') }}
{{ 'ocr.login_link'|trans({}, 'Ocr') }}
{% elseif not hasCredits %}
{{ 'ocr.no_credits'|trans({}, 'Ocr') }}
{{ 'ocr.upgrade'|trans({}, 'Ocr') }}
{% endif %}
{# ── Upload zone (visible to all, disabled for guests/no credits) ── #}

{{ 'ocr.upload_title'|trans({}, 'Ocr') }}

{{ 'ocr.upload_hint'|trans({}, 'Ocr') }}

{% if canUpload %} {% endif %}
{{ 'ocr.estimated_pages'|trans({}, 'Ocr') }}
{{ 'ocr.estimated_credits'|trans({}, 'Ocr') }}
{{ 'ocr.remaining_after'|trans({}, 'Ocr') }}
{# ── Jobs list (only for logged‑in users) ── #} {% if app.user %}

{{ 'ocr.history_title'|trans({}, 'Ocr') }}

{% if jobs is empty %}

{{ 'ocr.no_jobs'|trans({}, 'Ocr') }}

{% else %} {% for job in jobs %} {{ _self.jobCard(job) }} {% endfor %} {% endif %}
{% endif %}
{% macro jobCard(job) %}
{{ job.fileName }}
{{ job.pageCount }} {{ 'ocr.pages'|trans({}, 'Ocr') }} {{ job.creditsCharged }} {{ 'ocr.credits'|trans({}, 'Ocr') }} {{ job.createdAt|date('Y-m-d H:i') }} {% if job.processingDuration is not null %} {{ job.processingDuration }}s {% endif %}
{% if job.status == 'pending' %} {{ 'ocr.status.pending'|trans({}, 'Ocr') }} {% elseif job.status == 'processing' %} {{ 'ocr.status.processing'|trans({}, 'Ocr') }} {% elseif job.status == 'completed' %} {{ 'ocr.status.completed'|trans({}, 'Ocr') }} {% elseif job.status == 'failed' %} {{ 'ocr.status.failed'|trans({}, 'Ocr') }} {% endif %}
{% if job.status == 'completed' %} DOCX PDF MD {% endif %} {% if job.status != 'processing' %} {% endif %}
{% endmacro %} {% endblock %} {% block javascripts %} {{ parent() }} {% endblock %}