Converter arquivo Word em Blob Oracle.

Delphi

22/05/2013

Tenho a procedure abaixo que converte o arquivo Word em blob mas preciso tirar o rodapé, pois depois traz caracteres estranhos na visualização.

procedure SaveToBlobSemDoVerb(Field: TBlobField; Container: TOLEContainer; ServidorClasse: TMServidorClasse);
var
  Texto : TStrings;
  FFieldStream : TClientBlobStream;
  arqBlob: string;
begin
  if Container.State <> osEmpty then begin
    FFieldStream := RecuperaStreamDoField(Field);
    try//(a)
      try//(b)
        try//(c)
          //Salvar o BLOBField
          if (Field.DataSet <> nil) then
            Field.DataSet.Edit;
          arqBlob := GetTemporaryFileName;
          Container.OleObject.saveas(arqBlob, wdFormatDocument);
          FFieldStream.LoadFromFile(arqBlob);
          Field.LoadFromStream(FFieldStream);
          Sysutils.DeleteFile(arqBlob);
        except
          MessageDlg('Erro ao salvar Documento.', mtWarning, [mbOK], 0);
        end;//try (c) Salvando o Container em Arquivo Temporário
      finally// try (b) Deletando o arquivo salvo
        Sysutils.DeleteFile(arqBlob);
        Sysutils.DeleteFile(arqClob);
      end;
    finally
      FFieldStream.Free;
    end;//try (a) Criando o buffer com o BLOB
  end else
        MessageDlg('Nenhum Documento para Salvar.', mtWarning, [mbOK], 0);
end; 
Lucas Oliveira

Lucas Oliveira

Curtidas 0

Respostas

Alisson Santos

Alisson Santos

22/05/2013

Poderia dar um exemplo de que tipo de dados que ele está retornando?
GOSTEI 0
Lucas Oliveira

Lucas Oliveira

22/05/2013

Dei uma pesquisada na net vi que um pessoal utilizou assim para inserir no rodapé.

 // Montando o Rodapé do Documento
 MSWord.ActiveDocument.Sections.Item(1).Footers.Item(wdHeaderFooterPrimary).PageNumbers.Add(PageNumberAlignment:=wdAlignPageNumberCenter, FirstPage := True);
 MSWord.ActiveDocument.Sections.Item(1).Footers.Item(wdHeaderFooterPrimary).Range.Font.Size := 10;
 MSWord.ActiveDocument.Sections.Item(1).Footers.Item(wdHeaderFooterPrimary).Range.Font.Name := ´Arial´;


Eu gostaria de excluir o rodapé hehe tem alguma sugestão?
GOSTEI 0
Lucas Oliveira

Lucas Oliveira

22/05/2013

Agora usei a TWordApplication para abrir o arquivo.. Depois irei gerar um txt sem o cabeçalho.

Acho que assim vai ficar mais fácil remover esse rodapé.

   Word.Documents.Open(NomeArqVar,EmptyParam,EmptyParam,EmptyParam,
                        EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                        EmptyParam,EmptyParam);

    SaveMode := wdFormatText;
    Word.ActiveDocument.SaveAs(NomeArqTXT,SaveMode,EmptyParam,EmptyParam,EmptyParam,
                               EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                               EmptyParam);
    SaveMode := wdDoNotSaveChanges;

    Word.ActiveDocument.Close(SaveMode, EmptyParam, EmptyParam);

    VerificaAcessoArquivo(NomeArqTXT);
    Texto.LoadFromFile(NomeArqTXT);
GOSTEI 0
POSTAR