Forum


Replies: 4   Views: 1555
Problemas con el corrector ortográfico en los documentos generados
Topic closed:
Please note this is an old forum thread. Information in this post may be out-to-date and/or erroneous.
Every phpdocx version includes new features and improvements. Previously unsupported features may have been added to newer releases, or past issues may have been corrected.
We encourage you to download the current phpdocx version and check the Documentation available.

Posted by rmartinez  · 20-03-2019 - 10:56

Buenas.

Acabo de darme cuenta que cuando cuando abro un documento word generado con vuestra librería, los textos incluídos por programación no son revisados por el corrector de word. Mis pasos son:

  1. Crear una instancia CreateDocxFromTemplate a partir de un fichero docx
  2. Reemplazar placehoders por texto, wf, html, tablas, gráficas, etc
  3. Descargarlo con createDocxAndDownload
  4. Abrir el documento
  5. Ejecutar el corrector de word

Al ejecutar el corrector de word, sólo me avisa de los errores que el documento original pudiera tener pero nada del añadido. Si voy a una palabra mal escrita y, por ejemplo, le añado un espacion a continuación, entonces sí que me marca la palabra como errónea, y si la sustitución fue a nivel de bloque, también me marca las palabras erróneas que existan en el mismo párrafo.

¿Existe alguna opción para que todo el texto del documento generado pueda ser revisado por el corrector de word?

Gracias.

Saludos.

Posted by rmartinez  · 21-03-2019 - 07:27

Buenas. He revisado la configuración del docx que utilizo como plantilla y todo parece estar correcto. El idioma está bien seleccionado y las opciones de corrección también.

El enlace que sugieres habla de cómo habilitar manualmente la corrección ortográfica y como usarla pero, nada más.

Por otro lado, en el método docxSettings , sólo veo las opciones hideSpellingErrors y hideGrammaticalErrors relacionadas con la correción ortográfica pero, a priori, tampoco creo que esto solucionara mi situación.

¿Alguna idea más?

Gracias.

Saludos.

Posted by admin  · 21-03-2019 - 07:56

Hola,

Tienes que modificar el setting proofState del documento.

La siguiente respuesta a un usuario solucionó la misma pregunta:

The problem is that when MS Word saves a DOCX, it sets this XML tag:

<w:proofState w:grammar="clean" w:spelling="clean"/>

in the settings.xml file. So if you add anything to the DOCX changing the document, when MS Word opens the document, the w:proofState is readed and as it has a clean value it doesn't check grammar nor spell:

<w:proofState w:grammar="clean" w:spelling="clean"/>

instead of:

<w:proofState w:grammar="dirty" w:spelling="dirty"/>

Desde esta respuesta varias mejoras en phpdocx permiten hacer este cambio: mediante la opción customSetting del método docxSettings, o modificando la misma etiqueta en el contenido word/settings.xml del base template en DOCXStructureTemplate.php, o utilizando un base template propio.

Todos los paquetes incluyen el ejemplo examples/LayoutAndGeneral/docxSettings/sample_2.php que hace este cambio.

Saludos.

Posted by rmartinez  · 21-03-2019 - 08:37

Hola.

He revisado el settings.xml de mi docx tiene: <w:proofState w:spelling="clean" w:grammar="clean"/>

He incluido el siguiente código antes de createDocxAndDownload y ahora, el corrector, funciona correctamente

$settings = array(
        'customSetting' => array(
                'tag' => 'proofState',
                'values' => array('w:grammar' => 'dirty', 'w:spelling' => 'dirty'),
        )
);
$docx->docxSettings($settings);

Gracias.

Saludos.