
Hoe verschillende browsers PDF-tekst weergeven met verschillende lettertype-engines
Wanneer u hetzelfde PDF-bestand in Google Chrome en in Mozilla Firefox op dezelfde computer opent, verwerken twee totaal verschillende PDF-rendering-engines het document. Chrome maakt gebruik van PDFium, een C++-bibliotheek die oorspronkelijk is ontwikkeld door Foxit en nu wordt onderhouden door Google als onderdeel van het Chromium-project. Firefox maakt gebruik van PDF.js, een op JavaScript gebaseerde renderer ontwikkeld door Mozilla die volledig binnen de JavaScript-engine van de browser draait. Deze twee zoekmachines hanteren fundamenteel verschillende benaderingen voor het omgaan met lettertypen, en deze verschillen zorgen voor zichtbare variaties in de scherpte van de tekst, zelfs bij het renderen van identieke PDF-bronbestanden.
PDFium rendert tekst met behulp van de eigen lettertyperenderingstack van het besturingssysteem. Op Windows betekent dit dat het gebruik maakt van DirectWrite, dat sub-pixel anti-aliasing toepast die is geoptimaliseerd voor LCD-schermen. Op de Mac wordt Core Text gebruikt, dat een ander anti-aliasing-algoritme toepast dat voorrang geeft aan vormgetrouwheid boven pixel-rasteruitlijning. Deze verschillen op OS-niveau in de weergave van lettertypen betekenen dat PDF Fonts in dezelfde PDF er merkbaar anders uit kan zien wanneer deze wordt geopend in Chrome op Windows dan in Chrome op Mac, voordat zelfs maar rekening wordt gehouden met verschillen tussen browsers.
PDF.js hanteert een geheel andere benadering. Het rendert tekst op een HTML5-canvaselement met behulp van de eigen canvastekstweergave-API van de browser. Dit betekent dat de kwaliteit van de tekstweergave afhangt van de canvasimplementatie van de browser, die varieert tussen Firefox en Chrome, en van de logica van de browser voor het matchen van lettertypen, die bepaalt hoe lettertypen waarnaar in de PDF wordt verwezen, worden gelokaliseerd en geladen. Een lettertype dat Chrome in de map met systeemlettertypen lokaliseert en weergeeft met door hardware versnelde DirectWrite, kan door Firefox worden gekoppeld aan een iets andere lettertypevariant of worden weergegeven via een ander anti-aliasing-codepad.
Probeer PDF bewerken
Geen installatie nodig. Werkt rechtstreeks in uw browser.
Insluiten van lettertypen, vervanging en hun impact op de scherpte van tekst
Een PDF waarin alle lettertypen volledig zijn ingesloten, zou theoretisch in elke viewer identiek moeten worden weergegeven, omdat de exacte lettertypegegevens die nodig zijn om de tekst weer te geven zich in het bestand bevinden. In de praktijk worden zelfs volledig ingebedde lettertypen verschillend weergegeven in browsers, omdat de lettertype-rasterizer, de component die lettertypecontouren omzet in schermpixels, in elke weergave-engine anders is. PDFium gebruikt FreeType of de OS-native rasterizer, afhankelijk van het platform. PDF.js is afhankelijk van de canvastekstweergave van de browser, die indirect gebruikmaakt van de tekstweergavestapel van het besturingssysteem via de weergavepijplijn van de browser.
Wanneer lettertypen niet zijn ingesloten in de PDF, wat gebruikelijk blijft in documenten die zijn gemaakt door kantoorsuites en print-naar-PDF-stuurprogramma's die verwijzen naar systeemlettertypen in plaats van deze in te sluiten, loopt de PDF Viewing-ervaring zelfs nog meer uiteen tussen browsers. Chrome en Firefox hebben elk hun eigen logica voor lettertypevervanging en hun eigen set standaard vervangende lettertypen. Een PDF die verwijst naar 'Helvetica' zonder deze in te sluiten, kan in Arial in de ene browser worden weergegeven, in een andere schreefloze vervanger in een andere, en als lege rechthoeken in een derde als er geen geschikte vervanger is geconfigureerd.
Lettertypehints, het proces waarbij de contouren van lettertypen worden aangepast om ze in kleine formaten uit te lijnen met het pixelraster voor een scherpere schermweergave, is een andere bron van verschillen in scherpte tussen browsers. Desktop PDF-viewers passen instructies voor lettertypehints toe die zijn ingesloten in het lettertypebestand. PDF.js, die via een browsercanvas wordt weergegeven, negeert mogelijk hintinstructies of past deze gedeeltelijk toe, omdat de canvas-API geen controle over lettertypehints beschikbaar stelt aan de toepassing. Dit betekent dat kleine tekstgroottes, doorgaans 10 punten of minder, zachter of minder duidelijk kunnen lijken in browsergebaseerde viewers dan in desktopviewers op dezelfde computer.
Anti-aliasingverschillen en hun effect op de waargenomen scherpte
Anti-aliasing verzacht de gekartelde randen van teksttekens door randpixels te kleuren in tinten tussen de tekstkleur en de achtergrondkleur. Verschillende anti-aliasing-algoritmen produceren verschillende subjectieve indrukken van scherpte, en verschillende weergave-engines maken verschillende algoritme-keuzes.
Sub-pixel anti-aliasing, gebruikt door DirectWrite op Windows, maakt gebruik van de fysieke rangschikking van rode, groene en blauwe subpixels in LCD-schermen om de effectieve horizontale resolutie van tekstweergave te verdrievoudigen. Tekst die wordt weergegeven met anti-aliasing op basis van subpixels ziet er bij kleine formaten merkbaar scherper uit dan tekst die wordt weergegeven met anti-aliasing in grijstinten, waarbij elke pixel als een uniforme eenheid wordt behandeld. Chrome op Windows maakt gebruik van subpixel-anti-aliasing via DirectWrite. Firefox op Windows gebruikt standaard anti-aliasing in grijstinten voor op canvas weergegeven tekst, inclusief PDF.js-uitvoer. Dezelfde PDF die in Chrome en Firefox op dezelfde Windows-computer wordt bekeken, kan er scherp uitzien in de ene browser en enigszins zacht in de andere, uitsluitend vanwege verschillen in anti-aliasing.
Op beeldschermen met een hoge DPI worden de anti-aliasingverschillen minder zichtbaar omdat de hogere pixeldichtheid voldoende fysieke resolutie biedt om tekst netjes weer te geven, zelfs met eenvoudigere anti-aliasing-algoritmen. Een 4K-monitor met een besturingssysteemschaling van 200 procent heeft voldoende pixels per teken zodat de verschillen tussen subpixel- en grijswaarden-anti-aliasing nauwelijks waarneembaar zijn. Op standaard 1080p-schermen met een schaling van 100 procent, waarbij elk teken wordt weergegeven met relatief weinig fysieke pixels, heeft de anti-aliasing-keuze een veel grotere impact op de waargenomen tekstkwaliteit.
Praktische stappen om consistente weergave van PDF-tekst in alle browsers te garanderen
Als de PDF voornamelijk wordt bekeken via browsergebaseerde weergave van Web naar PDF, verbeteren verschillende methoden de tekstconsistentie tussen browsers. Sluit alle lettertypen in de PDF in, in plaats van te vertrouwen op systeemlettertypereferenties. Ingebedde lettertypen garanderen dat elke rendering-engine toegang heeft tot exact dezelfde lettertypegegevens, waardoor vervanging van lettertypen als bron van weergaveverschillen wordt geëlimineerd.
Gebruik lettertypen die zijn ontworpen voor schermweergave met normale tekstgroottes. Lettertypen met goede hintinstructies produceren consistentere resultaten in de rendering-engines dan lettertypen die afhankelijk zijn van de rasterizer om goede resultaten te produceren zonder hints. Voor het web geoptimaliseerde lettertypen van services als Google Fonts zijn doorgaans goed geschikt voor weergave op het scherm met gangbare tekstformaten, en het insluiten ervan in PDF's die bedoeld zijn voor browserweergave levert voorspelbaardere resultaten op in verschillende browsers dan het gebruik van voor drukwerk geoptimaliseerde lettertypen die zijn ontworpen voor uitvoer in offsetpersen.
Test de PDF in Chrome, Firefox en Edge voordat u deze op een webtoegankelijke locatie publiceert. Een vergelijking naast elkaar met 100 procent zoom op een scherm met standaardresolutie brengt verschillen in tekstscherpte aan het licht die de moeite waard zijn om aan te pakken voordat het document de eindgebruikers bereikt. Als de ene browser aanzienlijk zachtere tekst weergeeft dan de andere, kan het aanpassen van de instellingen voor het insluiten van lettertypen of het vergroten van de hoofdtekstgrootte met één punt ervoor zorgen dat alle drie de browsers visueel acceptabel zijn.
De PDF-exportopties van WukongPDF omvatten instellingen voor het insluiten van lettertypen die ervoor zorgen dat alle lettertypen volledig in het uitvoerbestand zijn ingesloten, waardoor vervanging van lettertypen als bron van verschillen in tekstweergave tussen browsers wordt geëlimineerd.
De bredere trend bij het renderen van PDF-bestanden in browsers is eerder gericht op convergentie dan op divergentie. Zowel Chrome's PDFium als Firefox's PDF.js ontvangen regelmatig updates die de kwaliteit en consistentie van de tekstweergave verbeteren. Twee jaar geleden waren de weergaveverschillen tussen deze motoren aanzienlijk groter dan nu. De voortdurende ontwikkeling van beide zoekmachines, aangedreven door het toenemende belang van webgebaseerde documentweergave, verkleint geleidelijk de kloof in de tekstkwaliteit tussen browsers. Voor documentuitgevers betekent deze trend dat de investering in cross-browser renderingtests vandaag de dag documenten oplevert die nog consistenter zullen worden weergegeven naarmate de onderliggende engine blijft verbeteren.
Voor toegankelijkheidsdoeleinden hebben de verschillen in tekstweergave tussen browsers een secundair effect dat verder gaat dan esthetiek. Schermlezers die tekst extraheren uit browser-gerenderde PDF's zijn afhankelijk van de nauwkeurigheid van de tekstextractie van de browser, die rechtstreeks verband houdt met de manier waarop de PDF-engine van de browser tekst intern weergeeft. Een browser die tekst scherp weergeeft, extraheert deze doorgaans ook nauwkeurig voor gebruik door schermlezers. Het testen van de PDF-toegankelijkheid met schermlezers in meerdere browsers zorgt ervoor dat het document niet alleen visueel consistent is, maar ook programmatisch toegankelijk is, ongeacht welke browser een schermlezergebruiker verkiest.
De praktische impact van deze verschillen tussen browsers hangt sterk af van het publiek en het distributiekanaal van het document. Een PDF die bedoeld is om te downloaden en te bekijken in de favoriete desktoptoepassing van de ontvanger, Acrobat, Preview of Foxit, heeft geen optimalisatie van de browserweergave nodig. Een PDF die in een webpagina is ingesloten en rechtstreeks in de browser door honderden of duizenden gebruikers wordt bekeken, profiteert aanzienlijk van de test- en optimalisatiepraktijken die in dit artikel worden beschreven. Door de optimalisatie-inspanningen af te stemmen op de primaire kijkcontext, worden de middelen daar besteed waar ze de meeste gebruikersgerichte impact hebben.
De keuze van het lettertypeformaat voor het insluiten van PDF's heeft ook invloed op de consistentie van de weergave in verschillende browsers. TrueType-lettertypen met goede hintinstructies leveren over het algemeen consistentere resultaten op bij de rendering-engines dan PostScript Type 1-lettertypen, die een ouder formaat zijn met minder geavanceerde ondersteuning voor hints. OpenType-lettertypen die zowel TrueType-contouren als PostScript-contouren in hetzelfde bestand bevatten, een indeling die OpenType CFF wordt genoemd, kunnen verschillende renderingresultaten opleveren, afhankelijk van het contourformaat dat de rendering-engine selecteert. Voor maximale consistentie tussen browsers kunt u OpenType-lettertypen met TrueType-smaak insluiten met hintinstructies die zijn geoptimaliseerd voor schermweergave met gangbare tekstgroottes.
Kleurbeheer werkt op subtiele manieren samen met tekstweergave, waardoor de waargenomen scherpte wordt beïnvloed. Een PDF met een ingesloten RGB-kleurprofiel kan tekst met een iets ander contrast tegen de achtergrond weergeven dan dezelfde PDF zonder kleurprofiel of met een CMYK-profiel. Browsers variëren in de ondersteuning van kleurbeheer voor PDF-inhoud, en de interactie tussen het kleurbeheer van de browser, de weergavekalibratie van het besturingssysteem en het ingebedde kleurprofiel van de PDF kan van invloed zijn op de vraag of zwarte tekst als puur zwart of als iets lichter donkergrijs wordt weergegeven, wat de scherpte perceptueel beïnvloedt, ook al is de resolutie van de tekstweergave identiek.
Probeer PDF bewerken
Geen installatie nodig. Werkt rechtstreeks in uw browser.
