Converter arquivo Word em Blob Oracle.
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
Curtidas 0
Respostas
Alisson Santos
22/05/2013
Poderia dar um exemplo de que tipo de dados que ele está retornando?
GOSTEI 0
Lucas Oliveira
22/05/2013
Dei uma pesquisada na net vi que um pessoal utilizou assim para inserir no rodapé.
Eu gostaria de excluir o rodapé hehe tem alguma sugestão?
// 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
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é.
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