Word dosyalarını frontpage ile açıp html kaydetme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Word dosyalarını frontpage ile açıp html kaydetme

Mesaj gönderen mepc »

Merhaba Arkadaşlar

Aşağıdaki kod ile word dosyalarını arka planda açıp html olarak kaydediyorum. Ancak word ile html yaptığım için metin içi aramalarda sonuç dönmüyor. Aynı html yi manuel olarak frontpage ile yaptığımda arama sonucu dönüyor

Kod: Tümünü seç

WordFile:=createoleobject('word.application');
  WordFile.Documents.open(filelistbox1.Directory+'\'+filelistbox1.Items[filelistbox1.itemindex],EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam);

  WordFile.ActiveDocument.SaveAs(FileName := path+'\html\'+'yargıtay'+'\'+copy(filelistbox1.Items[filelistbox1.itemindex],0,length(filelistbox1.Items[filelistbox1.itemindex])-4)+'.html',
  FileFormat:=10, AddToRecentFiles := False);
  WordFile.Quit;
  WordFile:=Unassigned;
Yukarıdaki kodu frontpage için nasıl kullanabilirim. Yani rtf formatındaki belgeler frontpage ile açılıp html olarak kaydedilecek.

Dosya sayısı çok fazla olduğu için bu işi mecburen kod ile yapmam gerekiyor. (500.000 civarında)

Forumda arama yaptım ancak arama sonuçlarında satır satır aktarma yapılabileceği belirtilmiş. Benim belgelerimde renkli bölümler olduğu için düz text olarak kullanamıyorum.

Mevzuyu biraz dağıttım herhalde.

Yardımlarınızı bekliyorum.
Bilgi paylaşıldıkça güzeldir.
Kullanıcı avatarı
kelaynak2
Üye
Mesajlar: 135
Kayıt: 30 Haz 2003 02:18

Frontpage makrosu ile yapabilirsin.

Mesaj gönderen kelaynak2 »

Aşağıdaki kodu frontpage 2002 versiyonu ile denedim(Office xp ile gelen) güzel çalışıyor.

örneğin rtf dosyaların "C:\Makro\deneme" isminde bir klasörde bulunuyor.
Bu dizinin altında Hedef altında bir klasörü daha ekle. *.htm dosyalarımız bu klasöre kopyalanacak.

Frontpageyi aç-var olan aktif sayfayı kapat.

Öncelikle Frontpage ile "C:\Makro\deneme" klasörü için bir web oluşturmak gerekiyor. Frontpage de Dosya-Sayfa veya web'den boş webi seç.Göz at'dan "C:\Makro\deneme" klasörünü seç ve Aç tuşuna bas. Daha sonra Dosya-webkapat ile oluşturduğun webi kapat. Webin oluşup oluşmadığndan emin olmak için "C:\Makro\deneme" klasörü içinde _private, _vti.cnf gibi klasörler oluşması gerekiyor.

Sonra Frontpage de Araçlar-Seçenekler-Düzenleyicileri yapılandırma sekmesine gel. "Web sayfalarını oluşturdukları Office uygulamasında aç" checkboxundaki çentiği kaldır. Sonra ekle tuşuna bas.
Dosya Türü olarak rtf
Düzenleyici adı FrontPage
Komut olarak frontpg.exe yaz.
Tamam tuşuyla kapat.
şimdi listeye rft de eklendi.

Sonra Frontpage de Araçlar-Visual Basic düzenleyicisine geç ve aşağıdaki makroyu yapıştır.Sonra makroyu çalıştır.Hepsi bu kadar. Anladığım kadarıyla Frontpage ile *.htm dışında bir dosya açıldığında bir çevirici component açılıyor ve htm ye çeviriyor.Delphiyle yapman mümkün değil.
Kolay gelsin. :?

Kod: Tümünü seç

Sub RtfToHtm()
'Frontpage 2002 makrosu

Dim myWeb As WebEx
Dim myFile As WebFile
Dim myPageWindow As PageWindowEx
Dim gestr As String
Dim intPos As Integer ' Tümcenin sonundaki noktayı bulmak için



    Set myWeb = Webs.Open("C:\Makro\deneme")
    myWeb.Activate
    Set myFiles = myWeb.RootFolder.Files
    With myFiles
    
     For Each myFile In myFiles
      If Right(myFile, 3) = "rtf" Then
          myFile.Open
       'Find position of extension in filename
          gestr = myFile.Name 'dosya adını al
          intPos = InStrRev(gestr, ".")
           'Strip off extension and add ".htm" extension
        gestr = Left(gestr, intPos - 1)
        gestr = gestr & ".htm"
        
        Set myPageWindow = ActiveWebWindow.ActivePageWindow
        myPageWindow.SaveAs ("C:\Makro\deneme\hedef" & "\" & gestr) 'Hedefe kaydet
        myPageWindow.Close
                
          End If
         
      Next
    
    End With
    
myWeb.Close

End Sub


Cevapla