Documentos · PDF Kit de ferramentas
O que acontece nos bastidores quando você mescla PDFs em um navegador
· Como funciona
pdf formatos de arquivo processamento do navegador
Mesclar PDFs parece grampear, mas a ferramenta na verdade copia objetos de página, fontes e imagens de um gráfico de objeto para outro e escreve uma nova tabela de referência cruzada. Esta postagem aborda esse processo conforme ele acontece dentro de uma guia do navegador.
O básico que não é - por que dois PDFs não podem simplesmente ser concatenados como bytes e o que uma ferramenta de mesclagem deve reconstruir
Cada um de dois PDFs tem seu próprio cabeçalho, números de objeto, árvore de páginas e informações de referência cruzada. Acrescentar os bytes do segundo arquivo após o primeiro não adiciona suas páginas à árvore de páginas do primeiro documento. Uma fusão deve escrever um novo PDF com referências apontando para seus próprios objetos.
Lendo cada arquivo na memória — como o navegador carrega seus PDFs como matrizes de bytes por meio do Arquivo API sem qualquer upload
O seletor de arquivos fornece ao navegador objetos de arquivo, não URLs de servidor. A interface PDF lê cada arquivo selecionado com file.arrayBuffer() e passa bytes Uint8Array para a operação de processamento. A mesclagem não carrega arquivos. Isso é diferente de afirmar que a visita ao site nunca faz solicitações de rede: o carregamento do próprio site precisa de uma conexão.
Analisando o gráfico do objeto – cabeçalhos, objetos numerados, a árvore de páginas e a tabela de referência cruzada que o analisador deve reconstruir
A biblioteca PDF carrega cada documento de origem e resolve seus índices de página. As páginas referem-se a objetos em outras partes do arquivo, incluindo fontes, imagens e estado gráfico. Uma seção ou fluxo de referência cruzada ajuda o leitor a localizar objetos indiretos; não é uma lista de páginas para colar. Uma entrada danificada ou criptografada pode impedir a análise.
Copiando páginas e seus recursos - por que cada fonte, imagem e gráfico indicam que as referências de uma página devem viajar com elas
A implementação chama PDFDocument.create() e, em seguida, out.copyPages(source, source.getPageIndices()) para cada entrada em ordem e adiciona cada página copiada à saída. A biblioteca transfere estruturas referenciadas necessárias para cada página; não está fazendo capturas de tela de bitmap. Não presuma que todos os recursos no nível do documento se movem com as páginas.
Escrever o arquivo mesclado – renumerar objetos, construir uma nova árvore de páginas e tabela de referência cruzada e, em seguida, entregar a você um download
Após adicionar as páginas, a biblioteca salva uma nova matriz de bytes PDF. Seu gravador lida com referências de objetos e serialização, em vez de concatenar os arquivos originais. O aplicativo oferece o resultado em download. Por se tratar de um documento novo, o tamanho em bytes não precisa ser igual à soma das entradas.
Exemplo resolvido - mesclando uma carta de apresentação de três páginas e um contrato digitalizado de doze páginas, e o que a ordem e o tamanho das páginas do resultado indicam
Suponha que um administrador de escritório selecione primeiro uma carta de apresentação de três páginas e depois um contrato de doze páginas. O resultado deve ter quinze páginas: capa 1–3, depois páginas de contrato 4–15. Verifique a primeira e a última página e o total antes de enviar o arquivo. Um contrato digitalizado pode manter a saída grande porque suas páginas contêm recursos de imagem.
O que isso não cobre — marcadores, campos de formulário e metadados de documentos, cujo tratamento depende das regras da própria ferramenta e está documentado em sua página
A cópia de páginas não garante a preservação de marcadores, campos de formulário, metadados ou assinaturas. Em particular, nunca presuma que uma assinatura criptográfica permanece válida após uma reescrita estrutural. Guarde os originais e verifique separadamente quaisquer requisitos legais de assinatura; o novo arquivo não é um original assinado.
Conclusão: a fusão é uma reescrita estrutural, não uma concatenação, e o PDF Toolkit executa essa reescrita na guia com o arquivo nunca saindo do seu dispositivo
Uma mesclagem PDF é uma reescrita estrutural. O PDF Toolkit lê os bytes selecionados na guia, copia as páginas na ordem dos arquivos selecionados e grava um novo arquivo. Para verificar o limite de processamento local durante sua sessão, inspecione o painel Rede do navegador durante a mesclagem; distinguir as cargas de ativos do site de qualquer upload do seu documento.