come funziona unire i pdf
Come funziona davvero unire due PDF
Entrambi i file hanno un oggetto numerato 1. Quella singola collisione è tutta la ragione per cui unire è più che concatenare, e spiega tutto ciò che sopravvive all'operazione e tutto ciò che non sopravvive.
01
Perché non puoi semplicemente incollare un file dopo l'altro
Un PDF è un insieme di oggetti numerati più un indice di dove ciascuno comincia. Entrambi i file numerano i propri oggetti a partire da 1. Entrambi hanno un catalogo, un albero delle pagine e un dizionario dei font chiamato F1. Concatena i byte e ottieni due indici in competizione che descrivono due oggetti 1 in competizione, e il lettore che lo apre vedrà quello che trova per ultimo — cioè solo il secondo documento.
Quindi unire deve riscrivere. Ogni oggetto del secondo file viene copiato nel primo con un numero nuovo, e ogni riferimento dentro quegli oggetti viene riscritto perché punti ai numeri nuovi. Una pagina che diceva «il mio contenuto è nell'oggetto 12» ora dice «il mio contenuto è nell'oggetto 847».
Poi i due alberi delle pagine vengono innestati in uno solo, si costruisce una nuova tabella dei riferimenti incrociati con gli scostamenti corretti per tutto, e si scrive un nuovo trailer che punta al catalogo sopravvissuto.
- 1. Analizzare entrambi
- Leggere i grafi degli oggetti e gli alberi delle pagine. Non si renderizza nulla.
- 2. Rinumerare e copiare
- Ogni oggetto del file B riceve un identificatore nuovo, e ogni riferimento a esso viene riscritto.
- 3. Innestare gli alberi delle pagine
- Costruire un albero solo, nell'ordine che hai chiesto. Le pagine in sé non vengono toccate.
- 4. Ricostruire l'indice
- Scostamenti nuovi per ogni oggetto, trailer nuovo, file nuovo.
02
Perché unire non costa mai qualità
Non si decodifica nulla. I flussi delle immagini vengono copiati byte per byte, ancora nella codifica in cui sono arrivati. I flussi di contenuto vengono copiati invariati. I font vengono copiati invariati.
È tutta qui la ragione per cui unire è senza perdita e veloce. Unire 500 pagine è un esercizio di contabilità su qualche centinaio di migliaia di riferimenti tra oggetti, e una macchina moderna lo fa in un secondo o due. Confrontalo con comprimere, che deve decodificare e ricodificare ogni immagine del file.
Significa anche che un file unito è esattamente buono e cattivo quanto i suoi ingressi. Unire una scansione sfocata con un'esportazione nitida dà un documento sfocato a metà. Niente si normalizza.
03
Cosa va sistemato lungo la strada
Rinumerare gli oggetti è meccanico. Tutto ciò che si riferiva a quegli oggetti per nome anziché per numero non lo è.
- Segnalibri e sommario
- L'albero dei segnalibri punta a oggetti pagina. Va ricostruito e ripuntato, altrimenti i segnalibri del secondo documento finiscono sulle pagine del primo — o spariscono.
- Collegamenti interni
- I rimandi incrociati e i salti del sommario sono destinazioni che puntano a oggetti pagina, e hanno bisogno dello stesso rimappaggio dei segnalibri.
- Campi modulo
- I campi sono indirizzati per nome. Unisci due copie dello stesso modulo e ti ritrovi con due campi chiamati `nome`, che la maggior parte dei lettori tratta come un campo solo compilando entrambi. Appiattire prima lo evita.
- Risorse duplicate
- Entrambi i file incorporano Helvetica come sottoinsieme sotto nomi interni diversi. Niente può dimostrare che i sottoinsiemi siano intercambiabili, quindi viaggiano entrambi — ed è per questo che un file unito a volte pesa più della somma delle sue parti.
04
La cifratura deve uscire per prima
In un PDF cifrato, i flussi e le stringhe sono cifrati singolarmente, con una chiave per oggetto derivata dalla chiave di cifratura del file combinata con il numero e la generazione di quell'oggetto. Il numero dell'oggetto fa parte della chiave.
Il che significa che rinumerare un oggetto cifrato lo invalida in silenzio. Per unire, lo strumento deve prima decifrare con la chiave del file, copiare gli oggetti in chiaro, rinumerarli e cifrare il risultato sotto una chiave nuova se l'uscita deve essere protetta. È per questo che uno strumento di unione chiede la password invece di aggirarla, e per questo l'uscita esce senza cifratura a meno che tu non la protegga di nuovo dopo.
05
Dividere è la stessa operazione al contrario
Dividere costruisce un file nuovo contenente solo le pagine che hai chiesto, più ogni oggetto che quelle pagine raggiungono: i loro flussi di contenuto, i loro font, le loro immagini, e nient'altro. È un attraversamento di grafo a partire da un insieme di radici.
È per questo che tagliare a metà un documento di 100 pagine raramente dà due file grandi la metà. Se un font o un logo è usato su pagine sparse per il documento, entrambe le metà hanno bisogno della propria copia. Le risorse condivise vengono duplicate, non divise.