Text2Store
Descargar

Blog

Cómo imprimir una conversación de iMessage entera (incluso 84.000 mensajes)

En algún punto más allá de unos pocos miles de mensajes, «imprimir toda la conversación» deja de ser una casilla en una lista de funciones y se convierte en un problema de ingeniería. Mucha gente lo descubre por las malas: los foros están llenos de exportaciones que se quedan colgadas para siempre, dan páginas en blanco después de la 500 o directamente fallan. Nosotros también lo descubrimos por las malas, así que esto es lo que pasa realmente por dentro y lo que hizo falta para que una conversación de 84.000 mensajes se pudiera imprimir.

Por qué los hilos grandes rompen los exportadores

Casi todas las herramientas que generan una transcripción bonita, la nuestra incluida, acaban pidiendo a un motor de navegador que maquete la conversación y la pagine. Los motores de impresión de los navegadores se hicieron para páginas web, no para un único documento con años de mensajes y miles de fotos. Pídele a uno que pagine eso de una sola pasada y fallan tres cosas, de menor a mayor: tarda una eternidad, genera en silencio páginas en blanco en cuanto la memoria escasea y, al final, el proceso de renderizado se queda sin memoria y muere. Un caso real que marcó nuestro trabajo: una exportación de 8.400 mensajes produjo un PDF de 811 páginas que se quedaba en blanco a partir de la página 583. El motor no dio ningún error. Simplemente dejó de pintar.

Lo que funciona: trocear, comprobar, unir

  • Troceado. La transcripción renderiza como máximo 1.500 mensajes por pasada, y cada pasada imprime en su propio archivo parcial. Ninguna pasada llega nunca a ser lo bastante grande como para caer por el precipicio.
  • Un control de páginas en blanco. Cada parte se inspecciona después de escribirse: si el motor no pintó nada, la parte se descarta y se repite, y una parte que sigue sin pintarse se divide por la mitad y se vuelve a intentar. Una salida en blanco no puede llegar al documento final.
  • Una unión reforzada. Las partes se cosen en un único PDF, y el archivo unido se comprueba al escribirse frente a los fallos que importan a los lectores de PDF reales. Cada regla de esa comprobación existe porque una exportación rota de verdad nos la enseñó; los lectores estrictos como Acrobat rechazan archivos que los más permisivos abren sin problema.
  • Etiquetas, no apariencias. Una exportación en varias partes dice en sus encabezados «Parte 3 de 9, mensajes 12.001 a 13.500 de 84.000». Si se omitió algo, el documento lo dice.

Las cifras

La prueba de esfuerzo de todo esto es la conversación de 84.000 mensajes de un usuario real, años de mensajes con fotos por todas partes. Se exporta en un único PDF completo y legible. Para hacerse una idea: el mismo hilo ocupaba 1,05 GB en una versión temprana; el motor actual lo genera en 164 MB, y una conversación de 2.500 mensajes cargada de fotos se exporta en unos 17 segundos en un ordenador de sobremesa normal.

Imprimirlo de verdad

Una nota honesta: el propio diálogo de impresión tiene los mismos límites de pasada única que cualquier motor de navegador, así que para hilos muy largos Text2Store te lleva a Exportar > PDF en lugar de dejar que el diálogo falle, e imprimes desde el PDF, todo o solo las páginas que necesites. El paso a paso está en exportar los mensajes de texto del iPhone a PDF, y la versión corta de toda esta página en imprimir los mensajes de texto del iPhone.

¿Preguntas?

Escribe a hello@text2store.com. Si tienes un hilo que sospechas que es demasiado grande, de verdad nos encantaría saberlo.