2009-05-05 7 views
5

Je travaille sur un projet en C# qui produira un document Word en utilisant l'API Word Automation.Word Automation: détecter si un saut de page est nécessaire?

Je voudrais insérer des sauts de page à des points spécifiques dans le document généré et je suis en train de faire cela avec succès avec le code suivant:

// Generate page break 
object pageBreak = WdBreakType.wdPageBreak; 
wordApp.Selection.InsertBreak(ref pageBreak); 

Toutefois, si le document a naturellement enroulé sur la page suivante de toute façon après avoir manqué de place sur la page précédente, je ne veux pas vraiment générer de saut de page, sinon je finirai avec une page blanche. Ce que je voudrais vraiment, c'est la possibilité de trouver exactement où se trouve le curseur et si c'est sur la première ligne et la colonne de la page en cours, alors je peux supposer qu'il n'est pas nécessaire d'insérer un saut de page.

Y a-t-il un moyen d'accéder à la position du curseur? Ou une autre solution qui ferait la même chose? Cela semble être une simple exigence, alors je m'excuse d'avance si j'ai manqué l'évidence.

Répondre

5

En supposant que vous construisiez le document par programmation de manière à ce que wordApp.Selection reflète correctement votre position réelle (et pertinente) dans le document, vous pouvez déterminer sa ligne et sa colonne sur sa page de départ à l'aide de sa propriété Information et les deux énumérations WdInformation suivante (ici comme VBA, pas sûr de ce que la syntaxe .NET PIA est): désinvolture

line = wordApp.Selection.Information(wdFirstCharacterLineNumber) 
col = wordApp.Selection.Information(wdFirstCharacterColumnNumber) 

Ces valeurs correspondent aux valeurs Ln et Col vu dans la barre d'état de Word. Si elles sont toutes deux égales à 1, vous êtes dans la première position de la page sur laquelle la sélection commence.

Bonne chance!

+0

Merci beaucoup pour votre aide. C'est exactement ce que je voulais faire. –

+0

La constante de ligne semble donner la position depuis le début du document et non la page! –

0

Vous pouvez essayer de définir une propriété sur le paragraphe qui provoque un saut de page avant elle. Je ne sais pas si l'API Word Automation permet de le définir, mais il semble exactement ce dont vous avez besoin.

Questions connexes