İçeriğe geç
getnextpdf.com

CSS destek matrisi

NextPDF, Basamaklı Stil Şabloları (CSS) işlemesini yayımlanmış World Wide Web Consortium (W3C) belirtimlerine göre gerçekleştirir. NextPDF’in belirtim kümesindeki her CSS modülünü ve bu modülün işleme hattındaki gerçeklik denetiminden geçirilmiş destek durumunu gözden geçirmek için bu sayfayı kullanın.

Bu revizyon, Wave 4 B2 gerçeklik denetiminden (plan bölümü 4.4) gelir. Önceki yapısal revizyon doğrulanmamış yer tutucu rozetler kullanıyordu. Denetim, her satırı diskteki gerçek kanıtlara (src/Html/, tests/, tests/Wpt/corpus/), v8/v9 kırıcı değişiklik mimari karar kayıtlarına (ADR’lere) ve dahili CSS özellik kapsam denetimine göre yeniden derecelendirdi. Denetim kapsamdan çok dürüstlüğe öncelik verdi: kanıt bir rozeti düşürmeyi gerektirdiğinde rozet düşürüldü.

Doğrulama sözleşmesi kapsamında her satır dört rozetten biriyle sınıflandırılır:

  • Doğrulandısrc/Html/ içinde uygulama ve önemli bir özel otomatik test demeti vardır: ya tests/Unit/Html/<Module>/ altında üç ya da daha fazla dosyadan oluşan özellik düzeyinde bir demet, ya da tests/Wpt/corpus/ altında elli ya da daha fazla test içeren bir Web Platform Tests (WPT) derlem parçası. Her CSS modülü için henüz altın Taşınabilir Belge Biçimi (PDF) temel çizgisi bağlanmadığından, doğrulanmış satırlar structural yeniden üretilebilirlik profilini (PHPUnit doğrulama eşdeğerliği) kullanır; bitwise asla kullanılmaz.
  • Beyan edildi — Modül davranışı src/Html/ içinde uygulanmıştır (kaynak yolu belirtilmiştir), ancak özel test zayıftır, paylaşımlıdır ya da yoktur. Somut bir uygulamaya sahip her beyan edilmiş satırın bir geri doldurma sorunu vardır.
  • Desteklenmiyor — Statik PDF işleme hattı bu modülü içermez: runtime/browser-only API’leri, scrolling/animation çalışma zamanları ve W3C tarafından durdurulan çalışmalar. Satırda neden kaydedilir.
  • Bilinmiyor — Modül derlemde yer alır, ancak denetim herhangi bir uygulama ya da test kanıtı bulamamıştır. Denetim, sayıyı artırmak için desteği asla yukarı yönde tahmin etmedi.

Yapısal revizyondaki partial rozeti kullanımdan kaldırıldı: eski kısmi satırların tümü claimed (uygulama mevcut, özel test yok) ya da verified olarak yeniden derecelendirildi.

RozetAnlam
verifiedsrc/Html/ + özel test demeti (≥3 dosya) ya da WPT parçası (≥50 test); structural profili altında belirlenimci şekilde geçer.
claimedUygulama kanıtı src/Html/ içinde, özel test yok. Geri doldurma sorunu izleniyor.
not-supportedStatik PDF kapsamından açıkça hariç tutuldu. Neden kaydedildi.
unknownBelirlenebilir kanıt yok. Yukarı yönlü tahmin yapılmadı.

Bu sayfadaki Güven sütunu, belirtilen rozetin arkasındaki kanıt için dürüst ve ikili değer taşımayan bir göstergedir (high / medium / low). Bu değer, rozetin kendisinden bağımsızdır.

NextPDF, aşağıda listelenen CSS modüllerini belirtilen düzeylerde destekler. Doğrulandı satırları, NextPDF’in davranışını doğrulayan ve structural yeniden üretilebilirlik profili altında belirlenimci şekilde geçen özel bir otomatik test demetine ya da önemli bir WPT derlem parçasına sahiptir. Beyan edildi satırlarının src/Html/ içinde uygulama kanıtı vardır, ancak henüz özel bir testi yoktur; her satır izleme sorunu #614 kapsamında bir geri doldurma sorunuyla izlenir. Desteklenmiyor satırları, statik PDF hedefi için açık kapsam sınırlarını belgeler.

