PDF-export: een link van meerdere woorden wordt per woord onderstreept #1792

Closed
opened 2026-08-26 11:48:44 +00:00 by brenno · 2 comments
Owner

Wat is het probleem?

In de PDF-documentexport wordt een link die uit meerdere woorden bestaat woord voor woord onderstreept. De onderstreping stopt bij elke spatie en begint bij het volgende woord opnieuw. Eén link ziet er daardoor uit als een rij losse links.

Hoe te reproduceren

  1. Maak een document met een link waarvan de tekst uit meerdere woorden bestaat:
Zie [Rijksoverheid, Cyberbeveiligingswet vanaf 15 augustus 2026 van kracht](https://www.rijksoverheid.nl/).
  1. Exporteer naar PDF en zoom in op de link.

Verwacht gedrag

De onderstreping loopt door onder de hele linktekst, inclusief de spaties, en breekt alleen af aan een regeleinde.

Werkelijk gedrag

Waargenomen in OciDeck 0.4.10, Beoordeling-van-de-beheersing-van-de-gehoste-technische-omgeving-van-RWM-volledig.pdf, §9 Bronnen, pagina 13 (op 220 dpi gerenderd en ingezoomd bevestigd): "Rijksoverheid, Cyberbeveiligingswet vanaf 15 augustus 2026 van kracht" heeft zeven losse onderstrepingen met zichtbare gaten op elke spatie.

Ook zichtbaar in:

  • Incidentrapport-RWM-onjuiste-toegangsrechten-op-de-Q-schijf-volledig.pdf, pagina 10: "Autoriteit Persoonsgegevens — Datalek? Dit moet u doen";
  • Incidentrapport-RWM-aanval-op-de-externe-werkomgeving-RDWebRD-Gateway-volledig.pdf, §20 Bronnenregister, pagina's 69–70.

Vermoedelijke oorzaak

De linktekst wordt per woord als een eigen pw.Text/span met decoration: underline gezet, waardoor de spatie ertussen buiten de gedecoreerde span valt. Waarschijnlijk hetzelfde pad dat de AnnotationUrl plaatst (zie #1642).

## Wat is het probleem? In de PDF-documentexport wordt een link die uit meerdere woorden bestaat woord voor woord onderstreept. De onderstreping stopt bij elke spatie en begint bij het volgende woord opnieuw. Eén link ziet er daardoor uit als een rij losse links. ## Hoe te reproduceren 1. Maak een document met een link waarvan de tekst uit meerdere woorden bestaat: ```markdown Zie [Rijksoverheid, Cyberbeveiligingswet vanaf 15 augustus 2026 van kracht](https://www.rijksoverheid.nl/). ``` 2. Exporteer naar PDF en zoom in op de link. ## Verwacht gedrag De onderstreping loopt door onder de hele linktekst, inclusief de spaties, en breekt alleen af aan een regeleinde. ## Werkelijk gedrag Waargenomen in OciDeck 0.4.10, `Beoordeling-van-de-beheersing-van-de-gehoste-technische-omgeving-van-RWM-volledig.pdf`, §9 Bronnen, pagina 13 (op 220 dpi gerenderd en ingezoomd bevestigd): "Rijksoverheid, Cyberbeveiligingswet vanaf 15 augustus 2026 van kracht" heeft zeven losse onderstrepingen met zichtbare gaten op elke spatie. Ook zichtbaar in: - `Incidentrapport-RWM-onjuiste-toegangsrechten-op-de-Q-schijf-volledig.pdf`, pagina 10: "Autoriteit Persoonsgegevens — Datalek? Dit moet u doen"; - `Incidentrapport-RWM-aanval-op-de-externe-werkomgeving-RDWebRD-Gateway-volledig.pdf`, §20 Bronnenregister, pagina's 69–70. ## Vermoedelijke oorzaak De linktekst wordt per woord als een eigen `pw.Text`/span met `decoration: underline` gezet, waardoor de spatie ertussen buiten de gedecoreerde span valt. Waarschijnlijk hetzelfde pad dat de `AnnotationUrl` plaatst (zie #1642).
Author
Owner

Opgepakt. Tak fix/pdf-linkonderstreping-1792. Verwacht te raken: het inline-tekstpad in lib/services/pdf/document_pdf_widgets.dart waar een link zijn onderstreping en AnnotationUrl krijgt, plus een regressietoets.

Opgepakt. Tak `fix/pdf-linkonderstreping-1792`. Verwacht te raken: het inline-tekstpad in `lib/services/pdf/document_pdf_widgets.dart` waar een link zijn onderstreping en `AnnotationUrl` krijgt, plus een regressietoets.
Author
Owner

Opgelost in aa6d43bf2 (PR #1795). De oorzaak lag niet bij package:pdf maar bij de ontleder: in een tabelcel levert die de tekst van een link als één stuk per woord aan, terwijl dezelfde link in een alinea één stuk is. package:pdf voegt de onderstreping alleen samen bij een identiek stijl- én annotatieobject, en die maakt de renderer per stuk vers. Aangrenzende stukken met gelijke opmaak worden nu in de ontleder samengevoegd, zodat elk uitvoerpad meeprofiteert.

Twee doodlopende sporen, voor wie hier later komt: het lag niet aan AnnotationUrl (één object delen per link verandert niets) en niet aan de lengte van de linktekst — een link van vier woorden viel in een tabel ook al uiteen.

Opgelost in aa6d43bf2 (PR #1795). De oorzaak lag niet bij `package:pdf` maar bij de ontleder: in een **tabelcel** levert die de tekst van een link als één stuk per woord aan, terwijl dezelfde link in een alinea één stuk is. `package:pdf` voegt de onderstreping alleen samen bij een identiek stijl- én annotatieobject, en die maakt de renderer per stuk vers. Aangrenzende stukken met gelijke opmaak worden nu in de ontleder samengevoegd, zodat elk uitvoerpad meeprofiteert. Twee doodlopende sporen, voor wie hier later komt: het lag niet aan `AnnotationUrl` (één object delen per link verandert niets) en niet aan de lengte van de linktekst — een link van vier woorden viel in een tabel ook al uiteen.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1792
No description provided.