Ver Mensaje Individual
  #4  
Antiguo 02-10-2008
solecito solecito is offline
Miembro
 
Registrado: jul 2006
Posts: 10
Reputación: 0
solecito Va por buen camino
Lo manipulas desde delphi, te agrego un ejemplo de como insertar un marcador en el documento, él cual lo puedes definir desde tu plantilla y solo posicionarte en él y agregar el texto.

Ahora si solo quieres posicionarte en el marcador, puedes utilizar esta instrucción:
WordApplication1.Selection.GoTo_(What, Which, Count, bkmkname);
y agregar el texto.



Código Delphi [-]
 
procedure TForm1.AbreWord(Sender: TObject);
var
  z, linea, step : Olevariant;
  DOCFileName,NewDOCFileName,ItemIndex:OleVariant;
begin
  DOCFileName := EmptyParam;
  NewDOCFileName := True;
  ItemIndex := 1;
  CoInitialize(nil);
  WordApplication1.Connect;
  wordApplication1.Visible := true;
  if FFileName<>'' then DOCFileName :=FFileName;
  NewDOCFileName := False;
  WordApplication1.Documents.Add(DOCFileName, NewDOCFileName,Emptyparam,emptyparam);
  WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex));
  WordApplication1.Options.CheckSpellingAsYouType := False; //Desactivar comprobacion de ortografia
  WordApplication1.Options.CheckGrammarAsYouType := False;
  WordDocument1.Range.InsertParagraphAfter;
  with WordFont1 do
  begin
    ConnectTo( WordApplication1.Selection.Font );
    if checkbox1.Checked then // elige si es cursiva o normal el tipo de letra
      Italic := 1
    else
      Italic := 0;
  end;
  WordApplication1.Selection.Range.Set_Text(Edit1.Text); // agrega cualquier texto 
  z:=wdMove;
  linea := wdCharacter;
  step := length(edit1.Text);
  WordApplication1.Selection.MoveRight(linea,step,z) ;
end;
 
 
procedure TForm1.SetTextBookmark(BookmarkName,newText: string);
var
  bkmkName: OleVariant;
begin
  bkmkName := BookmarkName;
  WordDocument1.Bookmarks.Item(bkmkName).Select;
  WordApplication1.Selection.Set_Text(newText);
  self.InsertBookmark(BookmarkName,'');
end;
 
procedure TForm1.InsertBookmark(BookmarkName,BookmarkText: string);
begin
  if BookmarkName <> '' then
    WordDocument1.Bookmarks.Add(BookmarkName, EmptyParam);
  if BookmarkText <> '' then
    self.SetTextBookmark(BookmarkName,BookmarkText);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  AbreWord; 
  InsertBookmark(edit2.text,Edit3.text); // edit2 es el nombre del marcador y el edit3 es texto que contendrá el marcador.
end;
Responder Con Cita