Ich nehme an, sie haben ein Feld vom Typ Text erzeugt? Das Textobjekt arbeitet absatzbasierend, d.h. Sie müssen dann noch einen Absatz für den eigentlichen Inhalt hinzufügen. Im DOM-Kapitel im Handbuch ist ein Beispiel dafür, Sie sind vermutlich genau bis “Absatzliste holen” gekommen, das was noch fehlt ist das, was danach kommt:
HLLJOB hJob = LlJobOpen(-1);
// Neues Projekt erzeugen
LlProjectOpen(hJob,LL_PROJECT_LIST,"c:\\simple.lst",
LL_PRJOPEN_CD_CREATE_ALWAYS | LL_PRJOPEN_AM_READWRITE);
HLLDOMOBJ hProj;
LlDomGetProject(hJob, &hProj);
// Objektliste holen
HLLDOMOBJ hObjList;
LlDomGetObject(hProj, "Objects", &hObjList);
// Textobjekt erzeugen
HLLDOMOBJ hObj;
LlDomCreateSubobject(hObjList, 0, _T("Text"), &hObj);
LlDomSetProperty(hObj, _T("Name"), _T("My new Textobject"));
// Absatzliste holen
HLLDOMOBJ hObjParagraphList;
LlDomGetObject(hObj, _T("Paragraphs"), &hObjParagraphList);
// Neuen Absatz erzeugen und Inhalt anlagen
HLLDOMOBJ hObjParagraph;
LlDomCreateSubobject(hObjParagraphList, 0, _T("Paragraph"),
&hObjParagraph);
LlDomSetProperty(hObjParagraph, _T("Contents"), _T("'DOM'"));
// Projekt speichern
LlProjectSave(hJob, NULL);
LlProjectClose(hJob);
LlJobClose(hJob);
Hierfür müssen Sie lediglich wissen, wie groß die Seite insgesamt ist. Dann können Sie die Eigenschaft Position.Top
für das von Ihnen angelegte Objekt über LlDomSetProperty
auf den gewünschten Wert setzen. Auch dafür finden Sie im DOM-Kapitel ein Beispiel:
LlDomSetProperty(hObjReportContainer,_T("Position.Left"), _T("27000"));
LlDomSetProperty(hObjReportContainer,_T("Position.Top"), _T("103500"));
LlDomSetProperty(hObjReportContainer,_T("Position.Width"), _T("153400"));
LlDomSetProperty(hObjReportContainer,_T("Position.Height"), _T("159500"));
Die verwendeten Einheiten sind dabei 1/1000 mm.