Skip to content
    HAQQ
    • Prezzi
    Inizia Gratis
    Inizia GratisPrenota Demo
    Accedi
    1. Home
    2. Blog
    3. Docling Python: guida pratica per elaborare file nel 2026
    Torna al BlogGuide & Tutorial

    Docling Python: guida pratica per elaborare file nel 2026

    Converti PDF, Word e scansioni in Markdown pulito con Docling, la libreria Python open source. Passi di installazione, chunking ed esempi di codice pronti per RAG.

    May 20, 2026
    10 min di lettura
    |
    Jad JabbourJad Jabbour
    Docling Python: guida pratica per elaborare file nel 2026

    Lavorare con documenti in formati diversi è una sfida comune nello sviluppo di applicazioni di intelligenza artificiale. Che si tratti di elaborare PDF, documenti Word o file HTML, estrarre testo pulito e strutturato può rivelarsi sorprendentemente difficile. Docling è una libreria Python che rende questo processo semplice.

    Questa guida illustra gli elementi essenziali per usare Docling nell'elaborazione dei documenti, con particolare attenzione a esempi pratici e best practice applicabili da subito.

    Perché Docling?

    Docling risolve in modo unificato i problemi più comuni dell'elaborazione documentale. Offre un supporto multi-formato che funziona senza soluzione di continuità con PDF, documenti Word, presentazioni PowerPoint, HTML e altro ancora. La libreria include funzionalità OCR in grado di estrarre testo anche da documenti scansionati e immagini, rendendola versatile per diversi tipi di documento.

    Ciò che distingue Docling è la funzione di chunking intelligente, che suddivide i documenti in segmenti significativi preservando il contesto, invece di spezzare il testo in modo arbitrario. L'output è pulito e strutturato, sia che si abbia bisogno del formato markdown sia del testo semplice. Infine, Docling offre un'API semplice e intuitiva, facile da usare anche per gli sviluppatori alle prime armi con l'elaborazione documentale.

    Per iniziare

    Per prima cosa, installa Docling:

    bash
    pip install docling

    Utilizzo di base

    Convertire un documento

    Il modo più semplice di usare Docling è tramite il DocumentConverter:

    python
    from docling.document_converter import DocumentConverter
    
    # Create a converter
    converter = DocumentConverter()
    
    # Convert a document
    result = converter.convert("document.pdf")
    document = result.document
    
    # Export to markdown
    markdown_text = document.export_to_markdown()
    print(markdown_text)

    Tutto qui! Docling rileva automaticamente il formato del file e lo elabora di conseguenza.

    Lavorare con fonti di file diverse

    Docling può elaborare sia file locali sia URL remoti:

    python
    from docling.document_converter import DocumentConverter
    import requests
    import tempfile
    
    converter = DocumentConverter()
    
    # Local file
    result = converter.convert("/path/to/document.pdf")
    
    # Remote URL - download first
    url = "https://example.com/document.pdf"
    response = requests.get(url)
    with tempfile.NamedTemporaryFile(suffix='.pdf', delete=False) as tmp:
        tmp.write(response.content)
        tmp_path = tmp.name
    
    result = converter.convert(tmp_path)
    # Don't forget to clean up
    import os
    os.unlink(tmp_path)

    Quali formati sono supportati?

    Docling funziona pronto all'uso con molti formati di file comuni. Gestisce file PDF, inclusi i documenti scansionati tramite tecnologia OCR. I formati Microsoft Office come Word (.docx) e PowerPoint (.pptx) sono pienamente supportati, così come formati web come l'HTML. È inoltre possibile elaborare file Markdown, documenti in testo semplice e persino file immagine (.webp, .webp) grazie alle funzionalità OCR integrate.

    Il DocumentConverter rileva automaticamente il formato del file e applica il metodo di elaborazione appropriato, quindi non è necessario preoccuparsi di specificare esplicitamente il tipo.

    Suddivisione dei documenti in chunk

    Per molte applicazioni di intelligenza artificiale è necessario suddividere i documenti in porzioni più piccole (i cosiddetti "chunk"). L'HybridChunker di Docling rende questa operazione intelligente e semplice.

    Chunking di base

    python
    from docling.document_converter import DocumentConverter
    from docling.chunking import HybridChunker
    from transformers import AutoTokenizer
    
    # Convert document
    converter = DocumentConverter()
    result = converter.convert("document.pdf")
    document = result.document
    
    # Set up chunker with your tokenizer
    tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
    chunker = HybridChunker(
        tokenizer=tokenizer,
        max_tokens=512  # Maximum tokens per chunk
    )
    
    # Get chunks
    chunks = list(chunker.chunk(document))
    
    # Process chunks
    for i, chunk in enumerate(chunks):
        print(f"Chunk {i}: {chunk.text[:100]}...")

    Perché usare HybridChunker?

    L'HybridChunker offre una suddivisione intelligente dei documenti che va oltre il semplice conteggio di caratteri o parole. Preserva le strutture naturali del documento, come paragrafi e sezioni, garantendo che nessun chunk venga interrotto in modo maldestro a metà frase. Questo aspetto è particolarmente importante per mantenere il significato semantico del testo.

    • Preserva le strutture naturali del documento, come paragrafi e sezioni
    • Chunking consapevole dei token, che rispetta i limiti del modello di embedding
    • Dimensioni dei chunk configurabili in base alle esigenze specifiche
    • Preserva i metadati che tracciano l'origine di ciascun chunk

    Lavorare con i metadati

    Docling estrae metadati utili dai documenti:

    python
    from docling.document_converter import DocumentConverter
    
    converter = DocumentConverter()
    result = converter.convert("document.pdf")
    document = result.document
    
    # Access document metadata
    if hasattr(document, 'meta'):
        print(f"Document metadata: {document.meta}")
    
    # Chunk with metadata
    from docling.chunking import HybridChunker
    from transformers import AutoTokenizer
    
    tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
    chunker = HybridChunker(tokenizer=tokenizer, max_tokens=512)
    
    for chunk in chunker.chunk(document):
        print(f"Text: {chunk.text[:50]}...")
        if hasattr(chunk, 'meta'):
            print(f"Metadata: {chunk.meta}")

    Mettere tutto insieme

    Ecco un esempio completo che elabora un documento e lo prepara per l'uso in un'applicazione di intelligenza artificiale:

    python
    from docling.document_converter import DocumentConverter
    from docling.chunking import HybridChunker
    from transformers import AutoTokenizer
    
    def process_document(file_path, max_tokens=512):
        """Process a document and return chunks ready for embedding."""
    
        # Step 1: Convert document
        converter = DocumentConverter()
        result = converter.convert(file_path)
        document = result.document
    
        # Step 2: Set up chunker
        tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
        chunker = HybridChunker(
            tokenizer=tokenizer,
            max_tokens=max_tokens
        )
    
        # Step 3: Get chunks
        chunks = []
        for i, chunk in enumerate(chunker.chunk(document)):
            chunks.append({
                'text': chunk.text,
                'index': i,
                'source': file_path
            })
    
        return chunks
    
    # Usage
    chunks = process_document("my_document.pdf")
    print(f"Created {len(chunks)} chunks")
    for chunk in chunks:
        print(f"Chunk {chunk['index']}: {chunk['text'][:50]}...")

    Consigli pratici

    Elaborare più documenti

    python
    import os
    from pathlib import Path
    
    def process_folder(folder_path, max_tokens=512):
        """Process all PDFs in a folder."""
        all_chunks = []
    
        for file_path in Path(folder_path).glob("*.pdf"):
            try:
                chunks = process_document(str(file_path), max_tokens)
                all_chunks.extend(chunks)
                print(f"Processed {file_path.name}: {len(chunks)} chunks")
            except Exception as e:
                print(f"Failed to process {file_path.name}: {e}")
    
        return all_chunks

    Prova HAQQ AI gratis

    Sperimenta la redazione e ricerca legale con IA

    Esportare in formati diversi

    Docling può esportare i documenti in vari formati:

    python
    from docling.document_converter import DocumentConverter
    
    converter = DocumentConverter()
    result = converter.convert("document.pdf")
    document = result.document
    
    # Export to markdown
    markdown = document.export_to_markdown()
    with open("output.md", "w", encoding="utf-8") as f:
        f.write(markdown)
    
    # Export to plain text
    text = document.export_to_text()
    with open("output.txt", "w", encoding="utf-8") as f:
        f.write(text)

    Gestire gli errori in modo controllato

    python
    def safe_process_document(file_path):
        """Process document with error handling."""
        try:
            converter = DocumentConverter()
            result = converter.convert(file_path)
            return result.document
        except FileNotFoundError:
            print(f"File not found: {file_path}")
            return None
        except Exception as e:
            print(f"Error processing {file_path}: {e}")
            return None

    Costruire un sistema di ricerca documentale

    Uno dei casi d'uso più comuni per Docling è la costruzione di sistemi di ricerca documentale basati sull'intelligenza artificiale. Combinando l'elaborazione documentale di Docling con i modelli di embedding, è possibile creare potenti funzionalità di ricerca semantica.

    python
    from docling.document_converter import DocumentConverter
    from docling.chunking import HybridChunker
    from transformers import AutoTokenizer, AutoModel
    import torch
    
    # Process and embed documents
    def build_document_index(file_paths):
        converter = DocumentConverter()
        tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
        model = AutoModel.from_pretrained("bert-base-uncased")
        chunker = HybridChunker(tokenizer=tokenizer, max_tokens=512)
    
        document_index = []
    
        for file_path in file_paths:
            # Convert and chunk
            result = converter.convert(file_path)
            chunks = list(chunker.chunk(result.document))
    
            # Create embeddings for each chunk
            for chunk in chunks:
                inputs = tokenizer(chunk.text, return_tensors="pt",
                                 truncation=True, max_length=512)
                with torch.no_grad():
                    embedding = model(**inputs).last_hidden_state.mean(dim=1)
    
                document_index.append({
                    'text': chunk.text,
                    'embedding': embedding,
                    'source': file_path
                })
    
        return document_index

    Consigli sulle prestazioni

    Scegliere la dimensione corretta dei chunk

    Adatta la dimensione dei chunk al tuo modello di embedding:

    python
    # For most sentence transformers (512 token limit)
    chunker = HybridChunker(tokenizer=tokenizer, max_tokens=512)
    
    # For models with larger context windows
    chunker = HybridChunker(tokenizer=tokenizer, max_tokens=2048)

    Elaborare i file in parallelo

    python
    from concurrent.futures import ThreadPoolExecutor
    
    def process_multiple_files(file_paths, max_workers=4):
        with ThreadPoolExecutor(max_workers=max_workers) as executor:
            results = list(executor.map(process_document, file_paths))
        return results

    Conclusione

    Docling semplifica l'elaborazione documentale offrendo un'API semplice che consente di convertire qualsiasi documento con poche righe di codice. Le sue funzionalità di chunking intelligente suddividono i documenti in segmenti significativi che preservano contesto e struttura, rendendolo ideale per le applicazioni di intelligenza artificiale.

    Che tu stia costruendo un sistema di ricerca, un chatbot, uno strumento di analisi documentale o qualsiasi applicazione di intelligenza artificiale che debba lavorare con i documenti, Docling fornisce le fondamenta di cui hai bisogno.

    La combinazione di facilità d'uso e funzionalità avanzate rende questa libreria una scelta eccellente sia per la prototipazione sia per le applicazioni in produzione. Con il supporto multi-formato per PDF, documenti Word, HTML e altro ancora, oltre all'OCR integrato per i documenti scansionati, Docling gestisce la complessità dell'elaborazione documentale al posto tuo.

    Risorse

    Puoi trovare il progetto Docling su GitHub, dove sono disponibili il codice sorgente e documentazione aggiuntiva. Per lavorare con modelli transformer e tokenizer, consulta la documentazione di Hugging Face Transformers. La documentazione di Docling fornisce informazioni più dettagliate sulle funzionalità avanzate e sulle opzioni di configurazione.

    • Docling GitHub
    • Hugging Face Transformers
    • Documentazione Docling

    Approfondimenti correlati

    • context engineering per un'IA legale affidabile
    • la revisione tabellare dei documenti per l'IA legale
    • la guida al legal engineering per i flussi di lavoro basati sull'IA
    J

    Jad Jabbour

    Tech Lead, AI

    Risorse correlate

    Document managementLegal AI ChateFirm practice management

    Articoli correlati

    Context Engineering per avvocati: la guida 2026 per un'IA legale affidabile

    Context Engineering per avvocati: la guida 2026 per un'IA legale affidabile

    HAQQ Legal AI lancia i Project Workspaces: una sola casa per ogni pratica legale

    HAQQ Legal AI lancia i Project Workspaces: una sola casa per ogni pratica legale

    Traduzione legale AI dall'arabo all'inglese: guida pratica

    Traduzione legale AI dall'arabo all'inglese: guida pratica

    Domande frequenti

    What is Docling in Python?

    Docling is an open source Python library from IBM Research that parses PDFs, Word documents, PowerPoint, HTML and images into clean, structured Markdown or JSON. It is widely used as a document preprocessing layer for AI and RAG pipelines.

    How do I install Docling?

    Install Docling with pip: 'pip install docling'. The package ships with default models for layout and OCR, and supports CPU and GPU inference. Python 3.10 or newer is required.

    What file formats does Docling support?

    Docling supports PDF (text and scanned), DOCX, PPTX, HTML, AsciiDoc, Markdown and common image formats (PNG, JPEG, TIFF). It preserves tables, headings, lists and reading order for downstream LLM consumption.

    Docling vs Unstructured vs LlamaParse?

    Docling is fully open source, runs locally and offers strong layout and table parsing. Unstructured is also open source with a broader connector ecosystem. LlamaParse is a hosted commercial service with strong table parsing. For private legal documents, Docling is the strongest default because it keeps data on your infrastructure.

    How does HAQQ use Docling?

    HAQQ uses document parsing technologies in the same family as Docling to ingest client files into private workspaces while preserving structure, tables and citations for legal analysis - without sending document content to public AI services.

    Cosa c'è dopo?

    Prova HAQQ AI gratis

    Sperimenta la redazione e ricerca legale con IA

    Calcola il tuo ROI

    Scopri quanto tempo e denaro HAQQ risparmia al tuo studio

    Esplora 380+ prompt legali

    Prompt pronti per ogni compito legale

    Torna al Blog

    Articolo precedente

    Recensione Legora 2026: prezzi, alternative e Legora vs HAQQ

    Articolo successivo

    ChatGPT per avvocati nel 2026: dove funziona e dove vince l'IA legale

    Mettilo in pratica

    Fai a HAQQ la domanda che questo articolo ti ha lasciato.

    HAQQ across all devices
    HAQQ Legal AI Platform Logo

    Il tuo Gemello AI Legale e Sistema di Gestione Studio per redigere, fatturare e vincere.

    Download on theApp StoreGet it onGoogle Play

    Documentazioni

    • Docs si apre in una nuova scheda
    • Per iniziare si apre in una nuova scheda
    • Stampa si apre in una nuova scheda
    • Aggiornamenti del prodotto si apre in una nuova scheda
    • Stato si apre in una nuova scheda
    • Sicurezza
    • FAQ si apre in una nuova scheda
    • Comunità si apre in una nuova scheda
    • Assistenza si apre in una nuova scheda

    Academy

    • Corso si apre in una nuova scheda
    • Competenze si apre in una nuova scheda
    • Clausole si apre in una nuova scheda
    • Libreria di prompt si apre in una nuova scheda
    • Strumenti si apre in una nuova scheda
    • Hub di ricerca si apre in una nuova scheda
    • Documenti si apre in una nuova scheda

    Sito web

    • eFirm
    • Chat IA Legale
    • App Mobile
    • Motore Giustiniano
    • HAQQ eBar
    • HAQQ eWallet
    • Prezzi
    • Confrontaci
    • Soluzioni
    • Blog
    • Conosci il team
    • Unisciti a noi si apre in una nuova scheda
    Apri l'app
    • Linguear en fr es it de pt
    • Contattoinfo@haqq.ai
    • Statooperativo·fondato
    • Termini di Servizio
    • Informativa sulla privacy
    • Informativa sui cookie
    • Trattamento Dati si apre in una nuova scheda
    • humans.txt si apre in una nuova schedalawyers.txt si apre in una nuova schedasecurity.txt si apre in una nuova scheda
    © 2026 HAQQ Inc. Tutti i diritti riservati.Prodotto sviluppato internamente da HAQQ. Sito web costruito con strumenti web moderni.
    PDF
    DOCX
    HTML
    PPTX

    Markdown

    Clean, structured text

    📄

    PDF

    Including OCR

    📝

    Word

    .docx files

    📊

    PowerPoint

    .pptx slides

    🌐

    HTML

    Web pages

    📃

    Markdown

    .md files

    🖼️

    Images

    OCR support

    ❌ Arbitrary Split

    Context lost between chunks

    ✓ HybridChunker

    Section 1128 tokens
    Section 2256 tokens
    Section 3192 tokens
    Section 4384 tokens

    Preserves semantic meaning

    Extracting...

    Extracted Metadata

    title:Legal Agreement 2024
    author:John Smith
    pages:12
    created:2024-01-15
    Input Folder
    contract.pdf
    memo.docx
    brief.pdf
    report.html

    4

    Files Processed

    ~2.3 seconds

    📝

    Markdown

    📄

    Plain Text

    { }

    JSON

    Export to the format that fits your workflow

    Document
    Docling
    Chunks
    AI Ready

    From raw document to AI-ready embeddings in seconds