Is it possible to set the annotation scale to an OdPrcMarkupTessBufText object?

  1. FAQ
  2. »
  3. Questions de PDF et RPC

Dans prc, vous ne pouvez gérer le positionnement de l’OdPrcMarkupTessBufText que par:

Mode d'affichage de visage/Face View Mode, l’OdPrcMarkupTessBufFaceView:
Dans ce mode, toutes les entités de dessin sont parallèles à l'écran (panneau d'affichage). Le point donné dans les doubles correspond à l'origine du nouveau système de coordonnées dans lequel les entrées sont tracées parallèlement à l'écran.

Mode de dessin de cadre/Frame Draw Mode, l’OdPrcMarkupTessBufFrame:
Dans ce mode, toutes les entités de dessin sont données dans un espace à deux dimensions. Le point donné dans les doubles correspond à un point 3D projeté sur l'écran, tout en fournissant l'origine du système de coordonnées à deux dimensions où vous pouvez dessiner (viewport).

Mode Taille fixe/Fixed Size Mode, l’OdPrcMarkupTessBufFixedSize:
Dans ce mode, toutes les entités de dessin sont dessinées à une taille fixe, indépendante du zoom. Le point donné dans les doubles correspond à l'origine du nouveau système de coordonnées où vous pouvez dessiner à taille fixe. (Adobe a des problèmes avec la prise en charge de ce mode).

Mode matriciel/Matrix Mode, l’OdPrcMarkupTessBufMatrix:
Dans ce mode, toutes les entités de dessin sont transformées par la matrice donnée en double post multipliée par la matrice de transformation courante. À la fin du mode, la matrice de transformation précédemment active est restaurée.

 

Pour appliquer l'un de ces modes à l'objet OdPrcMarkupTessBufText, placez-le dans BufBlock par la fonction setNextInBlock(), par exemple: Code:

 

OdPrcMarkupTessPtr CreatePlainTextMarkup (OdPrcFileStructure &pCurFS)
{
//...
  pCurMkpTess = pCurMkpTess->setNext(OdPrcMarkupTessBufMatrix::createObject());
  OdGePoint3d origP(3, 3, 0);
  ((OdPrcMarkupTessBufMatrixPtr &) pCurMkpTess)->setMatrix(OdGeMatrix3d::translation(origP.asVector()));
  OdPrcMarkupTessBufTextPtr pBufText = OdPrcMarkupTessBufText::createObject();
  ODA_VERIFY(pBufText->setText(L"Markup with Text type", 20, 4) == eOk);
  ((OdPrcMarkupTessBufMatrixPtr &) pCurMkpTess)->setNextInBlock(pBufText);
//...
}