Hallo,
meine Datenbank dient u.a. zur Verarbeitung und Zuordnung von Dokumenten, welche wir von Kunden als Bilddateien in den Formaten wie JPG oder PDF geliefert bekommen. Hierbei müssen die Daten aber bestimmten Anforderungen in Größe und Qualität entsprechen (dpi). Wie lassen sich solche Details mit VBA auslesen und verarbeiten? Z.b. soll bei einem geringerem dpi Wert als 300 eine Meldung ausgegeben werden, ebenso bei falscher Größe.
Bei Textdateien (Word Format) wäre die Zeichenanzahl interessant usw.
Wie ist dies möglich?
Beste Grüße
datekk
Hallo,
ich denke, mit Access-Boradmitteln wirst Du da nicht weit kommen, allenfalls sind API-Funktion bzgl. der Bildeigenschaften verwendbar. Es gibt aber kleine Tools (und auch größere) , um Bilder in der Größe anzupassen (Picture resizer). Solche könnten z. B. mit Shellexecute angestoßen werden.
Um die Word-Zeichnanzahl zu erhalten, könnten die Eigenschaften mittels Word-Automation ausgelesen werden.
Hi,
anbei Links, die mir geholfen hatten:
http://www.herber.de/forum/archiv/344to348/345827_bildgroesse_von_jpgdateien_ermitteln.html
https://msdn.microsoft.com/de-de/library/bb979154.aspx
Bei der Kombination der Themen Access und Bilder habe ich eine Quelle ewiger "Freude" erfahren und auch gelernt, offen zu sein für ganze neue Fehler :-(
Good luck
Harald
Hallo, danke für Eure Antworten. Jedoch geht es mir nicht um das verändern der Eigenschaften, sonder lediglich um das Auslesen der Eigenschaften. Es sollen keine Bildgrößen oder ähnliches verändert werden.
Die Dateiinformationen lassen sich ja z.B. mit einem Rechtsklick auf die Datei / Eigenschaften / Details ganz einfach unter Windows anzeigen. Ggf. kann man das ja auch einfach mittels VBA abrufen?
Hallo
für Bilder (jpg, bmp...) kannst du im Normalfall GDI+ verwenden.
Für pdf's die dpi auslesen ist wohl wenn überhaupt nicht so einfach. zumindest sehe ich diese Angabe nicht unter "Datei / Eigenschaften / Details"
für die worddocs (docx, doc,...) musst du wie schon von DF6GL erwähnt auf die Wordautomation zurückgreifen.
hier mal kurz wie du bei Bildern die Dimensionen sowie die ppi auslesen kannst
With CreateObject("new:{A2E6DDA0-06EF-4DF3-B7BD-5AA224BB06E8}")
.LoadFile "DeinLW:\DeinPath\DeinBild.(jpg|bmp|png...)" '<<-- anpassen
Debug.Print .HorizontalResolution, .VerticalResolution 'ppi
Debug.Print .Width, .Height 'pixel
End With
Hallo,
für diverse Bild- und Video-Formate gibt es das kostenlose Tool MediaInfo. Leider kann es keine pdf-Metadaten laden.
Unter
https://msdn.microsoft.com/de-de/library/bb979154.aspx
findest du eine Routine, die deiner letzten Frage als Lösung sehr nahe kommt. Sie liest die erweiterten Datei-Attribute (ähnlich Explorer->Rechtsklick->Eigenschaften->Details. Die im Link angegebene Liste der Attribute ist vermutlich nicht (mehr) vollständig.
Schließlich noch ein Link für MS-Office-Dateien (und wohl auch pdfs):
https://www.xing.com/communities/posts/dateiverwaltung-mit-dsofile-1002110418
Müsste eben für VBA angepasst werden...
Hoffe, das hilft.
PS: sehe gerade, dass du der erste MS-Link schon von Harald gepostet wurde, sorry.
Hier noch ein interessanter Link:
https://sourceforge.net/projects/meta-extractor/
Es handelt sich dabei um ein in Java geschriebenes Tool, das ursprünglich von der National Library of New Zealand entwickelt wurde.
Bei mir läuft es nicht, weil der Java-Heap zu klein ist. Vielleicht kann da jemand anderes weiter helfen.
Ich hab die Umsetzung erstmal zurück gestellt. Ich melde mich wieder, wenn ich wieder "dran" bin. Danke für die Lösungsansätze :)