Converter documentos para formatos diferentes
🤖/document/convert converte documentos em diferentes formatos.

Na saída de HTML para PDF, a impressão começa quando os frames visíveis amostrados, seus documentos e suas fontes permanecem prontos por 500 ms. Após a navegação, a prontidão do PDF tem um limite de 30 segundos; uma página que não ficar pronta faz a conversão falhar. Frames ocultos não estendem o intervalo de prontidão. Conteúdo que aparece pela primeira vez durante a última janela de amostragem pode não ser capturado. Prepare o conteúdo dinâmico antes da captura.
Este Robot converte arquivos compatíveis para PDF, mas não converte entradas em PDF para outros formatos. Para renderizar páginas de PDF como imagens, use 🤖/image/resize. Para extração de texto nativo ou OCR de documentos PDF, use 🤖/document/extract e confira os respectivos requisitos de provedor e de entrada. Para OCR de imagens, use 🤖/image/ocr. Esses Robots de extração retornam o texto reconhecido; eles não adicionam uma camada de texto pesquisável ao PDF original.
Às vezes, um determinado tipo de arquivo pode não ser compatível com o que você está tentando fazer. Talvez sua empresa esteja tentando automatizar a formatação de documentos, mas a automação só funcione com docx, então todos os seus documentos precisam ser convertidos. Ou talvez seus arquivos jpg armazenados estejam ocupando muito espaço e você queira um formato mais leve. Seja qual for o caso, temos uma solução para você.
Com este Robot, você pode contornar os problemas que certos tipos de arquivo podem causar, convertendo seu arquivo para o formato mais adequado. Ele também funciona em conjunto com nossos outros Robots, permitindo ainda mais versatilidade ao usar nossos serviços.
Uma regra geral deste Robot é que converter arquivos para uma categoria de formato incompatível resultará em erro. Por exemplo, arquivos SRT podem ser convertidos para o formato VTT (e vice-versa), mas não para uma imagem.
Uma recusa genérica de carregamento do LibreOffice retorna USER_COMMAND_ERROR com o motivo “LibreOffice could not load the document. It may be damaged, password-protected, or in an unsupported format. If it opens elsewhere, please contact support.” Isso preserva o código de erro do usuário para integrações sem presumir que o documento esteja corrompido.
Quando os diagnósticos identificam um problema no serviço de conversão, a falha de carregamento retorna INTERNAL_COMMAND_ERROR com o motivo “LibreOffice could not load the document. Please contact support.” Os diagnósticos privados não são incluídos em nenhuma das respostas.
O JSON com marcações de tempo de /speech/transcribe com "format": "json" pode ser convertido para SRT. Defina "format": "srt" aqui. As palavras do JSON são agrupadas em blocos de legenda de até três palavras, com quebras no final de frases e em pausas superiores a 0,4 segundo. O uso de maiúsculas e minúsculas e a pontuação são preservados. A entrada JSON é limitada a 32 MiB e só é compatível com a saída SRT. A conversão de SRT para SRT copia os blocos de legenda originais sem alterações.
É possível converter arquivos a partir dos seguintes formatos:
aicsvdocdocxepsgifhtmljpglatexmdodaoddodtottpngpotppspptpptxppzpsrtfrtxsrtsvgtexttxtvttxhtmlxlaxlsxlsxxml
Exemplo de uso
Converter arquivos enviados por upload em documentos PDF:
{
"steps": {
"converted": {
"format": "pdf",
"robot": "/document/convert",
"use": ":original"
}
}
}Parâmetros
interpolateboolean | Record<string, boolean>Controla se as Assembly Variables são interpoladas em campos individuais de instruções.
Por padrão, a maioria dos campos de instruções dos Robots interpola Assembly Variables. Defina isso como
falsepara tratar todos os campos de instruções como texto literal, ou defina o caminho de um campo individual comofalsepara tratar apenas esse campo como texto literal. Para campos específicos de um Robot que são literais por padrão, defina isso comotrueou defina o caminho desse campo comotruepara voltar a usar a interpolação.Use nomes de campos como
pathou caminhos com pontos comoffmpeg.vfpara objetos aninhados.output_metaRecord<string, boolean> | boolean | Array<string>Permite especificar um conjunto de metadados cujo cálculo é mais custoso para a CPU e que, por isso, vem desativado por padrão para manter o processamento das suas Assemblies rápido.
Para imagens, você pode adicionar
"has_transparency": trueneste objeto para extrair se a imagem contém partes transparentes e"dominant_colors": truepara extrair um array de códigos de cores hexadecimais da imagem.Para imagens, você também pode adicionar
"blurhash": truepara extrair uma string BlurHash, uma representação compacta de um placeholder da imagem, útil para exibir uma prévia desfocada enquanto a imagem completa carrega.Para imagens,
"thumbhash": trueem vez disso extrai um ThumbHash codificado em base64 emmeta.thumbhash, junto commeta.has_alpha(se existe um canal alfa, mesmo quando totalmente opaco). Ele descreve pixels orientados por EXIF e usa o primeiro quadro de imagens animadas. A extração é feita em regime de melhor esforço: imagens acima de 40 megapixels, formatos não suportados ou uma decodificação com falha/limitada não geram placeholder. Uma extração bem-sucedida adiciona uma cobrança de metadados equivalente a 20% dos bytes desse arquivo. Nenhuma sobretaxa de ThumbHash se aplica quando desativado ou quando nenhum hash é gerado.Defina essa opção no Step que produz a imagem, como
/upload/handlepara originais enviados por upload ou/image/resizepara saídas processadas. Defini-la apenas em/transloadit/storenão solicita a extração: o armazenamento preserva os metadados do produtor. O Transloadit Storage persiste um hash gerado com sua versão imutável e o retorna em resultados armazenados e em leituras nativas de ativos. Uploads diretos para o S3 não geram placeholders. Um placeholder contém informações da imagem, portanto proteja-o com os mesmos controles de acesso da imagem completa.Para vídeos, você pode adicionar o parâmetro
"colorspace": truepara extrair o espaço de cores do vídeo de saída.Para vídeos, você também pode adicionar
"interlaced": truepara detectar se o vídeo é entrelaçado. Isso combina a flag barata do ffprobefield_ordercom uma passagem de amostragemidetlimitada sobre os primeiros quadros da origem, expondointerlaced,field_ordere um objeto de diagnósticointerlace_detectionemfile.meta. Isso é computacionalmente caro e cobrado de acordo.Para áudio, você pode adicionar
"mean_volume": truepara obter um único valor que representa o volume médio do arquivo de áudio.Você também pode definir isso como
falsepara pular a extração de metadados e acelerar a transcodificação.user_metaRecord<string, any>(padrão:{})Adiciona metadados JSON personalizados a cada arquivo emitido sem modificar seu conteúdo. Objetos e arrays aninhados são suportados.
A herança depende do Robot. Os valores são mesclados com o
user_metaexistente no arquivo de saída; o Step atual substitui as chaves de nível superior com o mesmo nome. Atribua explicitamente as chaves necessárias quando um Robot criar novas saídas.Nos Steps de processamento,
${file.*}se refere à primeira entrada e${result.*}ao arquivo emitido. Os valores são avaliados para cada saída após a execução do Robot, antes da extração subsequente de metadados e do armazenamento temporário. Em:original, os valores são avaliados para cada upload antes da extração de metadados.Os Steps subsequentes leem
${file.user_meta.key}. Consulte Metadados personalizados para ver um exemplo completo e as regras de herança.resultboolean(padrão:false)Se os resultados deste Step devem estar presentes no Assembly Status JSON
queuebatchDefinir a fila como “batch” rebaixa manualmente a prioridade dos Jobs deste Step, para evitar o consumo de vagas prioritárias de Jobs em Jobs que não precisam de tempo zero de espera na fila
force_acceptboolean(padrão:false)Forçar um Robot a aceitar um tipo de arquivo que ele teria ignorado.
Por padrão, os Robots ignoram arquivos que não conhecem. O 🤖/video/encode, por exemplo, ignora tranquilamente imagens de entrada.
Com o parâmetro
force_acceptdefinido comotrue, você pode forçar os Robots a aceitar todos os arquivos enviados a eles. Isso normalmente leva a erros e só deve ser usado para depuração ou para lidar com casos extremos.ignore_errorsboolean | Array<meta | execute>(padrão:[])Ignorar erros durante fases específicas do processamento.
Definir isso como
["meta"]fará com que o Robot ignore erros durante a extração de metadados.Definir isso como
["execute"]fará com que o Robot ignore erros durante a fase principal de execução.Definir isso como
trueequivale a["meta", "execute"]e fará com que erros sejam ignorados nas duas fases.usestring | Array<string> | Array<object> | objectEspecifica quais Steps usar como entrada.
- Você pode escolher qualquer nome para os Steps, exceto
":original"(reservado para uploads de usuários tratados pela Transloadit) - Você pode fornecer vários Steps como entrada usando arrays:
{ "use": [ ":original", "encoded", "resized" ] } - Você também pode marcar os Steps de entrada com
aspara transmitir intenção semântica aos Robots:{ "use": [ { "name": ":original", "as": "image" }, { "name": ":original", "as": "mask" } ] }
DicaProvavelmente é tudo o que você precisa saber sobre
use, mas você pode ver os casos de uso avançados.- Você pode escolher qualquer nome para os Steps, exceto
format— obrigatórioai | csv | doc | docx | eps | gif | html |O formato desejado para a conversão do documento.
markdown_formatcommonmark | gfm(padrão:"gfm")Markdown pode ser representado em diversas variantes, por isso, ao usar este Robot para transformar Markdown em HTML, especifique qual revisão está sendo usada.
markdown_themebare | github(padrão:"github")Este parâmetro reformula o estilo dos seus arquivos Markdown com base em várias predefinições prontas.
pdf_marginstring(padrão:"6.25mm,6.25mm,14.11mm,6.25mm")Margens do papel do PDF, separadas por
,e com unidades.Aceitamos os seguintes valores de unidade:
px,in,cm,mm.Atualmente, este parâmetro só é compatível com a conversão a partir de
html.pdf_print_backgroundboolean(padrão:true)Imprime os elementos gráficos de fundo do PDF.
Atualmente, este parâmetro só é compatível com a conversão a partir de
html.pdf_formatA0 | A1 | A2 | A3 | A4 | A5 | A6 |(padrão:"Letter")Formato do papel do PDF. Os valores não diferenciam maiúsculas de minúsculas.
Atualmente, este parâmetro só é compatível com a conversão a partir de
html.pdf_display_header_footerboolean(padrão:false)Exibe o cabeçalho e o rodapé do PDF.
Atualmente, este parâmetro só é compatível com a conversão a partir de
html.pdf_header_templatestringModelo HTML para o cabeçalho de impressão do PDF.
Deve ser uma marcação HTML válida com as seguintes classes, usadas para inserir os valores de impressão:
datedata de impressão formatadatitletítulo do documentourllocalização do documentopageNumbernúmero da página atualtotalPagestotal de páginas do documento
Atualmente, este parâmetro só é compatível com a conversão a partir de
htmle exige quepdf_display_header_footeresteja habilitado.Para alterar a formatação do elemento HTML, é necessário especificar
font-sizeem um elemento contêiner. Por exemplo, para centralizar o número da página no topo de uma página, você usaria o seguinte HTML como modelo de cabeçalho:<div style="font-size: 15px; width: 100%; text-align: center;"><span class="pageNumber"></span></div>pdf_footer_templatestringModelo HTML para o rodapé de impressão do PDF.
Deve usar o mesmo formato de
pdf_header_template.Atualmente, este parâmetro só é compatível com a conversão a partir de
htmle exige quepdf_display_header_footeresteja habilitado.Para alterar a formatação do elemento HTML, é necessário especificar
font-sizeem um elemento contêiner. Por exemplo, para centralizar o número da página no rodapé, você usaria o seguinte HTML como modelo de rodapé:<div style="font-size: 15px; width: 100%; text-align: center;"><span class="pageNumber"></span></div>