Giustifica test non funziona correttamente in conversione da docx a pdf

Ciao,
in conversione di un docx in pdf, il testo giustificato non viene renderizzato correttamente come apparre nell’editor OnlyOffice. Se invece viene utilizzato un allineamento del testo differente (ad esempio a sinistra) la problematica non si presenta. In allegato trovate i file di esempio.

Grazie mille
MS
Doc_test_not_justify_text.pdf (68,5 KB)

Doc_test_justify_text.pdf (69,8 KB)

Doc_test_justify_text.docx (41,8 KB)

@matteos

Ciao!

Capisco che stai riscontrando problemi con il testo giustificato durante la conversione da DOCX a PDF. Questo può succedere a causa di differenze nel modo in cui i vari editor gestiscono l’allineamento del testo.

Ecco alcuni passaggi che puoi seguire per risolvere il problema:

  1. Aggiorna Aspose.Words: Assicurati di utilizzare l’ultima versione di Aspose.Words, poiché potrebbero esserci stati miglioramenti o correzioni di bug relativi alla conversione.

  2. Controlla le impostazioni di conversione: Verifica se ci sono opzioni specifiche per la gestione dell’allineamento del testo durante la conversione. Potresti trovare impostazioni che influenzano il rendering del testo giustificato.

  3. Prova con un altro formato: Se il problema persiste, prova a convertire il documento in un altro formato intermedio (come HTML) e poi in PDF, per vedere se il problema si risolve.

  4. Esegui un test con un documento semplificato: Crea un documento di prova con solo il testo giustificato e verifica se il problema si presenta anche in questo caso. Questo può aiutarti a isolare la causa.

Se hai bisogno di ulteriore assistenza, non esitare a condividere i file di esempio o ulteriori dettagli. Sono qui per aiutarti a risolvere questo problema.

Attendo tue notizie!

@matteos Purtroppo non riesco a vedere il problema. Come posso vedere, il PDF prodotto da Aspose.Words è identico al PDF prodotto da MS Word:

Aspose.Words: out.pdf (66.7 KB)
MS Word: ms.pdf (127.8 KB)

Ciao, se confronti il file pdf convertito " Doc_test_justify_text.pdf" con il file di origine docx “Doc_test_justify_text.docx” (aperto con editor OnlyOffice) la giustificazione del testo risulta essere differente.

In allegato uno screenshot di come appare il docx aperto con editor OnlyOffice.

Nel forum ho trovato che a Gennaio 2024 è stata aperta la issue WORDSNET-26498 che come oggetto aveva proprio la giustificazione del testo, fix rilasciata nella release 25.5 versione NET. Questa fix è stata riportata anche nella versione Java (dalla release note non sembra).

Grazie

MS

@matteos Molto probabilmente, OnlyOffice utilizza regole di layout dei documenti diverse da quelle utilizzate da MS Word. Come forse saprai, i documenti MS Word sono fluidi per loro natura: l’applicazione consumer ridispone il contenuto nelle pagine al volo. Diverse applicazioni consumer potrebbero visualizzare lo stesso documento in modo diverso. Molto probabilmente questo è ciò che hai riscontrato.
Quando si esegue il rendering di documenti in formati di pagina fissi, come PDF o XPS, Aspose.Words imita il comportamento di MS Word. Come accennato in precedenza, il PDF prodotto da Aspose.Words ha lo stesso aspetto del PDF prodotto da MS Word. Quindi l’output è considerato corretto.

Ok, ma non esiste quindi un workaround che permetta di allineare quanto viene visualizzato da OO e quanto viene prodotto da Aspose a livello di PDF nel caso di testo giustificato?

Grazie

MS

@matteos Purtroppo, non esiste un modo per far sì che il rendering dei documenti funzioni come in OnlyOffice. Il codice seguente rende il risultato più simile, ma non identico:

Document doc = new Document(@"C:\Temp\in.docx");

doc.Range.Replace(ControlChar.NonBreakingSpace, " ");
doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2007);

doc.Save(@"C:\Temp\out.pdf");

out.pdf (65.8 KB)