2010-03-07 4 views
0

Ive a frappé sur un problème en utilisant iText (java), malgré des heures de recherche à travers les docs ..iText - Modification PDFWriter # Verticle alignement manuellement

La plupart du code que j'utilise passe par l'API Document # qui suit (via l'instance PDFWriter) la position Y actuelle. Cependant, nous avons besoin d'utiliser la partie PdfContentByte de l'API pour insérer du Java2d dans le document, mais ce faisant, cela semble contourner la logique qui suit les écritures verticulaires. Donc, la prochaine fois que j'utilise l'API Document, il écrase le contenu des choses insérées manuellement. Je veux imiter le comportement de l'API Document # en déplaçant manuellement le curseur sur N nombre d'unités (N étant la hauteur de l'élément inséré par l'API PDFContentByte), de sorte que lorsque j'utilise à nouveau l'objet Document, bingo, son le curseur est dans l'emplacement correct. Je peux voir qu'une méthode pour obtenir le curseur existe;

PdfWriter#getVerticalPosition(boolean);

Mais pas un pour le mettre ?!

Vous avez des idées?

Merci.

Répondre

0

La position verticale renvoyée par PdfWriter est automatiquement gérée par la classe d'écriture lorsque vous ajoutez un paragraphe, des tables, etc. au document. Si vous souhaitez ajouter des graphiques personnalisés, vous devez gérer manuellement la position verticale en sauvegardant la position du dernier graphique que vous avez dessiné. Si vous devez dessiner un graphique en position absolue, sans tenir compte du texte ajouté via les objets Paragraph, ceci est simple. Mais si vous voulez sinchroniser la position du graphique avec des objets de haut niveau (Paragraph, pdfTable etc.), vous devez gérer les événements iText.