{# ===== SUMMARY PAGE (cover sheet) ===== #} {% if summary_page in ("prepend", "only") %}
{# Cover header #}
{% if brand and brand.logo_url %} {% if brand.logo_url.startswith('data:image/svg') %} {{ brand.logo_url | decode_svg_data_uri }} {% else %} {% endif %} {% endif %}
{% if brand and brand.anonymous %}Preflight Report{% elif brand and brand.name %}{{ brand.name }}{% else %}LintPDF{% endif %}
Preflight Summary
{{ generated_at }}
{{ file_name }}
{# Health score + verdict row #}
{# Health gauge #}
{{ health.score }}
/100
Grade {{ health.grade }}
{# Stats #}
{{ pass_fail }}
{% if summary %}{{ summary.page_count }} page{{ 's' if summary.page_count != 1 else '' }} · {{ summary.total_findings }} findings{% endif %}
{{ summary.error_count }}
Errors
{{ summary.warning_count }}
Warnings
{{ summary.advisory_count }}
Advisory
{# Color info #}
Color Profile
Spaces: {{ summary_color_info.color_spaces | join(', ') }}
{% if summary_color_info.spot_colors %}
Spots: {{ summary_color_info.spot_colors | join(', ') }}
{% endif %} {% if summary_color_info.max_tac > 0 %}
Max TAC: {{ summary_color_info.max_tac }}%
{% endif %}
{# Page thumbnails grid #} {% if page_thumbnails %}
Page Preview
{% for thumb in page_thumbnails %} {% if thumb %}
Page {{ loop.index }}
{{ loop.index }}
{% endif %} {% endfor %}
{% endif %} {# Top findings #} {% if top_findings %}
Top Issues
{% for f in top_findings[:5] %} {% endfor %}
{{ f.inspection_id }} {{ f.message[:100] }}{% if f.message|length > 100 %}...{% endif %} {% if f.page_num %}p.{{ f.page_num }}{% endif %}
{% endif %} {% if brand and brand.viewer_url %}
Open Interactive Viewer
{% endif %}
{% endif %} {% if summary_page != "only" %} {# ===== HEADER ===== #}
{% if brand and brand.logo_url %} {% if brand.logo_url.startswith('data:image/svg') %} {{ brand.logo_url | decode_svg_data_uri }} {% else %} {% endif %} {% endif %}

{% if brand and brand.anonymous %}Preflight Report{% elif brand and brand.name %}{{ brand.name }} Preflight Report{% else %}LintPDF Preflight Report{% endif %}

{{ file_name }}{% if summary %} · {{ summary.page_count }} page{{ 's' if summary.page_count != 1 else '' }}{% endif %} · {{ generated_at }}
{{ pass_fail }}
{# ===== SUMMARY BAR ===== #}
{{ summary.error_count }}
Errors
{{ summary.warning_count }}
Warnings
{{ summary.advisory_count }}
Advisory
{{ summary.total_findings }}
Total
{% if color_quality_score %}
{{ color_quality_score }}
Color Score
{% endif %}
{# ===== TOOLBAR ===== #}
{% if brand and brand.pdf_download_url and (brand.pdf_download_url.startswith('https://') or brand.pdf_download_url.startswith('http://') or brand.pdf_download_url.startswith('/')) %}Download PDF{% endif %} {% if brand and brand.viewer_url and (brand.viewer_url.startswith('https://') or brand.viewer_url.startswith('http://') or brand.viewer_url.startswith('/')) %}▶ Open Interactive Viewer{% endif %}
{# ===== EPM CANDIDACY VERDICT ===== #} {% if epm %}
EPM: {{ epm.tier | upper | replace('_', ' ') }} {% if epm.recommends_indichrome %} Consider IndiChrome substrate {% endif %} {{ epm.epm_findings_count }} EPM finding{% if epm.epm_findings_count != 1 %}s{% endif %}
{% if epm.rejection_drivers %}
Rejection drivers:
    {% for code in epm.rejection_drivers %}
  • {{ code }}
  • {% endfor %}
{% endif %} {% if epm.advisories %}
Advisories:
    {% for code in epm.advisories %}
  • {{ code }}
  • {% endfor %}
{% endif %}
{% endif %} {# ===== RENDER FAILED BANNER ===== #} {% if render_failed is defined and render_failed %}
⚠ Page screenshots unavailable. The original PDF could not be rendered for visual annotation. Findings are listed without thumbnails. {% if brand and brand.viewer_url %}Open Interactive Viewer →{% endif %}
{% endif %} {# ===== DOCUMENT & COMPLIANCE ISSUES (compact rows) ===== #} {% set doc_findings = [] %} {% set page_findings = [] %} {% for f in all_findings_sorted %} {% if (not f.page_num or f.page_num == 0) and not f.thumbnail_base64 and not f.bbox %} {% if doc_findings.append(f) %}{% endif %} {% else %} {% if page_findings.append(f) %}{% endif %} {% endif %} {% endfor %} {% if doc_findings %}
Document & Compliance Issues ({{ doc_findings | length }})
{% set counter = {'n': 0} %} {% for finding in doc_findings %} {% if counter.update({'n': counter.n + 1}) %}{% endif %}
{{ counter.n }}
{{ finding.inspection_id }} {{ finding.message }} {{ finding.severity | upper }} {% if finding.source == 'ai' %}★ AI{% endif %}
{% endfor %} {% endif %} {# ===== PAGE ISSUES (card layout with thumbnails) ===== #} {% if page_findings %}
Page Issues ({{ page_findings | length }})
{% set counter2 = {'n': 0} %} {% for finding in page_findings %} {% if counter2.update({'n': counter2.n + 1}) %}{% endif %}
{% if finding.thumbnail_base64 %} Page {{ finding.page_num }} — {{ finding.friendly_name }} {% else %}
{% if finding.page_num and finding.page_num > 0 %}Page {{ finding.page_num }}{% else %}Document{% endif %}
{% endif %} {% if finding.page_num and finding.page_num > 0 %} p.{{ finding.page_num }} {% endif %}
{{ counter2.n }}
{{ finding.friendly_name or finding.inspection_id }} {{ finding.inspection_id }} {{ finding.severity | upper }} {% if finding.source == 'ai' %}★ AI{% endif %}
{% if finding.friendly_description %}
{{ finding.friendly_description }}
{% endif %}
{{ finding.message }}
{% if finding.ai_explanation %}
AI Explain {{ finding.ai_explanation }}
{% endif %}
{% if finding.page_num and finding.page_num > 0 %}Page {{ finding.page_num }}{% else %}Document{% endif %} {% if finding.iso_clause %}{{ finding.iso_clause }}{% endif %} {% if finding.object_id %}{{ finding.object_type }}: {{ finding.object_id }}{% endif %}
{% endfor %} {% endif %} {% if not doc_findings and not page_findings %}
No findings detected. This document passed every check in the selected profile.
{% endif %} {# ===== COMPREHENSIVE: INK SEPARATIONS ===== #} {% if detail_level == 'comprehensive' and ink_separations %}

Ink Separations

{% for sep in ink_separations %} {% endfor %}
ChannelPagesMax ValueEvents
{{ sep.name }} {{ sep.pages_used | length }} {{ sep.max_value }}% {{ sep.event_count }}
{% endif %} {% if detail_level == 'comprehensive' and ink_tac_by_page %}

TAC by Page

{% for page, data in ink_tac_by_page.items() %} {% endfor %}
PageMax TACLimitSamples
{{ page }} {{ data.max_tac }}% {{ data.tac_limit }}% {{ data.sample_count }}
{% endif %} {% if detail_level == 'comprehensive' and color_score_breakdown %}

Color Quality Breakdown

{% for cat, score in color_score_breakdown.items() %} {% endfor %}
CategoryScore
{{ cat | replace('_', ' ') | title }}{{ score }}
{% endif %} {# ===== METADATA ===== #} {% if metadata %}

Document Info

{% if metadata.ai_findings_count %}{% endif %} {% if color_quality_grade %}{% endif %}
PDF Version{{ metadata.pdf_version }}
Pages{{ metadata.page_count }}
File Size{{ (summary.file_size_bytes / 1024) | round(1) }} KB
Encrypted{{ 'Yes' if metadata.is_encrypted else 'No' }}
Conformance{{ metadata.conformance or 'None' }}
Workflow{{ metadata.workflow }}
AI Enabled{{ 'Yes' if metadata.ai_enabled else 'No' }}
AI Findings{{ metadata.ai_findings_count }}
Color Quality{{ color_quality_score }} / {{ color_quality_grade }}
{% endif %}
{# ===== FOOTER ===== #} {% endif %}{# end summary_page != "only" #}