code wiki / _hdl_build / nx_pdf.nx

nx_pdf.nx

buildroot/runtime/_hdl_build/nx_pdf.nx

8001 B137 linesdepth 3pulls 3 transitivereach 0 importersview sourcekind tooltopic pdf
docsdependenciesstructsconstsfunctions

about

nx_pdf.nx -- sovereign PDF -> HTML preview (v1 = TEXT-LAYER preview). Composes the proven extractor nx_pdf_text (objects -> FlateDecode -> per-font /ToUnicode CMap -> UTF-8; rule 15 DRY, fork-exec'd) and adds the viewer half: a TEXT-QUALITY LINE FILTER (real PDFs leak non-text streams + glyph soup from subset fonts without usable ToUnicode -- a line is kept only if it looks like language: a >=3-letter word, >=40% ASCII-alpha of non-space bytes, no control bytes) then wraps the survivors as the standard 0-JS preview page. HONEST v1: text layer only -- figures/graphics/exact typography are NOT painted, and the page footer says so. Same `html <in> <out.html> [dlurl]` iface as nx_docx/nx_md/nx_csv, so the nx_doc_view registry routes .pdf with zero special-casing. license_tier: ORIGINAL

dependencies 2 imports · 0 importers

nx_syscalls.nx nx_itoa_lib.nx nx_pdf.nx

imports: nx_syscalls.nxnx_itoa_lib.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main pf_puts sys_write pf_slen sys_exit pf_exists sys_openat_rd sys_close pf_extract sys_fork sys_openat_wr sys_dup3 sys_mmap sys_execve sys_exit ↻ sys_wait4 pf_num nxi_out nxi_fd sys_mmap ↻ ccz_cat_num sys_write ↻ sys_munmap sys_mmap ↻ sys_read_file sys_openat_rd ↻ sys_lseek sys_mmap ↻ sys_read sys_close ↻ pf_to_html pf_cat pf_is_text pf_esc pf_cat ↻ sys_openat_wr ↻ sys_write ↻ sys_close ↻

structs

none

consts

11const K_MAGIC_6000: i64 = 6000
12const K_MAGIC_33554432: i64 = 33554432

functions

14func pf_slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8) { n=n+1 } return n }
called by 1: pf_puts
15func pf_puts(s: *u8) -> i64 { sys_write(1, s, pf_slen(s)); return 0 }
called by 1: main calls 2: sys_writepf_slen
20func pf_num(v: i64) -> i64 { nxi_out(v); return 0 }
called by 1: main calls 1: nxi_out
21func pf_cat(dst: *u8, off: i64, s: *u8) -> i64 { var i: i64=0; while s[i]!=(0 as u8) { dst[off+i]=s[i]; i=i+1 } return off+i }
called by 2: pf_escpf_to_html
23func pf_exists(path: *u8) -> i64 { let fd: i64=sys_openat_rd(path); if fd<0 { return 0 } sys_close(fd); return 1 }
called by 1: main calls 2: sys_openat_rdsys_close
26func pf_extract(inp: *u8, txtout: *u8) -> i64
46func pf_is_text(src: *u8, s: i64, e: i64) -> i64
called by 1: pf_to_html
70func pf_esc(dst: *u8, off: i64, src: *u8, s: i64, e: i64) -> i64
called by 1: pf_to_html calls 1: pf_cat
84func pf_to_html(txt: *u8, tlen: i64, out: *u8, dlurl: *u8) -> i64
called by 1: main calls 3: pf_catpf_is_textpf_esc
114func main(argc: i64, argv: *i64) -> i64