Presentamos el nuevo Robot para unir PDF de Transloadit
Nos encantan nuestros Robots, ¡así que siempre es un placer anunciar el lanzamiento de uno nuevo! En el artículo de hoy tenemos la oportunidad de hacerlo, al dar la bienvenida al equipo a nuestro Robot /document/merge.

Como quizá ya hayas supuesto, el Robot /document/merge concatena varios PDF para formar un único documento de salida. Además, el Robot permite unir varios PDF protegidos con contraseña: basta con proporcionarle un array de contraseñas de entrada. También puedes proteger el PDF de salida proporcionando una contraseña de salida. La protección con contraseña es una parte de un flujo de trabajo seguro y no sustituye al control de acceso a tus subidas, al almacenamiento y a los enlaces compartidos.
Unir dos PDF
¡Veámoslo en acción! El siguiente Template tomará dos PDF protegidos con contraseña y los unirá. También puede interesarte usar uno de nuestros SDK para automatizar el procesamiento masivo de documentos.
<!-- This pulls Uppy from our CDN -->
<!-- For smaller self-hosted bundles, install Uppy and plugins manually: -->
<!-- npm i --save @uppy/core @uppy/dashboard @uppy/remote-sources @uppy/transloadit ... -->
<link
href="https://releases.transloadit.com/uppy/v6.0.6/uppy.min.css"
rel="stylesheet"
/>
<button id="browse">Select Files</button>
<script type="module">
import {
Uppy,
Dashboard,
ImageEditor,
RemoteSources,
Transloadit,
} from 'https://releases.transloadit.com/uppy/v6.0.6/uppy.min.mjs'
const uppy = new Uppy()
.use(Transloadit, {
waitForEncoding: true,
alwaysRunAssembly: true,
assemblyOptions: {
params: {
// It's often better store encoding instructions in your account
// and use a `template_id` instead of adding these steps inline
steps: {
':original': {
robot: '/upload/handle',
},
merge: {
use: {
steps: [':original'],
bundle_steps: true,
},
robot: '/document/merge',
result: true,
input_passwords: ['password1', 'password2'],
},
exported: {
use: ['merge', ':original'],
robot: '/s3/store',
credentials: 'demo_s3_credentials',
url_prefix: 'https://demos.transloadit.com/',
},
},
},
},
})
.use(Dashboard, { trigger: '#browse' })
.use(ImageEditor, { target: Dashboard })
.use(RemoteSources, {
companionUrl: 'https://api2.transloadit.com/companion',
})
.on('complete', ({ transloadit }) => {
// Due to `waitForEncoding:true` this is fired after encoding is done.
// Alternatively, set `waitForEncoding` to `false` and provide a `notify_url`
console.log(transloadit) // Array of Assembly Statuses
for (const assembly of transloadit) {
console.log(assembly.results) // Array of all encoding results
}
})
.on('error', (error) => {
console.error(error)
})
</script>
Esta demo pública utiliza documentos de muestra y contraseñas sencillas de demostración. Exporta tanto los originales como el PDF unido sin cifrar a un bucket público. Usa aquí únicamente archivos que no contengan información sensible; el ejemplo con almacenamiento privado que aparece más abajo está pensado para tu propia integración.
Como puedes ver, al pasar un array de contraseñas al parámetro input_passwords,
Transloadit procesa los PDF. Después, los documentos se unen en un único PDF de salida, que se
muestra a continuación.

Para proteger la salida con contraseña, configura output_password. Sustituye los
marcadores de contraseña del ejemplo siguiente en tu backend de confianza y usa una contraseña de
salida segura y única. Si no se especifica un orden, los archivos de entrada se ordenan
alfanuméricamente por nombre de archivo: proporciona input_passwords en ese mismo
orden o usa las opciones de ordenación de documentos.
Crea una credencial de Template para tu bucket privado de S3
y sustituye YOUR_AWS_CREDENTIALS por su nombre. Este ejemplo exporta únicamente el PDF
unido y cifrado. bucket-default evita solicitar una ACL pública para el objeto;
la política del bucket también debe mantenerlo privado. La ruta siguiente permanece dentro del
prefijo uploads/ de la política de la guía de configuración; actualiza tanto
la política como la ruta si cambias ese prefijo. Mantén las contraseñas fuera del código del
navegador, de los repositorios públicos y de los registros.
{
"steps": {
"merge": {
"use": {
"steps": [":original"],
"bundle_steps": true
},
"robot": "/document/merge",
"input_passwords": ["FIRST_INPUT_PASSWORD", "SECOND_INPUT_PASSWORD"],
"output_password": "REPLACE_WITH_A_STRONG_UNIQUE_PASSWORD",
"result": true
},
"exported": {
"use": "merge",
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"acl": "bucket-default",
"path": "uploads/merged/${unique_prefix}/${file.url_name}"
}
}
}
La contraseña de salida se aplica al PDF unido, no a los originales subidos ni a todas las copias de los datos. Restringe el acceso tanto a los archivos de entrada como a los resultados y comparte la contraseña de salida por separado del documento. Una contraseña débil o expuesta no ofrece una protección eficaz.
Para terminar
Hasta aquí la presentación de nuestro nuevo Robot. Tenemos algunos más listos para presentar, así que suscríbete a Dev Times (English) a continuación para estar al tanto de las próximas novedades de Transloadit.
