Dans les cas où vous souhaitez que l'origine du système de coordonnées se trouve dans le coin supérieur gauche, il est possible d'utiliser des calculs simples pour modifier les coordonnées. L'utilisation d'un CTM différent à cette fin est plus complexe et peut conduire à toutes sortes d'effets secondaires, comme vous l'avez expérimenté vous-même. Par exemple: faire pivoter le CTM fait également tourner le contenu (le texte peut être à l'envers, en miroir, ...). Pourquoi ne pas simplement utiliser une méthode qui recalcule les coordonnées. Par exemple: vous voulez avoir une coordonnée (10, 10) compté à partir du haut de la page, puis utilisez transformer (pagesize, y) où la méthode de transformation est définie comme ceci:
public float transform(Rectangle pagesize, float y) {
return pagesize.top() - y;
}
De cette façon, vous pouvez faire des choses comme:
float x = 50;
float y = transform(pagesize, 50);
table.writeSelectedRows(0, 10, x, y, canvas);
Personnellement, je pense qu'il est une mauvaise idée de ne pas respecter le système de coordonnées tel que défini dans la norme ISO-32000-1, parce que vous préférez travailler avec un système de coordonnées où l'augmentation des valeurs impair Y pointent vers le bas au lieu de haut (c'est tellement contre-intuitif), mais si vous insistez pour le faire, vous ne devriez pas altérer le CTM à moins que votre PDF fu soit vraiment grand.
Si vous inversez les systèmes de coordonnées dans les fichiers PDF, vous en retournez également automatiquement le contenu. Si vous voulez simplement l'origine en haut à gauche et que vous pouvez travailler avec des coordonnées y négatives, une simple traduction ferait l'affaire. – mkl