Hiçbir satır bayt düzeyinde yeniden üretilebilirlik iddiasında bulunmaz, çünkü bu revizyonda CSS modülü başına altın PDF temel çizgisi yoktur. Doğrulama sözleşmesi boş destek satırlarına izin vermez: destek belirlenemediğinde satır unknown olur.

DurumModüllerGüven (yüksek / orta / düşük)
Doğrulandı128 / 4 / 0
Beyan edildi490 / 35 / 14
Desteklenmiyor6762 / 5 / 0
Bilinmiyor390 / 0 / 39
Toplam16770 / 44 / 53

Yapısal revizyondaki summary bloğu kendi içinde tutarsızdı: toplam 148 (18 doğrulandı / 11 kısmi / 11 beyan edildi / 53 desteklenmiyor / 55 bilinmiyor) bildiriyordu; oysa dosya etiketleri 34 doğrulandı / 13 kısmi / 13 beyan edildi / 68 desteklenmiyor / 39 bilinmiyor olarak toplanan 167 modül satırı içeriyordu. Bu denetim, toplamı gerçek değer olan 167’ye düzeltti ve her satırı diskteki kanıtlara göre yeniden derecelendirdi: Doğrulandı sayısı, bildirilen 34 değerinden kanıtlanmış 12 değerine düştü. Bu azalma, dürüst bir denetimin doğru sonucudur; gerileme değildir. Tam before/after farkı, depo içindeki _css-matrix-truth-report.md yardımcı dosyasındadır.

Yapısal revizyon, üç etkin yeteneği kaldırılmış ya da desteklenmiyor olarak yanlış etiketledi. ADR-027 ve ADR-028 yalnızca ExperimentalFeature enum isteğe bağlı katılım işaretlerini kaldırdı; yetenekler ETKİN ve varsayılan olarak açık kalır:

  • Subgrid (css_grid_2) — ETKİN; CssFeatureFlags::$layoutSubgrid varsayılan olarak açık. “subgrid v9.0.0 sürümünde tamamen kaldırıldı” olarak yanlış etiketlenmişti.
  • @container sorguları (css_contain_2) — çalışma zamanı davranışı ADR-028 tarafından açıkça değiştirilmedi; bayrakla devre dışı bırakma korundu. “v9.0.0 sürümünde tamamen kaldırıldı” olarak yanlış etiketlenmişti.
  • writing-mode: vertical-lr (css_writing_modes_3) — v7.0.0 sürümünden bu yana varsayılan olarak açık ve kararlı; ADR-027 yalnızca kullanımdan kaldırma el sıkışmasını yükseltti. “v8.0.0 sürümünde kullanımdan kaldırıldı/kaldırıldı” olarak yanlış etiketlenmişti.

Makine tarafından okunabilen modül bazındaki satır kümesi, doğruluk kaynağı olan depo içindeki css-support-matrix-data.yaml dosyasında bulunur. Bu sayfa, kategoriye göre gruplanmış, insan tarafından okunabilir izdüşümüdür. Astro bileşenleri, belge derlemesi sırasında YAML verilerini doğrudan tüketir.

W3C ModülüDüzeyW3CDurumGüven
CSS Flexible Box Layout (css_flexbox_1)1CRDoğrulandıyüksek
CSS Grid Layout (css_grid_1)1RECDoğrulandıyüksek
CSS Grid Layout — Subgrid (css_grid_2)2CRBeyan edildiorta
CSS Grid Layout — Masonry (css_grid_3)3EDDesteklenmiyoryüksek
CSS Display (css_display_3)3CRBeyan edildiorta
CSS Display (css_display_4)4EDBilinmiyordüşük
CSS Positioned Layout (css_position_3)3WDDoğrulandıyüksek
CSS Positioned Layout (css_position_4)4EDBilinmiyordüşük
CSS Box Alignment (css_align_3)3WDBeyan edildiorta
CSS Box Sizing (css_sizing_3)3CRBeyan edildidüşük
CSS Box Sizing (css_sizing_4)4EDBilinmiyordüşük
CSS Box Model (css_box_3)3WDBeyan edildiorta
CSS Box Model (css_box_4)4EDBilinmiyordüşük
CSS Multi-column Layout (css_multicol_1)1CRBeyan edildiorta
CSS Multi-column Layout (css_multicol_2)2EDBilinmiyordüşük
CSS Fragmentation (css_break_3)3CRDoğrulandıorta
CSS Fragmentation (css_break_4)4EDBilinmiyordüşük
CSS Containment (css_contain_1)1RECDesteklenmiyororta
CSS Containment — @container (css_contain_2)2CRBeyan edildidüşük
CSS Containment (css_contain_3)3EDDesteklenmiyororta
CSS Inline Layout (css_inline_3)3WDBeyan edildiorta
CSS Logical Properties (css_logical_1)1WDBeyan edildiorta
CSS Page Floats (css_page_floats_3)3EDDesteklenmiyoryüksek
CSS Pagination Templates (css_page_templates_3)3EDDesteklenmiyoryüksek
CSS Exclusions (css_exclusions_1)1WDDesteklenmiyoryüksek
CSS Regions (css_regions_1)1WDDesteklenmiyoryüksek
CSS Template Layout (css_template_1)1NOTEDesteklenmiyoryüksek
CSS Layout API (css_layout_api_1)1WDDesteklenmiyoryüksek

