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 aggiungere contatti a Outlook su Web, Windows e dispositivi mobili

Come aggiungere contatti a Outlook su Web, Windows e dispositivi mobili

Scopri come aggiungere contatti a Outlook sul web, al nuovo Outlook, a Outlook classico e ai dispositivi mobili, e come funzionano la sincronizzazione dei contatti e l'importazione di file CSV.

Come cambiare il colore di sfondo di Microsoft Word o aggiungere un'immagine

Come cambiare il colore di sfondo di Microsoft Word o aggiungere un'immagine

Cambiare il colore di una pagina di Word, aggiungere un'immagine di sfondo, rimuoverla e abilitare la stampa in background su Windows o Mac con istruzioni chiare e aggiornate.

Come connettere gli editor desktop di ONLYOFFICE a un server ownCloud

Come connettere gli editor desktop di ONLYOFFICE a un server ownCloud

Collega ONLYOFFICE Desktop Editors al tuo server ownCloud, accedi, apri i file nel cloud, gestisci la connessione e risolvi i problemi di configurazione più comuni.

Come risolvere l'elevato utilizzo della CPU in Collabora Online causato da loolwsd / coolwsd

Come risolvere l'elevato utilizzo della CPU in Collabora Online causato da loolwsd / coolwsd

Risolvere i problemi di utilizzo elevato della CPU di Collabora Online identificando i processi del kit che consumano troppe risorse, controllando metriche e log, ottimizzando la concorrenza e la pulizia e verificando la sicurezza delle correzioni.

Come personalizzare i documenti ONLYOFFICE con il tuo logo e i tuoi colori.

Come personalizzare i documenti ONLYOFFICE con il tuo logo e i tuoi colori.

Scopri come personalizzare ONLYOFFICE Docs con un logo nell'intestazione e i colori dell'interfaccia, inclusi i limiti di licenza, la configurazione del tema JSON, i percorsi Docker e i test.

Risolvere i problemi di visibilità del testo in modalità scura in LibreOffice Calc

Risolvere i problemi di visibilità del testo in modalità scura in LibreOffice Calc

Per correggere il testo di difficile lettura in LibreOffice Calc, controlla il tema dell'applicazione, il carattere delle celle, i colori di riempimento, gli stili e la formattazione condizionale, quindi verifica l'output di stampa.

Risolvere l'errore "Il documento è bloccato da un utente sconosciuto" in LibreOffice

Risolvere l'errore "Il documento è bloccato da un utente sconosciuto" in LibreOffice

Rimuovi in ​​modo sicuro l'avviso di blocco da utente sconosciuto di LibreOffice. Verifica le sessioni attive, proteggi una copia, rimuovi solo i blocchi obsoleti verificati e testa il documento.

Correggere la scrittura da destra a sinistra del testo arabo ed ebraico in LibreOffice Writer

Correggere la scrittura da destra a sinistra del testo arabo ed ebraico in LibreOffice Writer

Correggi il testo arabo o ebraico che scorre, si allinea o si mescola in modo errato con l'inglese in LibreOffice Writer. Abilita layout di testo complessi, imposta la direzione del paragrafo e verifica il risultato.

LibreOffice Calc VLOOKUP vs XLOOKUP: una guida alle funzioni per principianti

LibreOffice Calc VLOOKUP vs XLOOKUP: una guida alle funzioni per principianti

Scopri come utilizzare le funzioni CERCA.VERT e CERCA.X in LibreOffice Calc, incluse le corrispondenze esatte, le ricerche a sinistra, i risultati non trovati, la ricerca inversa, le alternative a INDICE/CONFRONTA e gli errori più comuni.

Come risolvere l'errore "Convalida della prova WOPI non riuscita" in Collabora Online

Come risolvere l'errore "Convalida della prova WOPI non riuscita" in Collabora Online

Risolvere i problemi di convalida della prova WOPI di Collabora Online verificando le chiavi di individuazione, la rotazione delle chiavi, gli URL proxy, i timestamp e le liste di host consentiti.