De boekjesbug die door zijn eigen test kwam

Heb je tussen 24 augustus en 3 september een Publisher-boekje naar Word geconverteerd? Doe het opnieuw. De tekst kwam in de verkeerde panelen terecht. Het is nu opgelost, en deze post legt uit hoe het zover kwam.

Wat er misging

Een boekje wordt niet in leesvolgorde gedrukt. Pagina één deelt een vel met de laatste pagina, pagina twee staat naast pagina drie, en het geheel leest pas goed als het gevouwen is. Pagina's zo over vellen verdelen heet inslag, en wij doen het zodat jouw boekje afdrukt zoals Publisher het zou afdrukken.

Tekst die van het ene kader naar het volgende loopt, moet daar doorheen in de juiste volgorde gekoppeld blijven. Word koppelt geen keten die achteruit loopt. Onze inslag leverde soms precies zo'n omgekeerde keten op, en dan pikte elk paneel het verkeerde stuk van het verhaal op.

Er ging niets verloren. Elk woord stond nog in het bestand. Alleen op de verkeerde plek op het vel. Bij een kerkblad dat we bekeken, werd het vaste blok "Worship Notes" dwars over de agenda van die week gedrukt.

Wie het trof

Alleen Word-bestanden. PDF- en InDesign-uitvoer zijn nooit geraakt.

Alleen boekjes, dus bestanden waarvan de pagina's op gedeelde vellen worden ingeslagen. Gewone documenten, flyers en brieven gingen ongemoeid door.

In onze testset trof het 25 van de 897 boekjesbestanden. De andere 872 kwamen er precies zo uit als daarvoor.

De fout is duidelijk als hij optreedt. Er staat tekst op een paneel waar hij zichtbaar niet hoort. Als jouw Word-bestand goed las, was het goed.

Hoe het langs ons kwam

Dit is het deel dat het opschrijven waard is.

Elke wijziging in de motor moet een test tegen Publishers eigen uitvoer winnen voordat hij live gaat. De test hiervoor stelde één vraag: komt ons aantal pagina's overeen met dat van Publisher? Dat deed het, bij elk boekje in de controle. De wijziging ging eruit.

De test heeft nooit een gerenderde pagina geopend om ernaar te kijken.

Een boekje met door elkaar gehusselde tekst heeft precies het juiste aantal pagina's. Dus zei de meting dat de wijziging een verbetering was, en op het enige wat ze mat, was dat ook zo. De code deed wat we vroegen. Wij stelden de verkeerde vraag en kregen er een zelfverzekerd antwoord op terug.

Dat is de eerlijke versie. Het was geen subtiele bug die zich in een hoekje van de code verstopte. Het was een bug die in de open lucht stond, voor een test die niet keek.

De oplossing

Er zijn twee dingen veranderd.

Eerst het gedrag. Als een boekje niet kan worden ingeslagen zonder het verhaal uit de volgorde te halen, slaan we het niet in. Je krijgt dan de juiste tekst bij het niet-ingeslagen aantal pagina's. Een boekje dat als losse pagina's aankomt, zie je meteen en kun je gewoon gebruiken. Een boekje met door elkaar gehusselde alinea's is geen van beide.

Juiste inhoud gaat voor een kloppend aantal pagina's. Die volgorde van prioriteit stond nergens opgeschreven. Nu wel.

Daarna de test. Overeenkomst in aantal pagina's telt niet langer op zichzelf als bewijs voor een wijziging die tekst tussen kaders verplaatst. Als een wijziging woorden van volgorde kan laten wisselen, moet er iets naar de woorden kijken.

Ook in deze update

Word-bestanden. Zegels en sterexplosies komen aan als echte vormen in plaats van kale rechthoeken. Decoratieve BorderArt-randen komen als afbeeldingen door, dus bloemenranden en Griekse meanderhoeken staan echt op de pagina. Gegroepeerde objecten blijven in Word gegroepeerd in plaats van als een hoop losse onderdelen aan te komen.

InDesign- en Affinity-bestanden. Letterparen als fi en fl worden als losse letters getekend, net zoals Publisher ze tekent.

Alle formaten. Tekst met een contour houdt zijn contourkleur in plaats van hol uit te komen. Clipart die diagonaal is gedraaid, wordt niet meer platgedrukt doordat breedte en hoogte verwisseld zijn. En een woord dat als niet-onderstreept is gemarkeerd, wint nu van een alineastijl die alles onderstreept.

Voor de vorige ronde motorwerk, zie de update van eind augustus.

Kwam een boekje van jou verkeerd uit? Converteer het opnieuw. De voorbeeldweergave is gratis en converteren is onbeperkt voor eenmalig 49 USD.