lllin000_PaperForge/paperforge
LLLin000 86e0d1419b feat: rotate rendered table images for rotated (landscape) tables
37LK5T97 Tables 1-3 span dir=[0,-1] (rotated 90° content on portrait page).
The table body AND caption are both rotated — the rendered JPEG showed
vertical text.

Fix:
- Add _table_has_rotated_content() in ocr_tables.py — checks asset
  span_metadata dir to detect rotated tables, returns 270° correction
- In build_table_inventory, compute union render_bbox (caption+asset)
  and store render_rotation_deg in the table entry
- In ocr_objects.py table render loop, use render_bbox + rotation_deg
  when available, passing rotation_deg to _crop_asset_from_pdf

Result:
  Tables 1-5 (rotated): 1908x2858 -> 2858x1908 (270° corrected, readable)
  Table 6 (normal): 987x191 -> unchanged (no rotation_deg)
428 regression tests pass.
2026-07-02 15:01:04 +08:00
..
adapters feat: add ocr_redo frontmatter field + sync preservation 2026-06-01 11:23:32 +08:00
command_files feat(skills): add /pf-log-reading and /pf-log-session slash commands 2026-05-12 20:55:32 +08:00
commands ocr rebuild: add --resume checkpoint, fix garbled progress bar, remove debug print 2026-06-26 17:31:52 +08:00
core feat: runtime contract hardening + skill/command truth alignment (Package A+B) 2026-05-16 22:38:43 +08:00
doctor chore: commit session work before hotfix switch 2026-05-18 22:47:30 +08:00
embedding chore: commit session work before hotfix switch 2026-05-18 22:47:30 +08:00
memory feat: stabilize paperforge query planning 2026-05-27 21:20:15 +08:00
plugin Merge branch 'ocr-v2' 2026-06-29 02:03:23 +08:00
schema feat: P0 fixes (ref sort, caption insert) + P1 figure containment render hygiene 2026-06-27 22:56:22 +08:00
services feat: P0 fixes (ref sort, caption insert) + P1 figure containment render hygiene 2026-06-27 22:56:22 +08:00
setup fix: remove v prefix from git tag references in install URLs; update versions.json 2026-05-25 11:45:11 +08:00
skills feat: classify OCR errors and degraded completions 2026-06-08 12:34:44 +08:00
worker feat: rotate rendered table images for rotated (landscape) tables 2026-07-02 15:01:04 +08:00
__init__.py bump: 1.5.14 -> 1.5.15 2026-06-01 19:46:46 +08:00
__main__.py fix: force UTF-8 encoding for all subprocess and stdout on Windows, fix pre-existing logger bug 2026-05-11 19:16:18 +08:00
cli.py ocr rebuild: add --resume checkpoint, fix garbled progress bar, remove debug print 2026-06-26 17:31:52 +08:00
config.py feat: runtime contract hardening + skill/command truth alignment (Package A+B) 2026-05-16 22:38:43 +08:00
logging_config.py chore: rename PaperForge Lite -> PaperForge across 27 files 2026-04-28 01:25:51 +08:00
ocr_diagnostics.py feat: bump PaddleOCR model from VL-1.5 to VL-1.6 2026-06-01 00:32:46 +08:00
pdf_resolver.py fix: add creators/extra to load_export_rows row dict, fix journal key lookup for first_author/journal/IF in library-records; add first_author, journal, impact_factor columns to Base views; fix PDF storage/ subdirectory resolution 2026-04-27 20:25:35 +08:00
query_planning.py style: fix lint issues in new Phase4.1/Phase5 code 2026-06-05 12:23:55 +08:00
setup_wizard.py feat: add Gemini CLI agent platform support (.gemini/skills) 2026-06-01 19:46:17 +08:00