Kutu modeli — arka planlar, kenarlıklar, efektler

“Kutu modeli — arka planlar, kenarlıklar, efektler” başlıklı bölüm
W3C ModülüDüzeyW3CDurumGüven
CSS Backgrounds and Borders (css_backgrounds_3)3CRBeyan edildiorta
CSS Backgrounds (css_backgrounds_4)4EDBilinmiyordüşük
CSS Borders and Box Decorations (css_borders_4)4EDBilinmiyordüşük
CSS Gap Decorations (css_gaps_1)1EDBilinmiyordüşük
CSS Masking (css_masking_1)1CRDesteklenmiyororta
CSS Shadow Module (css_shadow_1)1EDBeyan edildiorta
CSS Shapes (css_shapes_1)1CRDesteklenmiyoryüksek
CSS Shapes (css_shapes_2)2EDDesteklenmiyoryüksek
Filter Effects (filter_effects_1)1WDDesteklenmiyoryüksek
Filter Effects (filter_effects_2)2EDDesteklenmiyoryüksek
Compositing and Blending (compositing_1)1CRBeyan edildiorta
Compositing (compositing_2)2EDBilinmiyordüşük
CSS Fill and Stroke (fill_stroke_3)3EDBilinmiyordüşük
Geometry Interfaces (geometry_1)1CRDesteklenmiyoryüksek
DOMMatrix (matrix)1NOTEDesteklenmiyoryüksek
Motion Path (motion_1)1WDDesteklenmiyoryüksek
W3C ModülüDüzeyW3CDurumGüven
CSS Fonts (css_fonts_3)3RECDoğrulandıorta
CSS Fonts (css_fonts_4)4CRDoğrulandıyüksek
CSS Fonts (css_fonts_5)5EDBilinmiyordüşük
CSS Font Loading (css_font_loading_3)3WDDesteklenmiyoryüksek
CSS Text (css_text_3)3CRBeyan edildiorta
CSS Text (css_text_4)4EDBeyan edildiorta
CSS Text Decoration (css_text_decor_3)3CRBeyan edildiorta
CSS Text Decoration (css_text_decor_4)4EDBilinmiyordüşük
CSS Ruby (css_ruby_1)1WDDesteklenmiyoryüksek
CSS Writing Modes (css_writing_modes_3)3RECBeyan edildiorta
CSS Writing Modes (css_writing_modes_4)4EDBilinmiyordüşük
CSS Speech (css_speech_1)1CRDesteklenmiyoryüksek
CSS Mobile Text Size Adjustment (css_size_adjust_1)1EDDesteklenmiyoryüksek
W3C ModülüDüzeyW3CDurumGüven
CSS Color (css_color_3)3RECBeyan edildiorta
CSS Color (css_color_4)4CRBeyan edildiorta
CSS Color (css_color_5)5WDBilinmiyordüşük
CSS Color (css_color_6)6EDBilinmiyordüşük
CSS Color Adjustment (css_color_adjust_1)1CRDesteklenmiyoryüksek
CSS Color HDR (css_color_hdr_1)1EDDesteklenmiyoryüksek
CSS Images (css_images_3)3CRBeyan edildiorta
CSS Images (css_images_4)4EDBilinmiyordüşük
CSS Images (css_images_5)5EDBilinmiyordüşük
CSS Image Animation (css_image_animation_1)1EDDesteklenmiyoryüksek
W3C ModülüDüzeyW3CDurumGüven
CSS Selectors (selectors_3)3RECBeyan edildiorta
CSS Selectors (selectors_4)4WDBeyan edildiorta
CSS Selectors (selectors_5)5EDBilinmiyordüşük
CSS Non-element Selectors (selectors_nonelement_1)1WDDesteklenmiyoryüksek
CSS Pseudo-Elements (css_pseudo_4)4WDBeyan edildiorta
CSS Cascading and Inheritance (css_cascade_3)3RECDoğrulandıyüksek
CSS Cascading (css_cascade_4)4CRDoğrulandıyüksek
CSS Cascading (css_cascade_5)5CRDoğrulandıyüksek
CSS Cascading (css_cascade_6)6WDBilinmiyordüşük
CSS Values and Units (css_values_3)3RECBeyan edildiorta
CSS Values and Units (css_values_4)4CRBeyan edildiorta
CSS Values and Units (css_values_5)5EDBilinmiyordüşük
CSS Custom Properties (css_variables_1)1CRBeyan edildiorta
CSS Custom Properties (css_variables_2)2EDBilinmiyordüşük
CSS Conditional Rules (css_conditional_3)3CRBeyan edildiorta
CSS Conditional Rules (css_conditional_4)4EDBilinmiyordüşük
CSS Conditional Rules (css_conditional_5)5EDBilinmiyordüşük
CSS Conditional Values (css_conditional_values_1)1EDBilinmiyordüşük
CSS Namespaces (css_namespaces_3)3RECBeyan edildidüşük
CSS Style Attributes (css_style_attr_1)1CRBeyan edildiorta
CSS Syntax (css_syntax_3)3CRBeyan edildiorta
CSS Nesting (css_nesting_1)1CRBeyan edildiorta
CSS Environment Variables (css_env_1)1EDDesteklenmiyororta
CSS Custom Functions and Mixins (css_mixins_1)1EDBilinmiyordüşük
CSS Extensions (css_extensions_1)1NOTEBilinmiyordüşük
W3C ModülüDüzeyW3CDurumGüven
CSS Lists and Counters (css_lists_3)3WDBeyan edildiorta
CSS Counter Styles (css_counter_styles_3)3CRBeyan edildiorta
CSS Generated Content (css_content_3)3WDBeyan edildiorta
CSS Generated Content for Paged Media (css_gcpm_3)3WDBeyan edildiorta
CSS Generated Content for Paged Media (css_gcpm_4)4EDBilinmiyordüşük
W3C ModülüDüzeyW3CDurumGüven
CSS Paged Media (css_page_3)3WDBeyan edildiorta
CSS Paged Media (css_page_4)4NOTEBilinmiyordüşük
CSS Print Profile (css_print)1NOTEBeyan edildidüşük
CSS Presentation Levels (css_preslev_1)1NOTEDesteklenmiyoryüksek
W3C ModülüDüzeyW3CDurumGüven
CSS Overflow (css_overflow_3)3WDBeyan edildidüşük
CSS Overflow (css_overflow_4)4EDBilinmiyordüşük
CSS Overflow (css_overflow_5)5EDBilinmiyordüşük
CSS Overscroll Behavior (css_overscroll_1)1CRDesteklenmiyoryüksek
CSS Scroll Anchoring (css_scroll_anchoring_1)1WDDesteklenmiyoryüksek
CSS Scroll Snap (css_scroll_snap_1)1RECDesteklenmiyoryüksek
CSS Scroll Snap (css_scroll_snap_2)2WDDesteklenmiyoryüksek
CSS Scrollbars Styling (css_scrollbars_1)1CRDesteklenmiyoryüksek
CSS Basic User Interface (css_ui_3)3RECDesteklenmiyororta
CSS Basic User Interface (css_ui_4)4WDDesteklenmiyoryüksek
CSS Form Control Styling (css_forms_1)1EDDesteklenmiyoryüksek
CSS View Transitions (css_view_transitions_1)1WDDesteklenmiyoryüksek
CSS View Transitions (css_view_transitions_2)2EDDesteklenmiyoryüksek
CSS Spatial Navigation (css_nav_1)1NOTEDesteklenmiyoryüksek
CSS Route Matching (css_navigation_1)1EDDesteklenmiyoryüksek
W3C ModülüDüzeyW3CDurumGüven
CSS Table (css_tables_3)3WDDoğrulandıyüksek
W3C ModülüDüzeyW3CDurumGüven
CSS Transforms (css_transforms_1)1CRBeyan edildiorta
CSS Transforms (css_transforms_2)2EDBilinmiyordüşük
CSS Animations (css_animations_1)1WDDesteklenmiyoryüksek
CSS Animations (css_animations_2)2EDDesteklenmiyoryüksek
CSS Transitions (css_transitions_1)1WDDesteklenmiyoryüksek
CSS Transitions (css_transitions_2)2EDDesteklenmiyoryüksek
CSS Easing Functions (css_easing_1)1CRDesteklenmiyoryüksek
CSS Easing Functions (css_easing_2)2EDDesteklenmiyoryüksek
Web Animations (web_animations_1)1WDDesteklenmiyoryüksek
Web Animations (web_animations_2)2EDDesteklenmiyoryüksek
Web Animations CSS Integration (web_animations_css_integration)1EDDesteklenmiyoryüksek
Animation Triggers (animation_triggers)1EDDesteklenmiyoryüksek
Pointer-driven Animations (pointer_animations_1)1EDDesteklenmiyoryüksek
Scroll-driven Animations (scroll_animations_1)1EDDesteklenmiyoryüksek
CSS Animation Worklet (css_animation_worklet)1EDDesteklenmiyoryüksek
W3C ModülüDüzeyW3CDurumGüven
CSS Anchor Positioning (css_anchor_position_1)1WDBilinmiyordüşük
CSS Anchor Positioning (css_anchor_position_2)2EDBilinmiyordüşük
CSS Highlight API (css_highlight_api_1)1WDDesteklenmiyoryüksek
CSS Properties and Values API (css_properties_values_api_1)1CRDesteklenmiyoryüksek
CSS Painting API (css_paint_api_1)1WDDesteklenmiyoryüksek
CSS Typed OM (css_typed_om_1)1WDDesteklenmiyoryüksek
CSSOM (cssom_1)1WDDesteklenmiyoryüksek
CSSOM View (cssom_view_1)1WDDesteklenmiyoryüksek
CSS Will Change (css_will_change_1)1CRDesteklenmiyoryüksek
CSS Linked Parameters (css_link_params_1)1EDBilinmiyordüşük
CSS Line Grid (css_line_grid_1)1NOTEBilinmiyordüşük
CSS Rhythmic Sizing (css_rhythm_1)1EDBilinmiyordüşük
CSS Round Display (css_round_display_1)1EDDesteklenmiyoryüksek
CSS Shaders (css_shaders_1)1NOTEDesteklenmiyoryüksek
CSS Viewport (css_viewport_1)1NOTEDesteklenmiyoryüksek
W3C ModülüDüzeyW3CDurumGüven
Media Queries (mediaqueries_3)3RECBeyan edildiorta
Media Queries (mediaqueries_4)4CRBeyan edildiorta
Media Queries (mediaqueries_5)5WDBilinmiyordüşük
W3C ModülüDüzeyW3CDurumGüven
CSS Level 2 (css_2_1)2.1RECBeyan edildidüşük
CSS Level 2.2 (css_2_2)2.2NOTEBeyan edildidüşük
CSS Snapshot 2026 (css_snapshot_2026)snapshotNOTEBeyan edildidüşük

