fix(pdf): zes opmaakfouten in de documentexport (#1789-#1794) + documentmaat 12pt #1795
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!1795
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/pdf-opmaakbugs-1790-1793"
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?
Waarom
Drie geleverde incidentrapporten teruggelezen als PDF leverde zes opmaakfouten in de documentexport op. Ze zijn ingediend als #1789–#1794 en hier gerepareerd, elk met een regressietoets die eerst rood was tegen de onherstelde code.
Vooraf ging een splitsing:
document_pdf_widgets.dartstond op 1025 regels tegen een plafond van 1026. Het kolombreedte-rekenwerk is naardocument_pdf_table_widths.dartverhuisd — het raakt geenpw.Widget, kent de stijl niet en was al los getoetst.Wat er is gerepareerd
Daarnaast: de standaardlettermaat voor documenten gaat van 15,5 naar 12 punt. 15,5 was schermmaat die als bladstandaard is meegereisd zonder ooit tegen papier gehouden te zijn.
Twee restpunten, bewust open
pw.Tablekent daar geen instelling voor enMultiPagekan een spannende widget niet vragen zich te verplaatsen. Een volledige reparatie vraagt een eigenSpanningWidgetdie na de opmaak vaststelt dat er alleen herhaalrijen geplaatst zijn en zichzelf terugtrekt — met kans op een oneindige lus wanneer de tabel op geen enkel blad past. Dat risico weegt hier niet op tegen de winst.minTableFontScalekrimpt de letter niet verder, dus die tabel houdt zijn afbrekingen; daar is de tabelvorm zelf de verkeerde keuze.Bewaker
Aangeroepen voor de wijziging van de standaardlettermaat, omdat die de betekenis van een bestaand
.mdraakt.Geen bezwaar op soevereiniteit of uitwisselbaarheid: het bestand verandert niet, het veld blijft gedocumenteerd en binnen bereik, er komt geen partij bij. Wel één punt dat stond:
toJsonschrijftdocumentBodyFontSizeonvoorwaardelijk, dus elk ooit opgeslagen profiel draagt zijn maat expliciet en verandert niet — geraakt worden alleen stijlen waarin het veld helemaal ontbreekt, van vóór het bestond. Dat is een bewuste herinterpretatie van die bestanden en hoort daarom in de CHANGELOG te staan, niet alleen in een commit. Toegevoegd.Drie doodlopende wegen, voor de volgende lezer
AnnotationUrlte liggen (per span een vers object), daarna aan de lengte van de linktekst. Allebei fout: het bleek de tabelcel, waar de ontleder één span per wóórd maakt terwijl een alinea één span oplevert._charWidthFactorin kleine letters meet en op een schreefloze letter geijkt is. Vandaar de marge op de schatting.Toetsplan
make checkgroenmake check-secretsenmake sastDe goot vóór een lijstpunt stond vast op `indent` (1,4 em). Een enkel cijfer plus punt past daar net in; vanaf "10." niet meer, en `package:pdf` brak het nummer dan middenin af — de `1` op de ene regel, de `0.` op de volgende. Zichtbaar in de CBW-notitie §7.2/7.3 en in §10 van het Q-schijf-rapport. De goot groeit nu mee met het breedste merkteken van de lijst. Eén maat voor de hele lijst en niet per punt: anders schuift de tekst bij item tien een stukje op en loopt de linkermarge uiteen. De regressietoets leest de tekstlaag terug en eist merkteken en punttekst aaneen ("10. punt 10"). Alleen op het nummer zoeken gaf een vals alarm: "punt 1" gevolgd door merkteken "2." leest ook als "1 2.".De kop van de eerste kolom stond boven élke kaart. Bij een korte kop ("Tijd") valt dat niet op; bij "Lokale tijd (CEST, UTC+02:00)" is het vijftig keer dezelfde regel in acht bladzijden. Een kolomkop hoort bij de kolom, niet bij de rij — hij staat nu één keer, boven de kolom waar hij over gaat. Daarnaast lijnt de tijd nu rechts uit, ook wanneer hij over twee regels breekt. De Column stond al op `end`, maar een afbrekende `Text` vult de volle breedte en zette zijn eigen regels links — waardoor een korte tijd rechts stond en een lange links, en de kolom rafelig oogde. De tekst-terugroep van de tijdlijn draagt daarvoor nu een uitlijning. De kaartkop ("GEBEURTENIS") blijft staan: die hoort wél bij de kaart.