Apresentamos o novo Robot de mesclagem de PDFs da Transloadit
Adoramos nossos Robots, então é sempre um prazer anunciar o lançamento de um novo! No post de hoje, temos a oportunidade de fazer exatamente isso, dando as boas-vindas ao nosso Robot /document/merge na equipe.

Como você já deve ter imaginado, o Robot /document/merge concatena vários PDFs para formar um único documento de saída. Além disso, o Robot permite mesclar vários PDFs protegidos por senha: basta fornecer um array com as senhas de entrada. Você também pode proteger o PDF de saída fornecendo uma senha de saída. A proteção por senha faz parte de um fluxo de trabalho seguro, mas não substitui o controle de acesso aos seus uploads, ao armazenamento e aos links compartilhados.
Mesclar dois PDFs
Vamos ver como funciona! O Template abaixo recebe dois PDFs protegidos por senha e os mescla. Você também pode se interessar em usar um dos nossos SDKs para automatizar o processamento de documentos em massa.
<!-- 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/v3.10.0/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/v3.10.0/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 demonstração pública usa documentos de exemplo e senhas simples para demonstração. Ela exporta os originais e o PDF mesclado sem criptografia para um bucket público. Use apenas arquivos sem dados sensíveis aqui; o exemplo abaixo com armazenamento privado é para sua própria integração.
Como você pode ver, ao passar um array de senhas para o parâmetro input_passwords, a
Transloadit processa os PDFs. Os documentos são então unidos em um único PDF de saída, mostrado
abaixo.

Para proteger a saída com senha, defina output_password. Substitua os valores de exemplo
das senhas abaixo no seu backend confiável, usando uma senha de saída forte e exclusiva. Sem uma
ordem explícita, os arquivos de entrada são classificados em ordem alfanumérica pelo nome do arquivo:
forneça input_passwords nessa mesma ordem ou use as
opções de ordenação de documentos.
Crie Credenciais de Template para seu bucket S3 privado
e substitua YOUR_AWS_CREDENTIALS pelo nome delas. Este exemplo exporta apenas o PDF mesclado
criptografado. bucket-default evita solicitar uma ACL pública para o objeto; a política
do bucket também deve manter o acesso privado. O caminho abaixo permanece sob o prefixo
uploads/ da política do guia de configuração; atualize a política e o caminho
juntos se alterar esse prefixo. Mantenha as senhas fora do código do navegador, de repositórios
públicos e de logs.
{
"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}"
}
}
}
A senha de saída se aplica ao PDF mesclado, não aos originais enviados nem a todas as cópias dos dados. Restrinja o acesso tanto às entradas quanto aos resultados e compartilhe a senha de saída separadamente do documento. Uma senha fraca ou exposta não oferece proteção efetiva.
Conclusão
Isso é tudo sobre o nosso mais recente Robot por hoje. Temos mais alguns prontos para apresentar, então fique por dentro das próximas novidades sobre a Transloadit assinando a Dev Times (English) abaixo.