Bu W3C modülleri derlemde yer alır, ancak CSS işleme hattının dışındadır. Uygun olduğunda ilgili özellik sayfaları bunlara bağlantı verir.

W3C ModülüW3CDurumGüvenNerede
W3C SVG 1.1 (svg_1_1)RECBeyan edildidüşükSatır içi SVG boyama alt kümesi Renderer/PaintCommand/ içinde; CSS matrisi testi yok.
W3C SVG 2.0 (svg_2_0)CRBilinmiyordüşükPremium hattı kapsamında; core kanıtı yok.
W3C PNG 3rd Edition (png_3)WDBeyan edildidüşükPNG çözme Graphics/ modülünde (HTML/CSS dışında).
W3C WOFF 1.0 (woff_1_0)RECBeyan edildidüşükFont yığını aracılığıyla WOFF; CSS matrisi testi yok.
W3C WOFF 2.0 (woff_2_0)RECBeyan edildidüşükFont yığını aracılığıyla WOFF2; CSS matrisi testi yok.
W3C WCAG 2.2 (wcag_2_2)RECDoğrulandıortasrc/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 dosya) — PDF/UA-2.
W3C WAI-ARIA 1.2 (wai_aria_1_2)RECDoğrulandıortatests/Unit/Accessibility/HtmlAam/ (4 dosya).
W3C ARIA Bundle (w3c_aria_bundle)RECBeyan edildidüşükYönerge paketi; somut kanıt WAI-ARIA satırıdır.
W3C AAM Bundle (w3c_aam_bundle)NOTEBeyan edildidüşükPaket işaretçisi; kanıt WAI-ARIA/WCAG satırlarıdır.
W3C ATAG 2.0 (atag_2_0)RECDesteklenmiyoryüksekYazma aracı erişilebilirliği; geçerli değil.
W3C XSL 1.1 (xsl_1_1)RECDesteklenmiyoryüksekXSL-FO paralel biçimlendirme modeli; uygulanmadı.
W3C XSD 1.1 Part 1 (xsd_1_1_part1)RECDesteklenmiyoryüksekXML şeması; geçerli değil.
W3C XSLT 3.0 (xslt_3_0)RECDesteklenmiyoryüksekDönüşüm dili; geçerli değil.
Resize Observer (resize_observer_1)CRDesteklenmiyoryüksekTarayıcı çalışma zamanı API’si.

