Avant la question :
Il y a quelque temps, pour certaines raisons, j'ai quitté ici pendant une courte période. Pendant cette période, j'ai reçu des e-mails auxquels le BLOG ne répondait pas automatiquement. J'ai constaté qu'il y avait encore beaucoup de gens qui me suivaient et prêtaient attention aux articles auxquels je faisais attention. a déjà écrit. En y repensant, je ne supporte toujours pas d'être ici, je ne supporte pas de quitter BLOGJAVA, je ne supporte pas d'être ici. Mes amis, parlons... Je ne sais pas si vous. ça va.
Aujourd'hui, j'écris un article comme celui-ci. J'ai imprimé un rapport Word il y a quelques jours. Lorsque le client m'a demandé de connecter plusieurs tableaux entre eux lors de l'impression du rapport, l'en-tête de chaque tableau pouvait toujours être affiché si un changement de page était nécessaire.
Cette dernière exigence est relativement simple à mettre en œuvre. Word dispose d'une duplication de ligne d'en-tête intégrée, qui permet de réaliser que « l'en-tête de chaque tableau peut toujours être affiché lors du changement de page ». Cette fonction a un principe : les lignes répétées doivent contenir la première. rangée du tableau, ce qui se trouve également être l’une des exigences de mon client.
Cependant, lorsque plusieurs tables sont connectées ensemble, quelle que soit la proximité des tables supérieure et inférieure lors de l'impression, deux lignes très proches seront affichées, ce qui ne répond pas aux exigences du client et n'est pas beau.
Plus tard, j'ai pensé à cette méthode, en supprimant la ligne inférieure de la dernière ligne du tableau précédent, de sorte qu'il n'y ait qu'une seule ligne entre les tableaux supérieur et inférieur. Bien qu'il y ait encore un peu d'espace au milieu, le client était. très satisfait de cela.
Il y a un bug en faisant cela : si le tableau A fait exactement une page et que la page suivante est un autre tableau, alors la dernière ligne du tableau A n'est pas là. Lors de l'impression, il manque la ligne inférieure dans le tableau. et ce n'est pas une table.
La solution : utilisez d'abord le mot macro pour voir comment dessiner la ligne du bas du tableau et déterminer la page où se trouve le curseur. Lors de l'impression avec javascript, déterminez si la dernière ligne d'un tableau et la première ligne du tableau suivant sont. sur la même page. S'il n'est pas sur une seule page, le tableau précédent est ajouté en dessous de la ligne.
La méthode de jugement est la suivante :
fonction Page (table1,ligne1,table2,ligne2){
monDoc.Tables(table1).Rows(row1).Select();
var page=wordApp.Selection.Information(3);
monDoc.Tables(table2).Rows(row2).Select();
var page1=wordApp.Selection.Information(3);
si(page1>page)
monDoc.Tables(table1).Borders.OutsideLineStyle=1;
}
Le client, très difficile à servir, a finalement souri après avoir lu le rapport imprimé. Après tout, les efforts de plusieurs jours n'ont pas été vains.