Skip to main content
Guides·9 min de lecture·

Comment extraire les spécifications de matériaux d'un certificat PDF

Réponse rapide

Quick Answer

Pour extraire les spécifications de matériaux d'un certificat PDF : pour les recherches ponctuelles, utilisez la sélection de texte PDF ou le copier-coller. Pour l'extraction récurrente à grand volume, utilisez un outil d'extraction par IA qui mappe la composition chimique, les propriétés mécaniques, le numéro de coulée et les références normes à un schéma structuré. Les PDF natifs offrent une meilleure précision que les PDF numérisés.

Un certificat de test d'acérie PDF contient la preuve complète de la spécification de matériau pour un lot de matériau : la composition chimique, les résultats de l'essai mécanique, la norme et le grade contre lequel il a été testé, et la déclaration de l'acérie certificatrice. Extraire ces valeurs du PDF et les entrer dans un système utilisable—sans ressaisie manuelle—est le défi pratique que ce guide aborde.


Comprendre le contenu d'un PDF de spécification de matériau

Avant d'extraire, sachez ce que vous cherchez. Un MTC typique contient :

Champs d'en-tête/identité

  • Numéro de coulée (parfois appelé numéro de fondage, numéro de fusion ou numéro de lot)
  • Numéro et date du certificat
  • Référence de commande/PO
  • Nom et adresse de l'acérie certificatrice
  • Signataire et titre

Champs de spécification de matériau

  • Norme applicable (par ex. ASTM A106, EN 10210-1, API 5L)
  • Grade (par ex. Grade B, S355J2H, X52)
  • Forme du produit (tube sans soudure, tôle laminée à chaud, barre)
  • Dimensions nominales (OD, épaisseur de paroi, longueur)
  • État du traitement thermique (recuit, trempé-revenu, état laminé)

Tableau de composition chimique

  • Carbone (C), Manganèse (Mn), Silicium (Si), Phosphore (P), Soufre (S) au minimum
  • Éléments supplémentaires selon le grade : Chrome, Molybdène, Nickel, Vanadium, Niobium, Bore, Azote, etc.
  • Les valeurs sont généralement reportées en pourcentage pondéral avec 2-4 décimales

Résultats des essais mécaniques

  • Résistance à la traction (UTS), limite d'élasticité (YS/Rp0.2), allongement (%)
  • Pour les grades testés par choc : énergie absorbée Charpy (Joules) à température spécifiée
  • Dureté (HB, HV, HRC) le cas échéant

Données supplémentaires (le cas échéant)

  • Résultats du contrôle non destructif
  • Données de fil de soudure / métal d'apport (pour les produits soudés)
  • Registres de traitement thermique post-soudage
  • Résultats des essais hydrostatiques

Méthode 1 : Copier-coller manuel (documents uniques)

Pour les recherches occasionnelles et à faible volume :

  1. Ouvrez le PDF dans n'importe quel lecteur PDF
  2. Pour les PDF natifs (générés par machine) : utilisez l'outil de sélection de texte pour mettre en surbrillance et copier les valeurs directement. Remarque : les tableaux peuvent ne pas être copiés correctement—les valeurs peuvent arriver dans le mauvais ordre selon la façon dont le PDF a été généré.
  3. Pour les PDF numérisés : la couche de texte est une image, pas du texte sélectionnable. Vous devez lire les valeurs visuellement et les saisir.

Limitations : Lent, sujet aux erreurs pour les tableaux chimiques, pas de sortie structurée, pas de piste d'audit.


Méthode 2 : Extraction de texte PDF avec Python (programmée, PDF natifs)

Pour les développeurs qui ont besoin de traiter un lot de PDF natifs par programmation :

import pdfplumber

with pdfplumber.open("milling_cert.pdf") as pdf:
    for page in pdf.pages:
        # Extract all text
        text = page.extract_text()
        
        # Extract tables as lists
        tables = page.extract_tables()
        for table in tables:
            for row in table:
                print(row)

Ce que cela vous fournit : Texte brut et tableaux de matrices d'un PDF natif. Vous avez toujours besoin d'une logique de post-traitement pour identifier quel tableau est le tableau de chimie, quelle ligne est l'en-tête et comment associer les valeurs aux étiquettes d'éléments.

Limitations :

  • Fonctionne uniquement avec les PDF natifs (pas numérisés)
  • La structure du tableau est perdue pour les mises en page complexes (cellules fusionnées, en-têtes multi-lignes)
  • Pas d'identification de champ—vous devez écrire des règles pour trouver chaque valeur
  • Ne gère pas la variation de mise en page entre différentes aciéries

Cette approche est viable pour un scénario à fournisseur unique, à haut volume avec un format PDF stable. Ce n'est pas un analyseur de certificat à usage général.


Méthode 3 : Extraction basée sur l'IA (usage général)

Pour l'utilisation en production sur plusieurs fournisseurs et types de documents :

Un outil d'extraction par IA reçoit le PDF, classifie le type de document, identifie le schéma d'extraction applicable, extrait les valeurs avec des scores de confiance par champ et renvoie un enregistrement JSON structuré. Le processus est le même pour les PDF natifs et les documents numérisés, bien que la précision soit plus élevée pour les PDF natifs.

À quoi ressemble la sortie (simplifié) :

