06. november 2002 - 21:46Der er
12 kommentarer og 1 løsning
word -> pdf (via macro)
Hejsa
Jeg har fået fat i en lille makrokode til dette foremål, men problemet er at den ikke virker som jge vil have det. Meningen er at man inde fra word kan konvertere alle wordfiler i et givent katalog (mappe) til PDF. I kan se på koden og fortælle mig om jeg kan lave det bedre ?? så, her kommer den: Function ConvertFile(strSourceFileName As String) As String On Error GoTo ErrorHandler
Dim msWord As Word.Application Set msWord = GetObject(Class:="Word.Application.9")
' Should check and quit word when done Set msWord = Nothing ConvertFile = True Exit Function
'//////////////////////////////////////////////////// ErrorHandler: ' Opret Word hvis ikke aktiv If Err.Number = 429 Then Set msWord = CreateObject("Word.Application.9") Err.Clear ' slet fejlmeddelelse hvis den fremkommer Resume End If
' Andre fejlmeddelelser behandles her If IsCriticalError Then ConvertFile = False Exit Function Else Resume End If End Function
Private Function IsCriticalError() As Boolean Dim strErrorMessage As String Select Case Err.Number ' Evaluate error number. Case Else strErrorMessage = "Please contact xess66@hotmail.com and inform them that" & Chr$(13) & _ "the error message reported by the operating system was " & Chr$(13) & _ Chr$(34) + Trim(Str(Err.Number)) & " " & Err.Description + Chr$(34) MsgBox strErrorMessage, , "Conversion error" + Str(Err.Number) IsCriticalError = True Exit Function End Select IsCriticalError = False End Function
Sub btnConvert_Click() Dim strFileToConvert As String Dim strFolder As String
' Sæt stien til wordfilerne strFolder = InputBox("Indtast stien til wordfilerne", "STI TIL WORDFILER", "d:\adobe\")
' Få fat i den første wordfil strFileToConvert = Dir(strFolder + "*.doc")
' tag de efterfølgende filer While strFileToConvert <> ""
' Forsøg på at konvertere til PDF If (ConvertFile(strFolder + strFileToConvert) = False) Then ' Hvis der går noget bedes brugeren om at stoppe If (MsgBox("Noget er gået galt i konverteringen " + strFileToConvert + Chr(13) + "Vil du afslutte ? ", vbYesNo) = vbYes) Then ' Vi afslutter Exit Sub End If End If
Hvad mener du med, at den ikke gør som du vil have det? Du må være lidt mere specifik i retning af at "den gør sådan og sådan" men jeg vil hellere have at "den gør dette og hint"
ok - Det øvelsen går ud på er at jeg vil automatisere dannelsen af pdf-filer ud fra word dokumenter. Da det drejer sig om 1000-1500 så er det manuelle arbejde jo stort. Jeg fandt ovenstående macro og rettede den til. Macroen virker når jeg kører den en gang(i step), men den vil ikke "loope" dvs. jeg får kun dannet en pdf. Så kan I hjælpe uden at jeg skal ud og købe mere software end det jeg har (Acrobat Writer)
og dermed udnytte det Word Application objekt, du gratis har til rådighed i kraft af, at du kører inden i Word.
Jeg mistænker, at det at du opretter et nyt Word-objekt, måske fører til at den får ødelagt den kontekst, der er nødvendig for at din Dir-løkke kan virke.
Jeg tror ikke det ville bringe ret meget. Du skal være klar over, at jeg ikke er i besiddelse af Acrobat Writer, så jeg ville ikke selv kunne afprøve koden og bagefter være sikker på at den virkede, når du fik resultatet. Hvis jeg skal hjælpe dig, kommer det nok til at foregå på den måde, at du kører programmet og fremskaffer de informationer, jeg spørger om. Så kan man håbe at disse informationer sætter mig i stand til at opfinde forbedringer.
Her er et forsøg - du vil opdage at jeg har fjernet meget af fejlbehandlingen, og indsat et par væk-kommenterede MsgBox'e. Hvis du bliver i tvivl om hvor langt den kommer, kan du fjerne kommentar-tegnet for at aktivere dem. Prøv et test-skud med et katalog, der kun indeholder nogle få dokumenter.
Jeg kan fortælle så meget, at hvis jeg kommenterer printer-valget væk, kører det som det skal hos mig.
Mvh Jesper Naur
Function ConvertFile(strSourceFileName As String) As String
Sub btnConvert_Click() Dim strFileToConvert As String Dim strFolder As String
' Sæt stien til wordfilerne strFolder = InputBox("Indtast stien til wordfilerne", "STI TIL WORDFILER", "d:\adobe\")
' Få fat i den første wordfil strFileToConvert = Dir(strFolder + "*.doc")
' tag de efterfølgende filer While strFileToConvert <> "" MsgBox "Fil der skal konverteres: <" & strFileToConvert & ">"
' Forsøg på at konvertere til PDF If (ConvertFile(strFolder + strFileToConvert) = False) Then ' If False Then ' Hvis der går noget bedes brugeren om at stoppe If (MsgBox("Noget er gået galt i konverteringen " + strFileToConvert + Chr(13) + "Vil du afslutte ? ", vbYesNo) = vbYes) Then ' Vi afslutter Exit Sub End If End If
->> Jesper Nauer Tak for hjælpen - desværre hjalp det ikke helt, så jeg fandt et andet program (2 programmer) win2pdf og batch2bdf. Ganske udmærkede programmer der kan det jeg ville have dem til: Lave pdf-filer af word-doc's i en folder.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.