10. september 2009 - 08:55Der er
7 kommentarer og 1 løsning
Word til JPG via PowerPoint
Word til JPG via PowerPoint Jeg har brug for at konvertere dokumenter til JPG-format (en side pr. dokument). Jeg forestiller mig at kalde PowerPoint fra VBA-kode, indsætte dokumentet som objekt og gemme i JPG-format. Vi bruger MS Office 2000, Windows XP.
Er der nogen af jer der kan skitsere en løsning?
Hvis der findes en mere direkte måde at gøre dette på, hører jeg gerne om det, men jeg ønsker en løsning, der ikke kræver tredjepartskomponenter/software.
PresentIt findes (jeg kendte den ikke i forvejen), det ser dog ikke ud til at den kan det jeg ønsker. Jeg regner med at man skal bruge noget med CreateObject.
VBA-koden skal gøre: 1) Oprette reference til et powerpointobject 2) Formattere dias til A4-format, stående, evt. ændre marginer 3) Indsætte word-siden 4) gemme jpg-filen på et specificeret sted.
Det er meget muligt det kan gøres uden PowerPoint, men Word kan i hvert fald ikke dirkte gemme i jpg-format.
Formålet: Ideen er at gemme journalsvar i et PACS (lagersystem til røntgenbilleder og lignende). Konvertering af word til jpg er kun første trin i en længere proces, hvor jpg'en skal pakkes ind i et DICOM-format og have tildelt et accessionnummer og dernæst sendes.
Rem Version 1 Rem ========= Rem Koden er placeret i etseparat Word-dokument Rem Referencen til PP er indsat
Const sti = "C:\Documents and Settings\pb.KHNBPB\Skrivebord\WordJpg\" 'TEST-STI Const ppNavn = "skabelon.ppt" 'PP-SKABELON TEST-NAVN Dim pp As Object, diasPladsHolderNavn
Const WordDok = "kilde.doc" 'WORD-DOK TEST-NAVN Dim dok As Object, sideNr As Integer, antalSider As Integer Public Sub startKonvertering() Rem åbne Word-dokument, der skal konverteres Set dok = CreateObject("Word.Application") With dok .Documents.Open sti & WordDok
antalSider = .ActiveDocument.ActiveWindow.Panes(1).Pages.Count End With
Rem Åbn PowerPoint-skabelon Set pp = CreateObject("PowerPoint.application") pp.Visible = True
With pp.Presentations .Open FileName:=sti + ppNavn End With
Rem find navnet på pladsholder With pp For Each c In pp.ActiveWindow.Selection.SlideRange.Shapes diasPladsHolderNavn = c.Name Next c End With
Rem kopier de enkelte sider For sideNr = 1 To antalSider If sideNr = 1 Then dok.ActiveDocument.Bookmarks("\page").Select dok.Selection.Copy Else dok.Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1 dok.ActiveDocument.Bookmarks("\page").Select dok.Selection.Copy End If
Rem ryd pladsholder pp.ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select pp.ActiveWindow.Selection.TextRange.Text = "" Next sideNr
Rem luk object-filer pp.ActivePresentation.Close pp.Quit Set pp = Nothing
dok.ActiveDocument.Close dok.Quit Set dok = Nothing
MsgBox ("konv. udført") End Sub Private Sub gemSomJPG(sideNr) pp.ActivePresentation.SaveAs FileName:=sti & "side" & sideNr + ".jpg", FileFormat:=ppSaveAsJPG, EmbedTrueTypeFonts:=msoFalse End Sub Private Sub CommandButton1_Click() startKonvertering End Sub
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.