Convertir des documents dans différents formats
🤖/document/convert convertit des documents dans différents formats.

Pour une sortie HTML vers PDF, l’impression démarre dès que les cadres visibles échantillonnés, leurs documents et leurs polices sont restés prêts pendant 500 ms. Après la navigation, la page dispose d’un délai maximal de 30 secondes pour devenir prête pour le PDF ; une page qui ne devient pas prête fait échouer la conversion. Les cadres masqués ne prolongent pas l’intervalle de disponibilité. Le contenu qui apparaît pour la première fois pendant la dernière fenêtre d’échantillonnage peut être manqué. Préparez le contenu dynamique avant la capture.
Ce Robot convertit les fichiers pris en charge en PDF, mais ne convertit pas les PDF en entrée vers d’autres formats. Pour obtenir un rendu des pages PDF sous forme d’images, utilisez 🤖/image/resize. Pour l’extraction de texte natif ou l’OCR de documents PDF, utilisez 🤖/document/extract et consultez ses exigences relatives au fournisseur et aux entrées. Pour l’OCR d’images, utilisez 🤖/image/ocr. Ces Robots d’extraction renvoient le texte reconnu ; ils n’ajoutent pas de couche de texte interrogeable au PDF d’origine.
Il arrive qu’un type de fichier ne prenne pas en charge ce que vous essayez de faire. Peut-être que votre entreprise cherche à automatiser la mise en forme de documents, mais que cela ne fonctionne qu’avec docx, de sorte que tous vos documents doivent être convertis. Ou peut-être que vos fichiers jpg stockés occupent trop d’espace et que vous voulez un format plus léger. Quel que soit le cas, nous avons la solution.
Avec ce Robot, vous pouvez contourner les problèmes que certains types de fichiers peuvent causer, en convertissant votre fichier dans le format le plus adapté. Il fonctionne aussi avec nos autres Robots, ce qui offre une polyvalence encore plus grande lors de l’utilisation de nos services.
En règle générale avec ce Robot, convertir des fichiers vers une catégorie de format étrangère entraîne une erreur. Par exemple, les fichiers SRT peuvent être convertis au format VTT (et inversement), mais pas en image.
Un refus générique de chargement par LibreOffice renvoie USER_COMMAND_ERROR avec le motif « LibreOffice could not load the document. It may be damaged, password-protected, or in an unsupported format. If it opens elsewhere, please contact support. » Cela conserve le code d’erreur utilisateur pour les intégrations, sans supposer que le document est corrompu.
Lorsque les diagnostics identifient un problème dans le service de conversion, l’échec de chargement renvoie INTERNAL_COMMAND_ERROR avec le motif « LibreOffice could not load the document. Please contact support. » Les diagnostics privés ne sont inclus dans aucune des deux réponses.
Le JSON horodaté provenant de /speech/transcribe avec "format": "json" peut être converti en SRT. Définissez ici "format": "srt". Les mots du JSON sont regroupés en sous-titres de trois mots maximum, avec une coupure aux fins de phrase et aux pauses de plus de 0,4 seconde. La casse et la ponctuation sont conservées. L’entrée JSON est limitée à 32 MiB et n’est prise en charge que pour une sortie SRT. Une conversion SRT vers SRT copie les sous-titres d’origine sans modification.
Il est possible de convertir à partir des formats de fichier suivants :
aicsvdocdocxepsgifhtmljpglatexmdodaoddodtottpngpotppspptpptxppzpsrtfrtxsrtsvgtexttxtvttxhtmlxlaxlsxlsxxml
Exemple d’utilisation
Convertir les fichiers téléversés en documents PDF :
{
"steps": {
"converted": {
"format": "pdf",
"robot": "/document/convert",
"use": ":original"
}
}
}Paramètres
interpolateboolean | Record<string, boolean>Détermine si les Assembly Variables sont interpolées pour chaque champ d’instruction.
Par défaut, la plupart des champs d’instruction des Robots interpolent les Assembly Variables. Définissez ce paramètre sur
falsepour traiter tous les champs d’instruction comme du texte littéral, ou définissez le chemin d’un champ individuel surfalsepour traiter uniquement ce champ comme du texte littéral. Pour les champs propres à un Robot qui sont littéraux par défaut, définissez ce paramètre surtrueou définissez le chemin de ce champ surtruepour réactiver l’interpolation.Utilisez des noms de champs tels que
path, ou des chemins avec points tels queffmpeg.vfpour les objets imbriqués.output_metaRecord<string, boolean> | boolean | Array<string>Permet de spécifier un ensemble de métadonnées dont le calcul est plus coûteux en puissance CPU et qui sont donc désactivées par défaut afin que le traitement de vos Assemblies reste rapide.
Pour les images, vous pouvez ajouter
"has_transparency": truedans cet objet pour déterminer si l’image contient des parties transparentes, et"dominant_colors": truepour extraire de l’image un tableau de codes couleur hexadécimaux.Pour les images, vous pouvez également ajouter
"blurhash": truepour extraire une chaîne BlurHash — une représentation compacte d’un espace réservé pour l’image, utile pour afficher un aperçu flou pendant le chargement de l’image complète.Pour les images,
"thumbhash": trueextrait plutôt un ThumbHash encodé en base64 dansmeta.thumbhash, accompagné demeta.has_alpha(qui indique si un canal alpha existe, même lorsque l’image est entièrement opaque). Il décrit les pixels orientés selon les données EXIF et utilise la première image des images animées. L’extraction est effectuée au mieux : les images de plus de 40 mégapixels, les formats non pris en charge ou un décodage échoué ou limité ne produisent aucun espace réservé. Une extraction réussie ajoute des frais de métadonnées équivalents à 20 % des octets de ce fichier. Aucun supplément ThumbHash ne s’applique lorsque l’option est désactivée ou lorsqu’aucun hash n’est produit.Définissez cette option sur le Step qui produit l’image, par exemple
/upload/handlepour les originaux téléversés ou/image/resizepour les sorties traitées. La définir uniquement sur/transloadit/storene déclenche pas l’extraction : le stockage conserve les métadonnées du Step producteur. Transloadit Storage conserve un hash généré avec sa version immuable et le renvoie dans les résultats stockés et lors des lectures natives de ressources. Les téléversements directs vers S3 ne génèrent pas d’espaces réservés. Un espace réservé contient des informations sur l’image : protégez-le donc avec les mêmes contrôles d’accès que l’image complète.Pour les vidéos, vous pouvez ajouter le paramètre
"colorspace": truepour extraire l’espace colorimétrique de la vidéo de sortie.Pour les vidéos, vous pouvez également ajouter
"interlaced": truepour détecter si la vidéo est entrelacée. Cette option combine l’indicateur ffprobe peu coûteuxfield_orderavec une passe d’échantillonnageidetlimitée sur les premières images de la source, et exposeinterlaced,field_orderainsi qu’un objet de diagnosticinterlace_detectionsousfile.meta. Cette opération est coûteuse en calcul et facturée en conséquence.Pour l’audio, vous pouvez ajouter
"mean_volume": truepour obtenir une valeur unique représentant le volume moyen du fichier audio.Vous pouvez également définir cette option sur
falsepour ignorer l’extraction des métadonnées et accélérer le transcodage.user_metaRecord<string, any>(par défaut :{})Ajoute des métadonnées JSON personnalisées à chaque fichier émis sans modifier son contenu. Les objets et tableaux imbriqués sont pris en charge.
L’héritage dépend du Robot. Les valeurs sont fusionnées avec la valeur
user_metaexistante du fichier de sortie ; le Step actuel remplace les clés de premier niveau correspondantes. Attribuez explicitement les clés requises lorsqu’un Robot crée de nouvelles sorties.Dans les Steps de traitement,
${file.*}désigne la première entrée et${result.*}le fichier émis. Les valeurs sont évaluées pour chaque sortie après l’exécution du Robot, avant l’extraction ultérieure des métadonnées et le stockage temporaire. Sur:original, les valeurs sont évaluées pour chaque téléversement avant l’extraction des métadonnées.Les Steps en aval lisent
${file.user_meta.key}. Consultez Métadonnées personnalisées pour un exemple complet et les règles d’héritage.resultboolean(par défaut :false)Indique si les résultats de ce Step doivent figurer dans l’Assembly Status JSON
queuebatchDéfinir la file d’attente sur « batch » abaisse manuellement la priorité des Jobs de ce Step afin d’éviter de consommer des emplacements prioritaires de Jobs pour des Jobs qui n’ont pas besoin d’un temps d’attente nul dans la file
force_acceptboolean(par défaut :false)Forcer un Robot à accepter un type de fichier qu’il aurait ignoré.
Par défaut, les Robots ignorent les fichiers qu’ils ne connaissent pas. Le Robot 🤖/video/encode, par exemple, ignorera volontiers les images en entrée.
Avec le paramètre
force_acceptdéfini surtrue, vous pouvez forcer les Robots à accepter tous les fichiers qui leur sont envoyés. Cela entraîne généralement des erreurs et ne doit être utilisé que pour le débogage ou pour traiter des cas limites.ignore_errorsboolean | Array<meta | execute>(par défaut :[])Ignore les erreurs pendant certaines phases du traitement.
Si vous définissez cette valeur sur
["meta"], le Robot ignorera les erreurs lors de l’extraction des métadonnées.Si vous définissez cette valeur sur
["execute"], le Robot ignorera les erreurs lors de la phase d’exécution principale.Définir cette valeur sur
trueéquivaut à["meta", "execute"]: les erreurs seront alors ignorées dans les deux phases.usestring | Array<string> | Array<object> | objectIndique quel(s) Step(s) utiliser comme entrée.
- Vous pouvez choisir n’importe quel nom pour les Steps, sauf
":original"(réservé aux téléversements des utilisateurs gérés par Transloadit) - Vous pouvez fournir plusieurs Steps en entrée à l’aide de tableaux :
{ "use": [ ":original", "encoded", "resized" ] } - Vous pouvez également étiqueter les Steps d’entrée avec
aspour transmettre une intention sémantique aux Robots :{ "use": [ { "name": ":original", "as": "image" }, { "name": ":original", "as": "mask" } ] }
AstuceC’est probablement tout ce que vous devez savoir sur
use, mais vous pouvez consulter les cas d’utilisation avancés.- Vous pouvez choisir n’importe quel nom pour les Steps, sauf
format— obligatoireai | csv | doc | docx | eps | gif | html |Le format souhaité pour la conversion de documents.
markdown_formatcommonmark | gfm(par défaut :"gfm")Markdown peut se présenter sous plusieurs variantes ; lorsque vous utilisez ce Robot pour transformer du Markdown en HTML, veuillez donc indiquer la révision utilisée.
markdown_themebare | github(par défaut :"github")Ce paramètre modifie en profondeur le style de vos fichiers Markdown à partir de plusieurs préréglages prêts à l’emploi.
pdf_marginstring(par défaut :"6.25mm,6.25mm,14.11mm,6.25mm")Les marges du papier PDF, séparées par
,et accompagnées d’unités.Nous prenons en charge les valeurs d’unité suivantes :
px,in,cm,mm.Actuellement, ce paramètre n’est pris en charge que pour une conversion depuis
html.pdf_print_backgroundboolean(par défaut :true)Imprime les éléments graphiques d’arrière-plan du PDF.
Actuellement, ce paramètre n’est pris en charge que pour une conversion depuis
html.pdf_formatA0 | A1 | A2 | A3 | A4 | A5 | A6 |(par défaut :"Letter")Format de papier du PDF. Les valeurs ne sont pas sensibles à la casse.
Actuellement, ce paramètre n’est pris en charge que pour une conversion depuis
html.pdf_display_header_footerboolean(par défaut :false)Affiche l’en-tête et le pied de page du PDF.
Actuellement, ce paramètre n’est pris en charge que pour une conversion depuis
html.pdf_header_templatestringModèle HTML pour l’en-tête de l’impression PDF.
Ce modèle doit être un balisage HTML valide utilisant les classes suivantes pour y injecter les valeurs d’impression :
datedate d’impression formatéetitletitre du documenturlemplacement du documentpageNumbernuméro de la page actuelletotalPagesnombre total de pages du document
Actuellement, ce paramètre n’est pris en charge que lors d’une conversion depuis
html, et nécessite que le paramètrepdf_display_header_footersoit activé.Pour modifier la mise en forme de l’élément HTML, il faut spécifier
font-sizedans un élément englobant. Par exemple, pour centrer le numéro de page en haut d’une page, vous utiliseriez le HTML suivant pour le modèle d’en-tête :<div style="font-size: 15px; width: 100%; text-align: center;"><span class="pageNumber"></span></div>pdf_footer_templatestringModèle HTML pour le pied de page de l’impression PDF.
Ce modèle doit utiliser le même format que le paramètre
pdf_header_template.Actuellement, ce paramètre n’est pris en charge que lors d’une conversion depuis
html, et nécessite que le paramètrepdf_display_header_footersoit activé.Pour modifier la mise en forme de l’élément HTML, il faut spécifier
font-sizedans un élément englobant. Par exemple, pour centrer le numéro de page dans le pied de page, vous utiliseriez le HTML suivant pour le modèle de pied de page :<div style="font-size: 15px; width: 100%; text-align: center;"><span class="pageNumber"></span></div>