Bir satırın claimedverified düzeyine yükselmesi için:

  1. Özelliğe özel bir test demeti tests/Unit/Html/<Module>/ altında bulunur (≥3 dosya) ya da tests/Wpt/corpus/ altındaki önemli bir WPT derlem parçası (≥50 test) doğrulama testine yükseltilir.
  2. Test, modülün birincil özellikleri için NextPDF’in davranışını W3C dil bilgisine göre doğrular.
  3. Test, bir NextPDF\Testing\ReproducibilityProfile altında belirlenimci şekilde geçer (doğrulama testleri için structural; bitwise yalnızca modül başına altın PDF temel çizgileri var olduğunda).
  4. Satırın nextpdf_status değeri, depo içindeki css-support-matrix-data.yaml dosyasında verified değerine değiştirilir; fixture_path, repro_profile ve confidence güncellenir.

Bir satırın unknownclaimed düzeyine yükselmesi için:

  1. Bir denetim turu, src/Html/ içindeki uygulama kanıtını doğrular (yol evidence + notes içinde belirtilir).
  2. Bir geri doldurma sorunu açılır ve backfill_issue içinde bağlanır.
  • HTML: HTML+CSS’ten PDF’ye işleyen alt sistem — bu yeteneklerin arkasındaki motor; tablo, flex, gradyan ve sayfalama davranışı notları dahil.
  • Desteklenmeyen CSS özellikleri ve geçici çözümleri — her davranış için kesin sınırlar.
  • Sağdan sola Arapça HTML’i işleme — sağdan sola ve çift yönlü desteği ve mevcut sınırları.
  • Büyük bir HTML tablosunu sayfalara bölün — sayfalar arası tablo sayfalama.
  • CSS matrisi gerçeklik raporu (_css-matrix-truth-report.md, depo içinde) — before/after denetim farkları, güven dağılımı, şişirme giderme günlüğü.
  • CSS özellik kapsam denetimi (architecture/css-property-coverage-audit.md, depo içinde) — özellik başına dahili dört durumlu denetim (Policy/Parsed/Applied/Rendered).
  • ADR-027 v8.0.0 KIRICI (architecture/adr/ADR-027-v8-breaking.md, depo içinde) — vertical-lr kullanımdan kaldırma el sıkışmasının yükseltilmesi (yetenek korundu).
  • ADR-028 v9.0.0 KIRICI (architecture/adr/ADR-028-v9-breaking.md, depo içinde) — Grid/Subgrid/@container enum işareti kaldırma (yetenekler korundu).
  • Geri doldurma izleme sorunu: https://github.com/nextpdf-labs/nextpdf/issues/614