2013-01-24 3 views
1

Contextesaut de page iTextSharp crée une page vide indésirable

J'ai un document que je construis THROU différentes étapes.

Dans l'une de ces étapes, j'ajoute du contenu à un document à partir d'une structure de chapitre que j'ai créée contenant le contenu.

Cette partie en particulier est très simple. Il ajoute simplement le contenu au document.

Parfois, ma structure spécifie qu'il devrait y avoir un saut de page, et donc document.NewPage(); est exécuté. Cela fonctionne, habituellement.

Nous utilisons ITextSharp version 5.3.2.0. (Quelques mois vieux ou si)

Le problème

Quand document.NewPage() get exécuté et est très proche de la fin du document ou peut-être entré dans une nouvelle page Je suppose, je obtenir une page vide avec le reste de mon contenu étant ajouté sur la page suivante. Seul le document pour travailler avec à ce stade, je ne peux pas trouver un moyen de déterminer si document.NewPage() doit être ignoré ou ne pas contourner ce problème ou bogue.

Merci

Répondre

3

Cela peut être causé par trois choses:

  1. Vous utilisez une version très ancienne de iTextSharp. Si oui, veuillez mettre à niveau vers une version plus récente d'iTextSharp. Nous ne réparons pas les versions obsolètes.
  2. Vous utilisez des événements de page et contrairement à ce qui est conseillé dans la documentation, vous ajoutez du contenu dans la méthode onStartPage().
  3. Vous utilisez writer.setPageEmpty(false);, ce qui revient à demander à iText de considérer une page vide comme n'étant pas vide.

Dans tous les autres cas, la méthode newPage() est ignorée si vous êtes actuellement sur une page qui n'a aucun contenu.

+0

Nous utilisons la version Nous utilisons ITextSharp version 5.3.2.0. Quand nous avons commencé, je n'avais pas le temps de lire tout le livre. Doit avoir raté la partie où il est dit que la méthode onStartPage ne devrait pas être utilisée pour ajouter du contenu. Cela semble être un nouveau cas et un cas rare pour nos rapports mais un important. Merci pour votre réponse. Cela nécessitera un peu de test et de refactoring. – Johan

+1

Juste pour voir si c'était seulement la méthode onStartPage() qui me causait des maux de tête, j'ai déplacé le code que j'avais dans cette méthode à la méthode OnEndPage(). Je me sentais comme un tireur d'élite mais je devais l'essayer car c'était une solution rapide si cela pouvait fonctionner. C'est marrant, ça a l'air d'avoir marché! – Johan

+0

Merci pour vos commentaires. Je suis content de voir que le problème a été résolu. –