Es ist ungewöhnlich, dass Leute”TNGD”-Ausgaben drucken wollen, daher war ich überrascht, als Lauri Reinhardt, der uns beim Support hilft, mir eine Nachricht von einem Leser weiterleitete, der fragte, ob es eine Möglichkeit gäbe, die E-Mail-Ausgabe von”TNGD”mit allen Bildern. Keiner von uns hatte jemals versucht, so etwas zu tun, aber der Leser hatte völlig Recht: Das Drucken einer „TNGD“-Ausgabe oder der Export als PDF führte zu leeren Kästchen anstelle der Bilder.
„TNGD“#1648 in PDF in der Vorschau – es werden keine Bilder geladen
Das Herumbasteln an der Mail-Einstellung „Mail-Aktivität schützen“ hat keinen Unterschied gemacht, und die Bilder wurden in der Nachricht selbst gut angezeigt – es hatte nichts mit dem Laden zu tun Remote-Inhalt. Noch verwirrender war die Tatsache, dass Mimestream, das ich mit Gmail verwende, unter dem gleichen Problem litt, aber nur in macOS 12 Monterey, nicht in macOS 13 Ventura. Das Drucken über die Weboberfläche von Google Mail funktionierte ebenfalls einwandfrei.
Ein Blick auf die Rohquelle unserer Probleme offenbarte sofort einen schlagenden Beweis: ein loading=”lazy”-Attribut für jedes IMG-Tag in Artikeln. Den Sponsorenbannern oben in der Ausgabe fehlte dieses Attribut, und sie erschienen in PDFs einwandfrei. Neugierig wandte ich mich an Neil Jhaveri, den Entwickler von Mimestream, der früher bei Apple an Mail gearbeitet hat. Er sagte, dass Mail eine Offscreen-Webansicht generiert, auf das Eintreffen des „Lade“-Teils des Dokuments wartet und dann „druckt“. Aber loading=”lazy”bewirkt, dass Bilder nur geladen werden, wenn sie in die Ansicht gescrollt werden, was beim Drucken nie passiert. Mimestream teilte das Problem, zumindest in Monterey, weil es WebKit zum Drucken verwendet, genau wie Mail. Neil empfahl, das Attribut loading=”lazy”zu löschen, weil er nicht glaubte, dass Bilder (zumindest solche mit den Attributen width und height) die Darstellung der Seite ohnehin blockieren würden, bis sie geladen sind.
Während dieser Gespräche stieß Lauri auf eine Problemumgehung, die im Zusammenhang mit Neils Erklärung sinnvoll ist. Sie postulierte, dass die Bilder möglicherweise zu groß zum Laden seien, also versuchte sie, sie mit der Option „Skalieren“ im Dialogfeld „Drucken“ zu verkleinern, was dazu führte, dass zumindest einige Bilder angezeigt wurden. Ich habe Tests durchgeführt und festgestellt, dass, wenn ich den Skalierungsprozentsatz auf 99 % ändere, einige Bilder geladen würden – aber sie wären unscharf – und andere würden leer bleiben. Wenn ich jedoch den Skalierungsprozentsatz stärker geändert habe, z. B. auf 87 %, und dann durch die gesamte Dokumentvorschau gescrollt habe, wurden alle Bilder im resultierenden PDF scharf angezeigt, selbst wenn ich die Skalierung später auf 100 % zurückgestellt habe. Vermutlich zwang das Aufrufen des Druckdialogs, die Ausgabe zu skalieren, WebKit, alle Bilder zu laden, sodass sie angezeigt werden konnten.
Als ich unseren Entwickler Eli Van Zoeren bat, das Attribut loading=”lazy”aus zu entfernen IMG-Tags bemerkte er, dass WordPress sie automatisch eingefügt hatte, also fügte er einen Filter hinzu, um sie aus den E-Mail-Versionen unserer Ausgaben zu entfernen. (Sein Code fügt der Ausgabe die Sponsor-Banner separat hinzu, weshalb ihnen dieses Attribut fehlt.) Ich war aufgeregt, den Fix mit der Ausgabe der nächsten Woche zu testen, nur um enttäuscht festzustellen, dass das Problem nicht verschwunden war. Es stellte sich heraus, dass WordPress, nachdem Eli loading=”lazy”herausgefiltert hatte, es durch ein ähnlich klingendes Attribut decoding=”async”ersetzte. Nach einer weiteren Runde Whack-an-Attribute verschwand das Problem endgültig.
“TNGD”#1649 im PDF-Format in der Vorschau – Bilder wurden korrekt geladen
Obwohl ich nicht empfehle, „TNGD“-Ausgaben zu drucken, formatieren wir sie nicht für den Druck, und sie wird ziemlich viel Papier verbrauchen – Sie werden jetzt zumindest die Bilder sehen. Interessanterweise haben beide obigen Screenshots zusätzliche leere Seiten am Ende. Ich weiß nicht, warum Mail sie hinzufügt, aber ich empfehle, sie zu entfernen. Wählen Sie „Datei“ > „Als PDF exportieren“, öffnen Sie die Datei in der Vorschau, wählen Sie die leeren Seiten (und alle anderen unnötigen Seiten) in der Seitenleiste aus und löschen Sie sie vor dem Drucken.
Ich bezweifle sehr, dass viele Menschen davon betroffen waren durch dieses Problem, aber mindestens ein”TNGD”-Leser wird glücklicher sein, und mit etwas Glück werden andere, die auf ein ähnliches Problem stoßen, diesen Artikel finden und herausfinden, wie es schneller gelöst werden kann.