Preview von Grafiken, pdf usw.

02/06/2013 - 18:14 von Lothar Geyer | Report spam
Ich suche eine Möglichkeit, Grafiken anzuzeigen. Also jpg, png, bmp, tif
usw. Es sollten aber auch z.B. pdf möglich sein.

Bisher habe ich halt mit Image und PictureBox mein Auslangen gefunden,
aber das wird jetzt zu eng. Was ist die "allgemeinste" Lösung, die
trotzdem einfach zu implementieren ist?

Lothar Geyer
 

Lesen sie die antworten

#1 Ahmed Martens
03/06/2013 - 08:12 | Warnen spam
Hallo Lothar,

Am Sun, 02 Jun 2013 18:14:53 +0200 schrieb Lothar Geyer:

Ich suche eine Möglichkeit, Grafiken anzuzeigen. Also jpg, png, bmp, tif
usw. Es sollten aber auch z.B. pdf möglich sein.

Bisher habe ich halt mit Image und PictureBox mein Auslangen gefunden,
aber das wird jetzt zu eng. Was ist die "allgemeinste" Lösung, die
trotzdem einfach zu implementieren ist?

Lothar Geyer



dafür nehme ich seit ein paar Jahren ausschließlich das
Webbrowser-Control. Das funktioniert absolut einwandfrei.
Man kann sogar damit Word-Dateien anzeigen lassen, wenn man folgenden
RegEintrag vornimmt:

<Word_Webbrowser.reg>
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8]
"BrowserFlags"=dword:80000024

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.RTF.8]
"BrowserFlags"=dword:80000024

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.12]
"BrowserFlags"=dword:80000024

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.DocumentMacroEnabled.12]
"BrowserFlags"=dword:80000024
</Word_Webrowser.reg>

Für Excel mache ich das so, dass ich die Exceldatei in einer versteckten
Instanz öffne, diese im Tmp-Ordner als HTML abspeichere und dann einfach
diese im Webbrowser anzeigen lassen. Es werden dabei alle
Tabellenblàtter und die Comments mit angezeigt. Das geht so schnell,
dass dies praktisch in Echtzeit geschieht.

Folgende Function verwende ich:

<Code>
Public Function fncExcelSheetToHTML(sFile As String, sZiel As String,
sZielOpen As String, SaveNoChanges As Boolean, Optional sPasswort As
String) As String
'sZielDatei ohne Extension .htm => wird von Excel vergeben

' Verweis auf Microsoft Excel Library setzen

Dim xclApp As Object
Dim boolAppLoad As Boolean
Dim xclWbk As Object
Dim boolWbkLoad As Boolean
Dim xclSht As Object
Dim iCount As Long
Dim tmpName As String

' Fehlerbehandlungsverhalten setzen
10 On Error Resume Next

If FileExists(sZiel & ".htm") Then Call fDelete(sZiel & ".htm", False,
False)
20 Err.Clear

' Excel referenzieren
30 Set xclApp = GetObject(, "Excel.Application")

' Ist ein Fehler aufgetreten (Excel war dann nicht geladen)?
40 If (Err.Number <> 0) Then
' Fehler löschen
50 Err.Clear

' Excel war nicht geladen
60 boolAppLoad = True

' Excel jetzt starten
70 Set xclApp = CreateObject("Excel.Application")
80 Else
' Excel war geladen
90 boolAppLoad = False
100 End If

' Workbook referenzieren
110 Set xclWbk = xclApp.Workbooks.Item(Mid$(sFile, InStrRev(sFile,
"\", , vbBinaryCompare) + 1, Len(sFile)))

' Ist ein Fehler aufgetreten (Workbook war dann nicht geöffnet)?
120 If (Err.Number <> 0) Then
' Fehler löschen
130 Err.Clear

' Workbook war nicht geöffnet
140 boolWbkLoad = True

150 Set xclWbk = xclApp.Workbooks.Open(sFile, , , , sPasswort, , ,
, , , , False)
', , , , Password
xclWbk.SaveAs sZiel, xlHtml

'Export als pdf
' xclWbk.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sZiel,
Quality:=xlQualityStandard, _
' IncludeDocProperties:=True, IgnorePrintAreas:=False,
OpenAfterPublish:= _
' False
fncExcelSheetToHTML = sZiel & ".htm"
160 Else
' Workbook war geöffnet
170 boolWbkLoad = False
fncExcelSheetToHTML = sZielOpen

180 End If

'' Referenz entfernen
'290 Set xclSht = Nothing

' Mußte das Workbook geladen werden?
300 If (boolWbkLoad) Then
' Ja, Workbook speichern schließen
310 xclApp.DisplayAlerts = False
320 xclWbk.Close = 1 + (SaveNoChanges * -1) '
xlSaveChanges = 1
'
xlDoNotSaveChanges = 2
Else


330 End If

' Warnmeldung wieder einschalten
xclApp.DisplayAlerts = True
' Referenz entfernen
340 Set xclWbk = Nothing

' Mußte Excel geladen werden?
350 If (boolAppLoad) Then
' Ja, Excel beenden
360 xclApp.Quit
370 End If


' Referenz entfernen
380 Set xclApp = Nothing

End Function
</Code>

Gruß Ahmed
Antworten bitte nur in der Newsgroup.
Win7 Prof. 64bit / MS-Office 2010 Prof. 32bit

Ähnliche fragen