{
  "heat_number": "A87234",
  "applicable_standard": "ASTM A106",
  "grade": "Grade B",
  "chemical_composition": {
    "carbon": { "value": 0.18, "unit": "wt%", "confidence": 0.97 },
    "manganese": { "value": 1.06, "unit": "wt%", "confidence": 0.96 },
    "phosphorus": { "value": 0.012, "unit": "wt%", "confidence": 0.94 },
    "sulfur": { "value": 0.008, "unit": "wt%", "confidence": 0.95 }
  },
  "mechanical_properties": {
    "tensile_strength": { "value": 415, "unit": "MPa", "confidence": 0.98 },
    "yield_strength": { "value": 240, "unit": "MPa", "confidence": 0.97 },
    "elongation": { "value": 28.5, "unit": "%", "confidence": 0.95 }
  }
}

Chaque champ porte sa valeur, son unité et son score de confiance. Les champs à faible confiance sont orientés vers un examen manuel.


Défis courants d'extraction par type de champ

Numéros de coulée : Le format varie considérablement—certaines aciéries utilisent des codes purement numériques, d'autres utilisent des combinaisons alphanumériques avec tirets, d'autres incluent des références de lot ou de pièce d'essai. Les extracteurs doivent gérer la variabilité de format sans troncature ou transposition de caractères.

Unités : Les propriétés mécaniques peuvent être rapportées en MPa, N/mm², ksi ou kgf/cm² selon le pays de l'acérie et la norme applicable. La détection et la normalisation des unités sont requises pour la comparaison entre certificats. Une résistance à la traction de "60 ksi" et "414 MPa" sont équivalentes mais sembleront différentes sans normalisation compatible avec les unités.

Valeurs chimiques près des limites de détection : Certaines aciéries rapportent les éléments comme "<0.005" (en dessous de la limite de détection) plutôt qu'une valeur spécifique. L'extracteur doit traiter cela comme une valeur délimitée, pas une chaîne de texte ou un null.

Certification double : Un certificat couvrant deux normes simultanées (par ex. ASTM A106 Gr.B / ASME SA-106 Gr.B) doit enregistrer les deux références. Les extracteurs à norme unique suppriment silencieusement la deuxième référence.

Tableaux de dimensions de produit : Pour les certificats de tuyauterie, un tableau de dimensions listant l'OD, l'épaisseur de paroi et la longueur par numéro d'article est courant. Ce tableau doit être analysé séparément des données chimiques et mécaniques et lié par numéro d'article.


Après extraction : validation par rapport à la spécification

Les valeurs extraites ne sont utiles que si vous savez si elles sont conformes. La validation nécessite de comparer chaque valeur extraite par rapport aux limites de la norme applicable :

ChampValeur extraiteLimite normeRésultat
Carbone0.18 wt%≤ 0.30 wt%Conforme
Résistance à la traction415 MPa≥ 415 MPaConforme (au minimum)
Limite d'élasticité240 MPa≥ 240 MPaConforme (au minimum)
Allongement28.5%≥ 30%Non conforme

Sans une base de données de normes stockée et versionnée, cette validation nécessite que l'examinateur recherche manuellement les limites—annulant une grande partie des avantages de l'automatisation. Les plateformes comme TestCert intègrent les valeurs extraites avec un moteur de validation de normes au moment de l'extraction, de sorte que la conformité/non-conformité est déterminée automatiquement pour chaque champ extrait.


Questions fréquemment posées

Pourquoi copier du texte d'un certificat PDF produit-il des résultats corrompus ?

Deux causes courantes : (1) Le PDF utilise une police incorporée avec un codage de caractères non standard, provoquant le remplacement de caractères Unicode incorrects lors du copier-coller. (2) Le tableau de chimie a été créé comme une image plutôt que du texte sélectionnable. Dans le cas 1, une bibliothèque PDF qui gère correctement l'encodage produira de meilleurs résultats que le simple copier-coller. Dans le cas 2, l'OCR ou l'extraction par IA est nécessaire.

Comment savoir si un PDF a une couche de texte ou s'il s'agit purement d'une image numérisée ?

Essayez de sélectionner du texte sur la page. Si vous pouvez mettre en surbrillance des mots individuels, le PDF a une couche de texte. Si la sélection met en surbrillance la page entière ou rien, c'est un PDF image uniquement. En Python, pdfplumber ou PyMuPDF retourneront une chaîne de texte vide ou très courte pour les pages image uniquement, que vous pouvez utiliser comme heuristique de détection programmatique.

Puis-je extraire les spécifications de matériaux d'un certificat intégré dans un paquet de document plus grand ?

Oui, mais cela nécessite d'abord une étape de segmentation de document. Les paquets de documentation de projet regroupent souvent les MTC, les rapports d'inspection et les listes d'emballage en un seul PDF. L'extracteur doit identifier quelles pages appartiennent à quel type de document avant d'appliquer le schéma d'extraction approprié à chaque section.

Quel est le meilleur moyen d'extraire la chimie d'un certificat avec une mise en page de tableau non standard ?

Pour les mises en page inhabituelles—deux tableaux divisés sur la page, tableaux pivotés ou tableaux avec en-têtes non standard—un modèle de langage visuel surpasse les approches basées sur l'OCR car il interprète la mise en page visuellement plutôt que de s'appuyer sur la structure du texte. Si vous utilisez un outil basé sur des règles ou l'OCR, vous devrez ajouter un modèle personnalisé pour la mise en page de cette aciérie.

Comment gérer un certificat où les résultats mécaniques sont rapportés dans une unité différente de celle que ma base de données attend ?

Implémentez la normalisation des unités au niveau de l'extraction, pas au niveau de la base de données. Stockez une unité canonique (MPa pour la résistance, % pour l'allongement) et convertissez au moment de l'extraction en utilisant l'unité détectée à partir du certificat. Enregistrez à la fois la valeur d'origine et l'unité ainsi que la valeur normalisée dans la piste d'audit, de sorte que la conversion soit traçable.

Ready to automate your certificate workflow?

Try TestCert free

Guides connexes