Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Julien Chable

He blogs, you blog, I blog ...

Archives

[Open XML] Tips & Tricks 18/08/08

Vous générez des documents Open XML, Office ne veut pas les ouvrir ? Voici quelques moyens d’en découdre avec un Office qui n’est pas bavard sur les erreurs …

Voici les causes d’erreur les plus probables et leur solution :

  • Content Type : source principale des erreurs de ‘corruption’ de documents Open XML => A vérifier en premier, on oublie toujours le content type d’une partie que l’on rajoute (l’API de System.IO.Packaging le fait pour vous). Dézipper tout votre document et vérifier que chaque partie possède bien une entrée de Content Type en adéquation avec votre contenu,
  • Relations : les relations associent les parties entres elles et permet d’avoir une cohésion des données dans un document. Si une des parties n’est pas référencé, Office ne saura pas la retrouver (quelques cas exceptionnel pour les parties principales avec la bonne convention de nommage mais Office râlera quand même à l’ouverture. Attention aux relations implicites également (il en existe quelques unes, par exemple avec les parties de Custom XML),
  • XML des parties mal formé ou invalide : vérifiez évidemment que vos structures XML soient bien formées (la grammaire XML est respectée : 1 balise ouvrante pour une balise fermante, respect des prototypes - & > etc –, etc) et valide au schéma de la partie (respect du schéma XSD référencé en début de structure XML avec les espaces de noms)

Le SDK Open XML possède une méthode de validation de document (uniquement pour les parties et les relations, pas encore pour le contenu XML) et PackageExplorer possède un vérificateur (qui cette fois-ci valide également le XML de vos parties).

Utilisation de lastRenderedPageBreak

Pour ceux qui ne connaissent pas cet élément permettant d’informer votre logiciel de traitement de texte de la césure du rendu d’une page, le voici pour vous :

2.3.3.13 lastRenderedPageBreak (Position of Last Calculated Page Break)
This element specifies that this position delimited the end of a page when this document was last saved by an
application which paginates its content.
[Guidance: This element shall be used by applications to specify the locations of page breaks within a document
when it is saved as WordprocessingML, in order to allow other applications (e.g. assistive software) to utilize this
information when reading the document. end guidance]
[Example: Consider a run which consists of the text This is the end of the page, where the word end
was the last word on a page. If the application saving this file had paginated this content, that information may
be saved with the file as follows:
<w:r>
<w:t>This is the end</w:t>
<w:lastRenderedPageBreak/>
<w:t xml:space="preserve"> of the page</w:t>
</w:r>
The lastRenderedPageBreak element indicates that there was a page break resulting from pagination of this
content, which occurred between the word end and the word of. end example]

Utilisez cet élément à bon escient (mais utilisez-le car les routines automatiques exploitant les documents Open XML en sont friands pour découper un document au bon endroit … exemple transformation en HTML/PDF ou XPS) mais sachez les mettre au bon endroit. Pourquoi cet élément est aussi important car il permet dans une moindre mesure de pouvoir préparer vos documents à des logiciels d’accessibilité aux personnes handicapées. Si vous ne savez pas calculer leur emplacement, omettez-les tout simplement. Cela peut conduire selon l’implémentation de Open XML à des déformations de texte, voir à un saut de page non voulu (attention cet élément n’est pas le saut de page “PageBreak” ! C’est un élément non visuel, d’information uniquement). On ne sait pas ce qu’une implémentation désirant être absolument conforme à une autre, est capable de faire avec ce genre d’éléments.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: lundi 18 août 2008 16:50 par neodante
Classé sous :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01