From 6e5e5849c8592bdaed9f3888b7bfe1de0528fa73 Mon Sep 17 00:00:00 2001 From: Abimael Martell <1450169+abimaelmartell@users.noreply.github.com> Date: Thu, 9 Jul 2026 12:44:32 -0700 Subject: [PATCH] Detect substitution-cipher garbled text from broken ToUnicode CMaps (#120) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(lib): detect substitution-cipher garbled text from broken ToUnicode CMaps ParseBench text_simple__att10k.pdf (issue #118) ships Type0/Identity-H fonts whose ToUnicode CMaps are authored garbled: every bfrange maps with a wrong constant delta, so text extracts as pure-ASCII ciphertext ("Certificate" -> "8VceZWZTReV"). The embedded subset font has no cmap table and no glyph names, so no decode source can recover the real text (poppler and mupdf emit the same ciphertext). The only correct behavior is to flag the page for OCR instead of serving the garbage silently -- but the text is 100% printable ASCII with word-like tokens, so it slipped past is_garbage_text and detect_encoding_issues. Add CipherGarbleStats, a letter-statistics discriminator that flags a Latin-dominant sample (>=200 ASCII letters) when vowels are starved (<=30% of letters) AND either: - lowercase->uppercase transitions inside words exceed 10% of letter bigrams (a shifted lowercase alphabet straddles the ASCII uppercase block), or - the letter histogram's cosine similarity against English letter frequencies drops below 0.60 (catches shifts that stay within case blocks). Wired into analyze_text_quality (per-page, item-level) and detect_encoding_issues (markdown-level), so extract_pages_markdown reports needs_ocr + suspected_garbled_text and suppresses the garbage. Thresholds validated against the 380-document pdf-evals snapshot corpus (Swedish, Finnish, Turkish, German, romaji, schematics, all-caps and camelCase-heavy docs): zero false positives, and byte-identical eval output vs main. Garbled page measures vowel ratio 0.245 / case-shift rate 0.225 / cosine 0.532; closest legitimate document on each axis is 0.264 / 0.021 / 0.801. Fixes #118 Co-Authored-By: Claude Fable 5 * chore: bump pdf-inspector to 0.1.4, npm package to 1.9.11 Co-Authored-By: Claude Fable 5 * fix(lib): exempt uniform-case structured content from cipher detection Address PR review (cubic P2): the frequency branch (english_cosine < 0.60) fired on any Latin-dominant, low-vowel letter distribution unlike English, so non-linguistic ASCII — DNA/protein sequences, ticker symbols, hex dumps — could be suppressed and routed to OCR despite not being garbled. Measured: DNA cosine 0.428 / vowel ratio 0.260, protein 0.738, tickers 0.747, hex 0.549 — all would have flagged. Add a mixed-case guard to looks_garbled: garbled English is a permutation of natural language and carries sentence capitalization (block-straddling shifts invert the ratio — att10k is 60% uppercase; in-case Caesar shifts preserve it at ~3%), so both keep some of each case. The exempted structured content is uniform case (all upper or all lower). Requiring the minority case to be >=1% of ASCII letters exempts single-case sequences while preserving both garble signals, including the in-case-shift scenario the frequency branch exists for. Strictly tightens the detector: it can only remove flags, so the eval corpus stays at zero false positives (verified byte-identical to a baseline main binary across all 185 PDFs) and att10k remains flagged. Adds regression tests for DNA, protein, tickers, and an in-case Caesar shift. Co-Authored-By: Claude Fable 5 * fix(lib): make cipher detection case-agnostic via sorted-histogram shape Address PR review follow-up: the mixed-case guard from the previous commit returned before the vowel/frequency checks, creating a blind spot — a uniform-case (all-lower or all-upper) substitution cipher is a plausible broken-CMap output and would bypass OCR entirely. Replace the case proxy with the actual invariant. A substitution cipher is a bijection over a real language's alphabet, so it preserves the frequency SHAPE (the sorted histogram) while scrambling letter POSITIONS (the unsorted histogram). Signal 2 now flags when english_cosine < 0.60 (positions unlike English) AND english_shape_cosine >= 0.90 (profile is still English-shaped). This is independent of case, so it catches all-lower, all-upper, and case-straddling shifts alike. The exempted structured content fails one half: DNA/hex dumps have too steep a profile (shape cosine 0.74 / 0.81 < 0.90), while protein sequences, ticker symbols and base64 are not sufficiently unlike English in position (unsorted cosine 0.74 / 0.75 / 0.77 >= 0.60). All stay out of OCR. Still strictly corpus-safe: every real Latin document scores unsorted cosine >= 0.70 (min 0.80), far above the 0.60 gate, so none can reach Signal 2. Re-verified byte-identical to a baseline main binary across all 185 eval PDFs; att10k remains flagged. Drops the now-unused case counters and adds all-lowercase / all-uppercase shifted-prose regression tests. Co-Authored-By: Claude Fable 5 * chore: source Python package version from Cargo.toml via maturin Address PR review (cubic P2): pyproject.toml pinned version = "0.1.0", which overrides Cargo.toml, so a maturin build produced a 0.1.0 Python artifact regardless of the crate version (it had drifted since the PyO3 bindings were added). Switch to dynamic = ["version"] so maturin sources the version from Cargo.toml [package] version and the two can no longer diverge. No workflow auto-publishes the Python package, so this is metadata hygiene rather than a release-path fix. Co-Authored-By: Claude Fable 5 --------- Co-authored-by: Claude Fable 5 --- Cargo.toml | 2 +- napi/Cargo.lock | 2 +- napi/package.json | 2 +- pyproject.toml | 4 +- src/lib.rs | 329 +++++++++++++++++++- tests/fixtures/shifted_cipher_tounicode.pdf | Bin 0 -> 120677 bytes tests/integration_tests.rs | 26 ++ 7 files changed, 359 insertions(+), 6 deletions(-) create mode 100644 tests/fixtures/shifted_cipher_tounicode.pdf diff --git a/Cargo.toml b/Cargo.toml index 62f7694..bd8d051 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pdf-inspector" -version = "0.1.3" +version = "0.1.4" edition = "2021" autobins = false authors = ["Firecrawl Team"] diff --git a/napi/Cargo.lock b/napi/Cargo.lock index 98de023..92f3a11 100644 --- a/napi/Cargo.lock +++ b/napi/Cargo.lock @@ -830,7 +830,7 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "pdf-inspector" -version = "0.1.3" +version = "0.1.4" dependencies = [ "env_logger", "log", diff --git a/napi/package.json b/napi/package.json index af49b66..e3ac149 100644 --- a/napi/package.json +++ b/napi/package.json @@ -1,6 +1,6 @@ { "name": "@firecrawl/pdf-inspector", - "version": "1.9.10", + "version": "1.9.11", "description": "Fast PDF classification and text extraction. Detect text-based vs scanned PDFs, extract text by region with quality checks. Native Rust performance via napi-rs.", "main": "index.js", "types": "index.d.ts", diff --git a/pyproject.toml b/pyproject.toml index f925a0e..5341097 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,9 @@ build-backend = "maturin" [project] name = "pdf-inspector" -version = "0.1.0" +# Version is sourced from Cargo.toml [package] version by maturin so the Python +# artifact always tracks the crate release instead of drifting on its own. +dynamic = ["version"] description = "Fast PDF inspection, classification, and text extraction with smart scanned vs text-based detection" license = { text = "MIT" } requires-python = ">=3.8" diff --git a/src/lib.rs b/src/lib.rs index e56ebbd..19fb321 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3697,7 +3697,14 @@ fn detect_encoding_issues(markdown: &str) -> bool { } // Heuristic 2: dollar-as-space pattern - has_dollar_as_space_pattern(markdown) + if has_dollar_as_space_pattern(markdown) { + return true; + } + + // Heuristic 3: substitution-cipher letter statistics (broken ToUnicode) + let mut stats = CipherGarbleStats::default(); + stats.add_text(markdown); + stats.looks_garbled() } fn has_dollar_as_space_pattern(markdown: &str) -> bool { @@ -3721,6 +3728,156 @@ fn has_dollar_as_space_pattern(markdown: &str) -> bool { false } +/// English letter frequencies (percent, a–z). Used as a natural-language +/// reference: every Latin-script language in the eval corpus (Swedish, +/// Finnish, Turkish, German, romaji) scores ≥ 0.80 cosine similarity against +/// it, while substitution-cipher text scores ~0.53. +const ENGLISH_LETTER_FREQ: [f64; 26] = [ + 8.2, 1.5, 2.8, 4.3, 12.7, 2.2, 2.0, 6.1, 7.0, 0.15, 0.8, 4.0, 2.4, 6.7, 7.5, 1.9, 0.1, 6.0, + 6.3, 9.1, 2.8, 1.0, 2.4, 0.15, 2.0, 0.07, +]; + +/// Letter statistics for detecting substitution-cipher garbling: broken +/// ToUnicode CMaps that shift every character by a per-range constant (e.g. +/// `Certificate` extracted as `8VceZWZTReV`). Such text is 100% printable +/// ASCII with word-like token lengths, so it defeats `is_garbage_text` and +/// produces no replacement characters — it needs its own discriminator. +#[derive(Debug, Default)] +struct CipherGarbleStats { + /// Case-folded ASCII letter histogram. + letter_counts: [u32; 26], + ascii_letters: usize, + ascii_vowels: usize, + /// Accented Latin letters (Latin-1 Supplement through Latin Extended-B, + /// plus Latin Extended Additional). Count toward Latin dominance only. + latin_ext_letters: usize, + non_latin_letters: usize, + /// Adjacent ASCII-letter pairs, and how many of them switch from + /// lowercase straight to uppercase mid-word. + letter_bigrams: usize, + case_shift_bigrams: usize, +} + +impl CipherGarbleStats { + fn add_text(&mut self, text: &str) { + let mut prev: Option = None; + for ch in text.chars() { + if ch.is_ascii_alphabetic() { + let idx = (ch.to_ascii_lowercase() as u8 - b'a') as usize; + self.letter_counts[idx] += 1; + self.ascii_letters += 1; + if matches!(ch.to_ascii_lowercase(), 'a' | 'e' | 'i' | 'o' | 'u') { + self.ascii_vowels += 1; + } + if let Some(p) = prev { + self.letter_bigrams += 1; + if p.is_ascii_lowercase() && ch.is_ascii_uppercase() { + self.case_shift_bigrams += 1; + } + } + prev = Some(ch); + } else { + if ch.is_alphabetic() { + if matches!(ch as u32, 0xC0..=0x24F | 0x1E00..=0x1EFF) { + self.latin_ext_letters += 1; + } else { + self.non_latin_letters += 1; + } + } + prev = None; + } + } + } + + /// Cosine similarity between the observed letter histogram and English + /// letter frequencies. A shifted alphabet permutes the histogram, which + /// destroys the similarity regardless of the shift amount. + fn english_cosine(&self) -> f64 { + if self.ascii_letters == 0 { + return 1.0; + } + let n = self.ascii_letters as f64; + let mut dot = 0.0; + let mut norm_obs = 0.0; + for (count, freq) in self.letter_counts.iter().zip(ENGLISH_LETTER_FREQ) { + let p = *count as f64 / n; + dot += p * freq; + norm_obs += p * p; + } + let norm_en = ENGLISH_LETTER_FREQ + .iter() + .map(|f| f * f) + .sum::() + .sqrt(); + dot / (norm_obs.sqrt() * norm_en) + } + + /// Cosine similarity between the observed histogram and English + /// frequencies after sorting BOTH descending — i.e. comparing the *shape* + /// of the frequency profile, ignoring which letter sits where. A + /// substitution cipher is a bijection, so it preserves this shape exactly + /// (att10k 0.97, arbitrary shifts 0.99) regardless of case or offset. + /// Non-linguistic ASCII has a different profile: a small alphabet is far + /// steeper (random DNA 0.74, hex dumps 0.81), so the shape diverges. + fn english_shape_cosine(&self) -> f64 { + if self.ascii_letters == 0 { + return 1.0; + } + let n = self.ascii_letters as f64; + let mut obs: [f64; 26] = std::array::from_fn(|i| self.letter_counts[i] as f64 / n); + obs.sort_unstable_by(|a, b| b.total_cmp(a)); + let mut en = ENGLISH_LETTER_FREQ; + en.sort_unstable_by(|a, b| b.total_cmp(a)); + + let dot: f64 = obs.iter().zip(en).map(|(o, e)| o * e).sum(); + let norm_obs = obs.iter().map(|o| o * o).sum::().sqrt(); + let norm_en = en.iter().map(|e| e * e).sum::().sqrt(); + dot / (norm_obs * norm_en) + } + + /// Thresholds validated against the 380-document pdf-evals snapshot + /// corpus (0 false positives) and the garbled ParseBench `att10k` page + /// (vowel ratio 0.245, case-shift rate 0.225, cosine 0.532). Closest + /// legitimate document on each axis: vowel ratio 0.264 (circuit + /// schematic), case-shift rate 0.021, cosine 0.801. + fn looks_garbled(&self) -> bool { + // Need a statistically meaningful, Latin-dominant sample. + if self.ascii_letters < 200 + || self.non_latin_letters > self.ascii_letters + self.latin_ext_letters + { + return false; + } + + // Real Latin-script text keeps vowels above ~30% of letters even in + // acronym- and part-number-heavy documents; shifted text starves them. + let vowel_ratio = self.ascii_vowels as f64 / self.ascii_letters as f64; + if vowel_ratio > 0.30 { + return false; + } + + // Signal 1: lowercase→uppercase transitions inside words. A shifted + // lowercase alphabet straddles the ASCII uppercase block ('i'→'Z', + // 't'→'e'), so garbled words flip case constantly. Real documents + // stay ≤ 0.02 even with camelCase identifiers. + let case_shifts = self.letter_bigrams >= 100 + && self.case_shift_bigrams as f64 >= self.letter_bigrams as f64 * 0.10; + + // Signal 2: the histogram is a permutation of natural language — an + // English-like frequency SHAPE (sorted cosine high) but with letters + // in the wrong POSITIONS (unsorted cosine low). This is the signature + // of a substitution cipher and is case-independent, so it catches + // all-lowercase and all-uppercase shifts as well as case-straddling + // ones. Genuinely non-linguistic ASCII that is merely "unlike English" + // fails one of the two halves: DNA/hex dumps have too steep a profile + // (shape cosine < 0.90), while protein sequences, ticker symbols and + // base64 are not sufficiently unlike English in position (unsorted + // cosine ≥ 0.60) — so none of them are routed to OCR. + let permuted_language = self.english_cosine() < 0.60 && self.english_shape_cosine() >= 0.90; + + case_shifts || permuted_language + } +} + #[derive(Debug, Default)] struct TextQualityReport { pages_needing_ocr: Vec, @@ -3734,6 +3891,7 @@ struct PageTextQualityEvidence { replacement_chars: usize, replacement_spans: usize, longest_replacement_run: usize, + cipher_garble: CipherGarbleStats, } #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -3753,6 +3911,7 @@ fn analyze_text_quality(items: &[TextItem]) -> TextQualityReport { let evidence = evidence_by_page.entry(item.page).or_default(); evidence.chars += item.text.chars().filter(|ch| !ch.is_whitespace()).count(); + evidence.cipher_garble.add_text(&item.text); match text_span_decoding_issue_kind(&item.text) { Some(TextSpanIssueKind::Strong) => { @@ -3776,7 +3935,8 @@ fn analyze_text_quality(items: &[TextItem]) -> TextQualityReport { if reasons_by_page.contains_key(&page) { continue; } - if page_replacement_evidence_needs_ocr(&evidence) { + if page_replacement_evidence_needs_ocr(&evidence) || evidence.cipher_garble.looks_garbled() + { add_ocr_reason( &mut reasons_by_page, page, @@ -5965,6 +6125,171 @@ mod tests { assert!(!detect_encoding_issues(text)); } + /// Real garbled output from ParseBench `text_simple__att10k.pdf`: a broken + /// ToUnicode CMap shifts every character by a per-range constant, so + /// "Certificate of Designations with respect to Series C" extracts as + /// pure-ASCII ciphertext (issue #118). + const SHIFTED_CIPHER_TEXT: &str = + "8VceZWZTReVW9VdZXReZdhZeYcVdaVTeeHVcZVd8EcVWVccVUHeT:iYZSZe-(,e2'WZ]V \ + ;VScfRcj2&,*,*$ .'R CZdecfVehYZTYUVWZVdeYVcZXYedWY]UVcdW]X'eVcUVSeYVcVXZdecReRUR]]ed \ + TCBGC@ZUReVUdfSdZUZRcZVdZdWZ]VUYVcVhZeYafcdfReeVXf]ReZV0*S$.$ZZZ$6$&ViTVae \ + WceYVZdecfVedcVWVccVUe.'S&.'T&.'U&.'V&.'WSV]h(EfcdfReeYZdcVXf]ReZYV \ + cVXZdecReYVcVSjRXcVVdeWfcZdYRTajWRjdfTYZdecfVeWZ]VUYVcVhZeYeYVH:8 \ + cVbfVde( .'S fRcRejWTVceRZZXReZTZWZT7V]]IV]VaYV8(RUHfeYhVdeVc7V]]IV]VaYV8 \ + :iYZSZe.'TeYVaVcZUVUZX9VTVSVc-&,*$"; + + #[test] + fn test_detect_encoding_issues_shifted_cipher_text() { + assert!(detect_encoding_issues(SHIFTED_CIPHER_TEXT)); + } + + #[test] + fn test_shifted_cipher_below_sample_threshold_not_flagged() { + // Fewer than 200 ASCII letters: not enough evidence to condemn. + assert!(!detect_encoding_issues("8VceZWZTReVW9VdZXReZdhZeY")); + } + + #[test] + fn test_clean_prose_not_flagged_as_cipher() { + let prose = "Certificate of Designations with respect to Series C Preferred Stock, \ + filed February 18, 2020. No instrument which defines the rights of holders of \ + long-term debt of the registrant and all of its consolidated subsidiaries is \ + filed herewith pursuant to Regulation S-K, Item 601. Pursuant to this regulation, \ + the registrant hereby agrees to furnish a copy of any such instrument to the SEC \ + upon request."; + assert!(!detect_encoding_issues(prose)); + } + + #[test] + fn test_camel_case_code_not_flagged_as_cipher() { + let code = "The getElementById and querySelectorAll methods return DOM nodes. Use \ + addEventListener with removeEventListener, requestAnimationFrame with \ + cancelAnimationFrame, and setTimeout with clearTimeout. The XMLHttpRequest \ + object exposes onreadystatechange, responseText and getAllResponseHeaders. \ + Prefer createElement, appendChild, insertBefore and replaceChild for DOM \ + manipulation, and getBoundingClientRect for layout measurement."; + assert!(!detect_encoding_issues(code)); + } + + #[test] + fn test_accented_european_text_not_flagged_as_cipher() { + let swedish = "Regeringen föreslår att riksdagen antar förslaget till lag om ändring \ + i skatteförfarandelagen. Bestämmelserna föreslås träda i kraft den första januari. \ + Förslaget innebär att företag med säte i utlandet måste lämna särskilda uppgifter \ + till Skatteverket varje kvartal, och att avgiften höjs för överträdelser av de nya \ + bestämmelserna om rapporteringsskyldighet för gränsöverskridande arrangemang."; + assert!(!detect_encoding_issues(swedish)); + } + + #[test] + fn test_all_caps_text_not_flagged_as_cipher() { + let caps = "EXHIBIT INDEX PURSUANT TO ITEM 601 OF REGULATION SK CERTIFICATE OF \ + DESIGNATIONS WITH RESPECT TO SERIES C PREFERRED STOCK FILED FEBRUARY EIGHTEEN \ + TWENTY TWENTY AND INCORPORATED HEREIN BY REFERENCE TO THE ANNUAL REPORT ON FORM \ + TENK FOR THE PERIOD ENDED DECEMBER THIRTYFIRST TWENTY NINETEEN AS AMENDED"; + assert!(!detect_encoding_issues(caps)); + } + + // A Caesar shift of prose that stays within a single case block does not + // trigger the case-shift signal, but it permutes the letter histogram: the + // frequency SHAPE stays English-like while letter POSITIONS scramble, so + // the permutation signal catches it regardless of case. + const CAESAR_PROSE: &str = + "The registrant hereby agrees to furnish a copy of any such instrument to the \ + Commission upon request. This certificate of designations was filed February with \ + respect to Series Preferred Stock and incorporated herein by reference to the annual \ + report on form for the period ended December as amended and restated thereafter."; + + fn caesar_shift(text: &str, k: u8) -> String { + text.chars() + .map(|c| match c { + 'a'..='z' => (((c as u8 - b'a' + k) % 26) + b'a') as char, + 'A'..='Z' => (((c as u8 - b'A' + k) % 26) + b'A') as char, + _ => c, + }) + .collect() + } + + #[test] + fn test_mixed_case_caesar_shift_flagged() { + assert!(detect_encoding_issues(&caesar_shift(CAESAR_PROSE, 3))); + } + + #[test] + fn test_all_lowercase_caesar_shift_flagged() { + // Uniform all-lowercase garbled prose: the earlier mixed-case guard + // would have exempted this, so it must be caught by the case-agnostic + // permutation signal instead. + assert!(detect_encoding_issues(&caesar_shift( + &CAESAR_PROSE.to_lowercase(), + 5 + ))); + } + + #[test] + fn test_all_uppercase_caesar_shift_flagged() { + assert!(detect_encoding_issues(&caesar_shift( + &CAESAR_PROSE.to_uppercase(), + 7 + ))); + } + + #[test] + fn test_dna_sequence_not_flagged_as_cipher() { + // Non-linguistic ASCII: unlike English (low vowel ratio, low cosine) + // but not garbled. Its 4-letter alphabet makes the frequency profile + // too steep, so the shape cosine falls below the permutation threshold. + let dna = "ACGT".repeat(120); + assert!(!detect_encoding_issues(&dna)); + } + + #[test] + fn test_protein_sequence_not_flagged_as_cipher() { + let protein = + "MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGDGTQDNLSGAEKAVQVKVKALPDAQFEVVHSLAKWKR" + .repeat(6); + assert!(!detect_encoding_issues(&protein)); + } + + #[test] + fn test_ticker_list_not_flagged_as_cipher() { + let tickers = "AAPL MSFT GOOG TSLA NVDA AMZN META NFLX AMD INTC CSCO ORCL CRM ADBE QCOM \ + TXN AVGO MU LRCX KLAC ASML SNPS CDNS FTNT PANW " + .repeat(4); + assert!(!detect_encoding_issues(&tickers)); + } + + #[test] + fn test_text_quality_flags_shifted_cipher_page() { + let items = vec![ + test_text_item_on_page(1, SHIFTED_CIPHER_TEXT), + test_text_item_on_page(2, "A clean second page should not be routed to OCR."), + ]; + + let quality = analyze_text_quality(&items); + + assert!(quality.has_encoding_issues); + assert_eq!(quality.pages_needing_ocr, vec![1]); + assert_eq!( + quality.reasons_by_page.get(&1).cloned(), + Some(vec![OCR_REASON_SUSPECTED_GARBLED_TEXT.to_string()]) + ); + } + + #[test] + fn test_text_quality_cipher_stats_accumulate_across_items() { + // The garbled page arrives as many short spans; no single span has + // enough letters to flag on its own. + let items: Vec = SHIFTED_CIPHER_TEXT + .split_whitespace() + .map(|chunk| test_text_item_on_page(1, chunk)) + .collect(); + + let quality = analyze_text_quality(&items); + + assert_eq!(quality.pages_needing_ocr, vec![1]); + } + #[test] fn test_text_quality_flags_localized_cid_mojibake_span() { let items = vec![ diff --git a/tests/fixtures/shifted_cipher_tounicode.pdf b/tests/fixtures/shifted_cipher_tounicode.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fe7062f96e9e74c1dfbe38baf096ebb85c4b4014 GIT binary patch literal 120677 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

UP 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 literal 0 HcmV?d00001 diff --git a/tests/integration_tests.rs b/tests/integration_tests.rs index a7de497..c11ea0b 100644 --- a/tests/integration_tests.rs +++ b/tests/integration_tests.rs @@ -1356,6 +1356,32 @@ fn test_extract_regions_mem_identity_h_needs_ocr() { ); } +/// ParseBench `text_simple__att10k.pdf` (issue #118): the producer authored a +/// broken ToUnicode CMap that shifts every character by a per-range constant, +/// and the embedded subset font has no `cmap` table to recover from. The +/// resulting ciphertext is 100% printable ASCII, so it must be caught by the +/// substitution-cipher statistics and routed to OCR instead of served silently. +#[test] +fn test_extract_pages_mem_shifted_cipher_tounicode_needs_ocr() { + let buf = std::fs::read("tests/fixtures/shifted_cipher_tounicode.pdf").unwrap(); + let result = extract_pages_markdown_mem(&buf, None).unwrap(); + + assert_eq!(result.pages.len(), 1); + assert!( + result.pages[0].needs_ocr, + "shifted-cipher garbled page should be flagged needs_ocr" + ); + assert!( + result.pages[0].markdown.is_empty(), + "garbled markdown should be suppressed" + ); + assert_eq!(result.pages_needing_ocr, vec![1]); + assert_eq!( + result.pages[0].ocr_reason.as_deref(), + Some("suspected_garbled_text") + ); +} + #[test] fn test_extract_regions_mem_multiple_regions_per_page() { let buf = std::fs::read("tests/fixtures/nexo-price-en.pdf").unwrap();