Come convertire in blocco file DOCX in PDF tramite la riga di comando di LibreOffice

Se si hanno decine di documenti Word, aprirli uno per uno in LibreOffice ed esportarli singolarmente è un'operazione lenta e soggetta a interruzioni. Un comando come questo soffice --convert-to pdfpuò convertire un batch, ma i problemi più comuni includono l'invio dei PDF alla cartella sbagliata, la perdita dei nomi dei file contenenti spazi, l'applicazione del processo a una finestra già aperta da LibreOffice o la produzione di PDF con un layout diverso da quello di Word. Il flusso di lavoro descritto di seguito inizia con un file di prova, passa a un comando batch sicuro e termina con la verifica di eventuali file mancanti o formattati in modo errato.

Questi esempi utilizzano la sintassi della riga di comando di LibreOffice attualmente documentata nella Guida di LibreOffice 26.8, verificata il 6 ottobre 2026. Utilizzano writer_pdf_Exportil filtro di esportazione PDF per i documenti di Writer. La conversione è adatta ai normali file DOCX, ma i layout complessi necessitano comunque di una revisione poiché LibreOffice e Microsoft Word potrebbero visualizzare alcuni caratteri e layout di pagina in modo diverso.

Prima di convertire una cartella

Installa LibreOffice sul computer che eseguirà la conversione. Su un server, utilizza il gestore di pacchetti o il programma di installazione per quel sistema e verifica che sofficesia disponibile nella shell dei comandi. Su Windows, l'eseguibile si trova solitamente in C:\Program Files\LibreOffice\program\soffice.exe; il percorso di installazione può variare.

Preparate due cartelle separate: una per i file DOCX di origine e una per i PDF risultanti. Iniziate con una cartella di output nuova o vuota. Se convertite in una cartella che contiene già PDF con gli stessi nomi di base, LibreOffice potrebbe chiedere di sovrascriverli o non sostituirli affatto, a seconda del processo e dell'ambiente. Mantenere separate le cartelle di origine e di output previene inoltre la formazione di cicli di conversione accidentali quando gli script analizzano una directory.

Per i documenti con caratteri tipografici non comuni, installa gli stessi font utilizzati dall'autore originale prima della conversione. I font mancanti possono modificare le interruzioni di riga, il numero di pagine, la larghezza delle tabelle e la paginazione anche se il file DOCX si apre senza errori.

1. Prova prima un file DOCX

Converti un documento rappresentativo prima di eseguire un'elaborazione batch di grandi dimensioni. Negli esempi seguenti, sostituisci i percorsi di esempio con i tuoi:

mkdir -p "/srv/docs/converted"
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "/srv/docs/converted" "/srv/docs/incoming/Annual Report.docx"

--headlessEsegue LibreOffice senza aprire la sua interfaccia grafica. --convert-toSeleziona il formato di output e il filtro opzionale, mentre --outdirspecifica il nome della destinazione. La tabella dei filtri di LibreOffice elenca le opzioni writer_pdf_Exportper l'output PDF da Writer. Rivedi il PDF di prova prima di convertire tutto: controlla le interruzioni di pagina, le intestazioni e i piè di pagina, le tabelle, le immagini, i collegamenti ipertestuali e i caratteri speciali.

Se il test non produce alcun PDF, verificare che il percorso di origine sia corretto, che il file sia leggibile e che la cartella di output sia scrivibile. Controllare inoltre che LibreOffice sia installato per lo stesso account che esegue il comando. Riferimenti ufficiali: Filtri di conversione file di LibreOffice e Parametri della riga di comando di LibreOffice .

2. Converti tutti i file DOCX con un unico comando Bash

Su Linux o macOS, apri Bash in un terminale e usa un modello di nome file. Assicurati sofficeche sia presente nel tuo PATH PATH; su macOS, potrebbe essere necessario richiamare l'eseguibile all'interno del pacchetto dell'applicazione LibreOffice. Questo esempio gestisce i file DOCX direttamente all'interno di una cartella di input:

