Documentos · Kit de herramientas PDF
Qué sucede bajo el capó cuando fusionas archivos PDF en un navegador
· Cómo funciona
pdf formatos de archivo procesamiento del navegador
Fusionar archivos PDF parece grapar, pero la herramienta en realidad copia objetos de página, fuentes e imágenes de un gráfico de objetos a otro y escribe una nueva tabla de referencias cruzadas. Esta publicación explica ese proceso tal como ocurre dentro de una pestaña del navegador.
Lo básico que no lo es: por qué dos archivos PDF no pueden simplemente concatenarse como bytes y qué debe reconstruir una herramienta de combinación
Dos archivos PDF tienen cada uno su propio encabezado, números de objeto, árbol de páginas e información de referencia cruzada. Agregar los bytes del segundo archivo después del primero no agrega sus páginas al árbol de páginas del primer documento. Una fusión debe escribir un nuevo PDF con referencias que apunten a sus propios objetos.
Leer cada archivo en la memoria: cómo el navegador carga sus archivos PDF como matrices de bytes a través de File API sin ninguna carga
El selector de archivos le proporciona al navegador objetos de archivo, no URL del servidor. La interfaz PDF lee cada archivo seleccionado con file.arrayBuffer() y pasa bytes Uint8Array a la operación de procesamiento. La combinación no carga archivos. Esto es distinto de afirmar que visitar el sitio web nunca genera solicitudes de red: cargar el sitio en sí necesita una conexión.
Analizar el gráfico de objetos: encabezados, objetos numerados, el árbol de páginas y la tabla de referencias cruzadas que el analizador debe reconstruir.
La biblioteca PDF carga cada documento fuente y resuelve sus índices de páginas. Las páginas se refieren a objetos en otras partes del archivo, incluidas fuentes, imágenes y estado de gráficos. Una sección o secuencia de referencias cruzadas ayuda al lector a localizar objetos indirectos; no es una lista de páginas para pegar. Una entrada dañada o cifrada puede impedir el análisis.
Copiar páginas y sus recursos: por qué cada fuente, imagen y gráfico indican que las referencias de una página deben viajar con ellas
La implementación llama a PDFDocument.create(), luego a out.copyPages(fuente, source.getPageIndices()) para cada entrada en orden y agrega cada página copiada a la salida. La biblioteca transfiere las estructuras referenciadas que necesita cada página; no realiza capturas de pantalla de mapas de bits. No asuma que todas las funciones a nivel de documento se mueven con las páginas.
Escribir el archivo fusionado: renumerar los objetos, crear un nuevo árbol de páginas y una tabla de referencias cruzadas y luego entregarle una descarga.
Después de agregar las páginas, la biblioteca guarda una nueva matriz de bytes de PDF. Su escritor maneja referencias de objetos y serialización, en lugar de concatenar los archivos originales. La aplicación ofrece el resultado como descarga. Como se trata de un documento nuevo, el tamaño en bytes no tiene por qué ser igual a la suma de las entradas.
Ejemplo resuelto: fusionar una carta de presentación de tres páginas y un acuerdo escaneado de doce páginas, y lo que le indican el orden y el tamaño de las páginas del resultado.
Supongamos que un administrador de oficina selecciona primero una carta de presentación de tres páginas y después un acuerdo de doce páginas. El resultado debe tener quince páginas: cubra las páginas 1 a 3 y luego las páginas de acuerdo 4 a 15. Consulta la primera y la última página y el total antes de enviar el archivo. Un acuerdo escaneado puede mantener el resultado grande porque sus páginas contienen recursos de imágenes.
Lo que esto no cubre: marcadores, campos de formulario y metadatos de documentos, cuyo manejo depende de las propias reglas de la herramienta y está documentado en su página.
La copia de páginas no garantiza la conservación de marcadores, campos de formulario, metadatos o firmas. En particular, nunca asuma que una firma criptográfica sigue siendo válida después de una reescritura estructural. Conserve los originales y verifique por separado cualquier requisito legal de firma; el nuevo archivo no es un original firmado.
Conclusión: la fusión es una reescritura estructural, no una concatenación, y PDF Toolkit realiza esa reescritura en la pestaña sin que el archivo salga nunca de su dispositivo.
Una combinación de PDF es una reescritura estructural. PDF Toolkit lee los bytes seleccionados en la pestaña, copia las páginas en el orden de los archivos seleccionados y escribe un archivo nuevo. Para verificar el límite de procesamiento local durante su sesión, inspeccione el panel Red del navegador mientras realiza la fusión; distinga las cargas de activos del sitio web de cualquier carga de su documento.