4 votes

Modifier les pages du document de manière programmatique

Je veux savoir s'il est possible d'éditer des pages de document en utilisant Python ou d'autres outils de script. J'ai besoin de modifier le style de paragraphe de lignes contenant une date (par exemple 2020/05/02), ce qui peut être facilement fait par un script. Mais je ne sais pas comment le faire dans Pages.

0 votes

Python peut lire des fichiers, traiter des valeurs binaires et écrire des fichiers, alors bien sûr, il peut le faire. Cependant, vous vous demandez peut-être si Python dispose d'une bibliothèque préconstruite qui sait comment analyser ce format de données ? Cela ressemble à trois questions en une seule lorsque je regarde pour essayer d'aider. Quelle est votre expérience de Python et dans quelle mesure vos recherches vous ont-elles permis d'ouvrir un document pages en Python ? L'application pages utilise des types de données assez standard, donc si vous avez votre script facile à préparer, nous pourrions vous faire franchir le cap en l'enchaînant à un outil pour aider à dézipper le fichier.

3voto

Graham Miln Points 39606

Vous pouvez adopter deux approches.

OSA / AppleScript

Utilisez l'architecture de script ouverte (OSA) de MacOS pour interagir avec l'application Pages.

Apple continue de support AppleScript dans les pages. Vous trouverez peut-être que cette approche est suffisante, grâce à l'automatisation d'iWork. exemples utiles .

Décompresser, éditer et recompresser

Vous pouvez également modifier directement le document Pages en utilisant un script personnalisé.

Les documents Pages étaient autrefois une archive compressée de XML et de fichiers de support. Les documents iWork plus récents (Pages, Numbers et Keynote) utilisent des fichiers nommés iwa qui sont également des versions documentées mais compressées des données.

De l'excellent document projet open source iWorkFileFormat vient cette description :

Les composants sont sérialisés dans des fichiers .iwa (iWork Archive), un format personnalisé composé d'un fichier de type Flux de protobuf enveloppé dans un Un flux rapide

Si ce genre de script technique est votre idée, commencez par décompresser le fichier, appliquez votre script aux fichiers de données résultants, et recompressez.

1 votes

Je ne veux pas ajouter un Outil Python nommé appscript que je n'ai pas encore testé à cette bonne réponse, mais stackoverflow.com/questions/1694060/ peut être pertinent si le PO veut script l'application en Python plutôt que de modifier les fichiers directement. J'ajouterai des détails sur le format iwa actuellement utilisé - il s'agit de données compressées, diffusées, encodées pour quelques couches maintenant dans Pages.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X