src="/srv/docs/incoming"
out="/srv/docs/converted"

mkdir -p "$out"
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "$out" "$src"/*.docx

Bash espande *.docxgli argomenti dei file separati prima di avviare LibreOffice. Poiché ogni percorso viene passato come argomento, gli spazi nei nomi delle directory e dei file vengono preservati. Il PDF di output mantiene la radice del nome del file sorgente, quindi Annual Report.docxdiventa Annual Report.pdf. Il comando elabora solo i file in quella cartella; non cerca nelle sottocartelle.

Utilizza una destinazione vuota per la prima esecuzione. Prima di eseguire il comando con il carattere jolly, verifica che la cartella di input contenga i file desiderati e che tu disponga di spazio su disco sufficiente per i PDF. In Bash, un carattere jolly non corrispondente può essere interpretato letteralmente a meno che non si configurino le opzioni della shell; se la cartella potrebbe essere vuota, verifica prima la presenza di almeno un file DOCX oppure utilizza il ciclo per file nella sezione successiva.

3. Utilizzare un ciclo per cartelle di grandi dimensioni o una gestione esplicita degli errori.

Una shell potrebbe rifiutare un elenco di argomenti molto lungo se una cartella contiene migliaia di documenti. Un ciclo evita di inviare ogni nome di file al sistema operativo in un unico comando e gestisce gli spazi in modo sicuro quando i percorsi sono racchiusi tra virgolette:

src="/srv/docs/incoming"
out="/srv/docs/converted"
mkdir -p "$out"

found=false
for file in "$src"/*.docx; do
  [ -f "$file" ] || continue
  found=true
  soffice --headless --convert-to pdf:writer_pdf_Export --outdir "$out" "$file" || {
    printf 'Conversion failed: %s\n' "$file" >&2
  }
done
[ "$found" = true ] || { echo 'No DOCX files found.' >&2; exit 1; }

Il forciclo tra virgolette gestisce i nomi dei file con spazi e non invia l'intero elenco di file come un unico grande argomento. Esegue una conversione LibreOffice per ogni file, quindi può richiedere più tempo rispetto al singolo comando con caratteri jolly. Analizza solo i file presenti direttamente nella cartella di input. Per includere le sottocartelle, utilizzare una ricerca ricorsiva dei file e preservare ogni cartella di input nel layout di output; altrimenti due file con lo stesso nome di base potrebbero generare nomi PDF in conflitto.

4. Convertire una cartella in Windows PowerShell

In PowerShell, ogni percorso completo va passato come singolo argomento. Il seguente ciclo elenca i file per i quali LibreOffice restituisce un codice di uscita diverso da zero:

$soffice = 'C:\Program Files\LibreOffice\program\soffice.exe'
$inputDir = 'C:\Documents\incoming'
$outputDir = 'C:\Documents\converted'

New-Item -ItemType Directory -Force -Path $outputDir | Out-Null
$files = Get-ChildItem -LiteralPath $inputDir -Filter '*.docx' -File
if ($files.Count -eq 0) {
    throw "No DOCX files found in $inputDir"
}

$failed = @()
foreach ($file in $files) {
    & $soffice --headless --convert-to pdf:writer_pdf_Export --outdir $outputDir $file.FullName
    if ($LASTEXITCODE -ne 0) {
        $failed += $file.FullName
    }
}
if ($failed.Count -gt 0) {
    Write-Warning "Review failed conversions: $($failed -join '; ')"
}

Modificare $sofficese LibreOffice è installato in una posizione diversa. Get-ChildItemL'esempio di PowerShell non è ricorsivo; aggiungerlo -Recursesolo se si è previsto anche come evitare nomi di output duplicati da cartelle annidate. Un codice di uscita diverso da zero è un avviso utile, ma non sostituisce la verifica che ogni PDF previsto esista e si apra correttamente.

5. Prevenire i conflitti di profilo e le sovrascritture a sorpresa

LibreOffice necessita dei permessi di scrittura sul proprio profilo utente. Se è già in esecuzione una finestra interattiva di LibreOffice, una conversione da riga di comando potrebbe riutilizzare tale istanza o attendere un profilo bloccato. Chiudere le altre finestre di LibreOffice prima di eseguire un'operazione singola. Per l'automazione o per le operazioni che devono essere eseguite separatamente, assegnare alla conversione un profilo utente dedicato con l' -env:UserInstallationopzione di bootstrap. LibreOffice documenta l'opzione per la selezione di un profilo non predefinito:

soffice -env:UserInstallation=file:///tmp/lo-bulk-profile \
  --headless --convert-to pdf:writer_pdf_Export \
  --outdir "/srv/docs/converted" "/srv/docs/incoming/Annual Report.docx"

Utilizza una directory del profilo scrivibile dall'account che esegue la conversione. Non eseguire due processi LibreOffice simultanei sullo stesso profilo; utilizza un profilo diverso per ogni processo in esecuzione contemporaneamente. Mantieni l'automazione seriale finché non avrai testato la versione installata e la configurazione di archiviazione.

Non avviare una conversione in una cartella di produzione senza aver prima deciso come gestire i PDF esistenti. Esegui un backup o sposta i risultati precedenti, oppure scrivi i file in una nuova directory con data e ora. Un'esportazione in batch non deve sovrascrivere automaticamente un PDF firmato, approvato o precedentemente revisionato.

6. Risolvere i problemi più comuni relativi alla conversione in batch

  • Nessun file di output: verifica il pattern glob di input o il filtro PowerShell, racchiudi tra virgolette i percorsi che contengono spazi e conferma che la directory di output esista e sia scrivibile. Esegui nuovamente il test con un singolo file per distinguere un problema di percorso da un problema di elaborazione batch.
  • Il comando termina correttamente, ma alcuni file risultano mancanti: controlla l'output del terminale e lo stato di uscita, quindi confronta l'elenco dei file sorgente con i PDF creati. Un file DOCX danneggiato o protetto da password potrebbe dover essere riparato o aperto manualmente prima della conversione.
  • Se LibreOffice si blocca o segnala che un profilo è bloccato, chiudete tutti i processi interattivi di LibreOffice o riprovate con un -env:UserInstallationprofilo dedicato. Non eliminate la cartella del profilo mentre LibreOffice la sta utilizzando.
  • I caratteri o l'impaginazione potrebbero differire da quelli di Word: installa i caratteri necessari e confronta un PDF di esempio con l'originale. Per i documenti in cui la riproduzione esatta di Word è contrattualmente importante, verifica il layout nell'applicazione di authoring o tramite un servizio di rendering approvato.
  • I file PDF esistenti rimangono invariati: convertili in una cartella di output vuota e verifica che il comando punti a tale cartella. Evita di presumere che la riesecuzione di un batch sovrascriva sempre un PDF precedente.

LibreOffice accetta anche opzioni di esportazione in PDF dopo il nome del filtro, come intervalli di pagine o impostazioni relative all'accessibilità. Queste opzioni sono utili quando tutti i file devono avere lo stesso comportamento di esportazione, ma è consigliabile testarle su un campione prima di applicarle a un batch. Consultare i parametri ufficiali della riga di comando per l'esportazione in PDF .

7. Verificare il lotto finito

Non giudicare il successo solo in base al fatto che il comando sia tornato al prompt. Confronta il numero di file DOCX di origine con il numero di PDF nella cartella di output, quindi esamina alcuni PDF provenienti da diverse parti del batch. Verifica che ciascuno si apra, abbia il numero di pagine previsto e includa l'ultima pagina, le tabelle, le immagini, le intestazioni, i piè di pagina e i caratteri come lettere accentate o simboli.

Su Linux, è possibile contare i file di input e output non ricorsivi con:

find "/srv/docs/incoming" -maxdepth 1 -type f -iname '*.docx' | wc -l
find "/srv/docs/converted" -maxdepth 1 -type f -iname '*.pdf' | wc -l

Il conteggio delle corrispondenze è un utile controllo iniziale, ma non una prova che ogni file sia corretto. Se i conteggi differiscono, confrontate i nomi dei file per identificare le conversioni mancanti. Per un flusso di lavoro ad alto volume o regolamentato, registrate ogni percorso di origine, codice di ritorno, percorso di output e risultato della convalida e conservate i file di origine fino a quando i PDF non saranno stati esaminati. Il flusso di lavoro da riga di comando di LibreOffice elimina l'esportazione manuale ripetitiva, mentre una fase di convalida separata individua i problemi di layout e a livello di file che l'automazione non è in grado di valutare in modo affidabile da sola.

Lascia un commento

Come spostare un'immagine in Microsoft Word

Come spostare un'immagine in Microsoft Word

Scopri come trascinare un'immagine in Word, scegliere l'a capo automatico del testo, mantenerla all'interno di un paragrafo o fissarla sulla pagina e risolvere i problemi relativi alle immagini che non si spostano.

Come inserire una casella di controllo in Excel: due metodi semplici

Come inserire una casella di controllo in Excel: due metodi semplici

Scopri come inserire una casella di controllo in Excel con lo strumento "In-Cell", contare gli elementi selezionati con le formule o aggiungere un controllo modulo collegato nelle versioni desktop meno recenti.

Come inserire automaticamente le lettere in Excel: dalla A alla Z e oltre

Come inserire automaticamente le lettere in Excel: dalla A alla Z e oltre

Genera lettere dalla A alla Z, lettere minuscole o etichette oltre la Z in Excel utilizzando una formula con maniglia di riempimento, SEQUENZA o un elenco personalizzato riutilizzabile.

Come barrare il testo in Excel: scorciatoie e metodi passo passo

Come barrare il testo in Excel: scorciatoie e metodi passo passo

Scopri come barrare il testo in Excel su Windows, Mac e sul web, formattare solo una parte di una cella e rimuovere la linea senza cancellarne il valore.

Cos'è Microsoft Access? Come funzionano i suoi strumenti di database?

Cos'è Microsoft Access? Come funzionano i suoi strumenti di database?

Microsoft Access è un'applicazione di database per Windows che consente di archiviare record correlati, creare query, moduli di immissione dati e generare report. Scopri come funziona e quando è utile.

Importazione ed esportazione di Office Outlook 2010: spostare i dati con un file PST

Importazione ed esportazione di Office Outlook 2010: spostare i dati con un file PST

Scopri come importare un file PST in Outlook 2010 o esportare posta, contatti, calendario e attività. Segui i menu corretti ed evita di perdere cartelle o di creare file duplicati.

Come modificare l'altezza e la larghezza della griglia in Word 2010

Come modificare l'altezza e la larghezza della griglia in Word 2010

Scopri come regolare l'altezza e la larghezza delle linee della griglia in Word 2010, modificare la frequenza delle linee visibili e impostare la spaziatura orizzontale e verticale della griglia di disegno sottostante.

Recuperare la password di un file PST di Outlook con Nucleus Kernel

Recuperare la password di un file PST di Outlook con Nucleus Kernel

Recupera una password dimenticata di un file PST di Outlook seguendo i passaggi descritti da Kernel, che includono l'identificazione del file corretto, la creazione di un backup e la verifica dei limiti dello strumento.

Come inserire una pagina web attiva in una diapositiva di PowerPoint

Come inserire una pagina web attiva in una diapositiva di PowerPoint

Utilizza il componente aggiuntivo LiveWeb per inserire un sito web in una diapositiva di PowerPoint, impostarne le dimensioni e il comportamento di aggiornamento e verificarne la compatibilità prima della presentazione.

Word 2010: Inserire caratteri in cerchi e altre forme

Word 2010: Inserire caratteri in cerchi e altre forme

Aggiungi il comando "Racchiudi caratteri" di Word 2010 alla barra di accesso rapido, quindi vai a capo automaticamente di una lettera o di un breve testo utilizzando una delle forme disponibili.