2009-05-05 4 views
5

Sto lavorando a un progetto in C# che produrrà un documento di Word utilizzando l'API di automazione di Word.Automazione parola: rileva se è necessaria l'interruzione di pagina?

vorrei inserire interruzioni di pagina in punti specifici del documento generato e attualmente sto facendo questo successo con il seguente codice:

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

Tuttavia, se il documento è naturalmente avvolto nella pagina successiva in ogni caso dopo aver esaurito la stanza nella pagina precedente, allora non voglio veramente generare un'interruzione di pagina altrimenti finirò con una pagina vuota.

Quello che mi piacerebbe davvero è la possibilità di scoprire esattamente dove si trova il cursore e se si trova sulla prima riga e colonna della pagina corrente, allora posso tranquillamente presumere che non sia necessario inserire un'interruzione di pagina.

C'è un modo per accedere alla posizione del cursore? O un'altra soluzione che farebbe la stessa cosa? Sembra un requisito semplice, quindi mi scuso in anticipo se mi è sfuggito l'ovvio.

risposta

5

Supponendo che si stia creando il documento in modo programmatico in modo che WordApp.Selection possa riflettere correttamente la propria posizione effettiva (e pertinente) nel documento, è possibile determinarne la riga e la colonna nella pagina iniziale utilizzando la relativa proprietà Informazioni e il seguente due enumerazioni WdInformation (qui indicati come VBA; non sono sicuro che la sintassi .NET PIA è estemporaneo):

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

Questi valori corrispondono ai valori Ln e Col visto nella barra di stato di Word. Se sono entrambi uguali a 1, sei nella prima posizione della pagina in cui inizia la selezione.

Buona fortuna!

+0

Grazie mille per il vostro aiuto. Questo è esattamente ciò che volevo fare. –

+0

La costante di linea sembra dare la posizione dall'inizio del documento e non della pagina! –

0

Si potrebbe provare a impostare la proprietà sul paragrafo che provoca un'interruzione di pagina prima. Non lo faccio se Word Automation API consente di impostarlo, ma sembra esattamente quello di cui hai bisogno.