Reader: PDF-Textlayer fehlt (macht PDF-Suche kaputt + blockiert PDF-Annotationen) #10
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Befund
Beim Bau des neuen Annotationen-Features (Marker/Notizen im Reader, siehe zugehöriger Commit) ist aufgefallen:
.pdf-text-layerexistiert nur als CSS-Regel instatic/css/app.css— im JS (static/js/app.js) wird nirgends ein Element mit dieser Klasse gebaut (keinrenderTextLayer-Aufruf, keine Span-Erzeugung über den PDF-Canvas).Konkrete Folge:
doReaderSearch()sucht im PDF-Zweig übercontentEl.querySelectorAll('.pdf-text-layer > span')— findet dort aber immer 0 Treffer, weil diese Spans nie erzeugt werden. Die PDF-Volltextsuche im Reader ist dadurch aktuell komplett funktionslos (unabhängig vom Annotationen-Feature, ein bereits bestehender Bug).Warum das hier relevant ist
Das neue Highlight/Notizen-Feature (Marker per Textauswahl, freiform Notizen über die linke Margin-Sidebar, Export als Textdatei) wurde bewusst nur für EPUB umgesetzt — mit dem Nutzer abgestimmt. EPUB nutzt XPath-Anker in den Fließtext (
buildEpubAnchor/resolveAnchorRangeinapp.js); das funktioniert, weil der komplette Buchtext als HTML im DOM steht. PDFs werden dagegen als Canvas gerendert (renderPdf()inapp.js) — ohne Text-Layer gibt es keinen adressierbaren DOM-Text, an dem sich Markierungen/Notizen verankern ließen.Vorschlag für die Folgearbeit
TextLayerBuilder/renderTextLayer) — Integration in die bestehende Custom-Canvas-Pipeline (Zoom, Spread-Modus, Pagination-ModuspdfPaginated) ist der eigentliche Aufwand.buildEpubAnchor(Seite + Position im Text-Layer statt Chapter-XPath), Marker-Rendering auf den Canvas-Seiten, Margin-Sidebar-Unterstützung für PDF.Siehe auch #8 (Podcast-Feature-Parity) als Beispiel für dieses Living-Issue-Muster — hier ähnlich: offenhalten, bis jemand das priorisiert.