Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Scannerauflösung einstellen WIA

Begonnen von Gockel67, Heute um 12:13:05

⏪ vorheriges - nächstes ⏩

Gockel67

Moin Gemeinde,

ich hab mir aus dem Internet einen Code gezogen um zu Scannen. Funktioniert auch ohne Probleme.
Leider schaffe ich es nicht die Auflösung auf 600x600 dpi einzustellen.

Könnte mir dabei bitte einer helfen?

Hier der Code:

Private Sub cmdScannen_click()

    Dim objDialog As Object
    Dim objDevice As Object
    Dim objItem As Object
    Dim objProperty As Object
       
    ' WIA Dialog- und Geräteobjekt erstellen
    Set objDialog = CreateObject("WIA.CommonDialog")
    Set objDevice = objDialog.ShowSelectDevice(wiascannerDeviceType, False, False)

    ScannenUndSpeichern "D:\Scan.jpg"

End Sub

Public Function ScannenUndSpeichern(strDateiname As String)
     Dim objCommonDialog As WIA.CommonDialog
     Dim objImage As WIA.ImageFile
     Set objCommonDialog = New WIA.CommonDialog
     Set objImage = objCommonDialog.ShowAcquireImage
     If Not objImage Is Nothing Then
         objImage.SaveFile strDateiname
         Set objImage = Nothing
     End If
     Set objCommonDialog = Nothing
End Function

Alternativ: Wäre es möglich im Wia-Dialog 'Benutzerdefinierte Einstellungen' per VBA anzuklicken?

Wünsche allen eine schöne Woche
Jörg

Knobbi38

#1
Hallo Jörg,

Zitatich hab mir aus dem Internet einen Code gezogen um zu Scannen.
Warum gibst du die Quelle nicht an? Ich finde es nicht korrekt gegenüber demjenigen, dessen Arbeit einfach ohne Hinweis bzw. Quellenangabe kopiert wird. Wenn man seinen Code verwenden möchte, sollte man schon so viel Respekt gegenüber dem Programmierer zeigen.  Außerdem könnte man als Helfer so auch im Original nachsehen, in welchem Kontext der Code gültig ist.

Auch verstehe ich dein Problem nicht. Warum sollte man mit Access scannen wollen, wenn es doch bereits fertige Apps in Windows gibt und diese oft auch bei den Scannern beiliegen bzw. beim Hersteller heruntergeladen werden können? Die Dateien landen doch eh in einem Verzeichnis und nur die Pfadangaben sind in Access wirklich interessant.

Eine Routine zum Synchronisieren mit dem Ablageort fände ich jetzt interessanter.


Knobbi38

PS:
War das deine Quelle zufällig:
https://access-im-unternehmen.de/Dokumente_scannen_mit_WIA/
... dann sind die entscheidenden Funktionen dort leider kostenpflichtig und deshalb ausgeblendet.

Knobbi38

Nachtrag:

hier mal ein Code Snippet (ungetestet):
    ' WIA initialisieren
    Set objDialog = CreateObject("WIA.CommonDialog")
    Set objDevice = objDialog.ShowSelectDevice(1, False, False) ' 1 = Scanner

    If objDevice Is Nothing Then Exit Sub
    Set objItem = objDevice.Items(1)

    ' Auflösung auf 300 DPI setzen (IDs 6147 und 6148)
    objItem.Properties(6147).Value = 300
    objItem.Properties(6148).Value = 300

    ' Scan starten (wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}")
    Set objImageFile = objDialog.ShowTransfer(objItem, "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}", True)

    If Not objImageFile Is Nothing Then
        ' Bestehende Datei löschen, falls vorhanden
        If Dir(strZielPfad & strDateiName) <> "" Then Kill strZielPfad & strDateiName

        ' Datei speichern
        objImageFile.SaveFile strZielPfad & strDateiName

        ' Pfad im aktuellen Formularfeld speichern
        Me!DokuPfad = strZielPfad & strDateiName ' "DokuPfad" ist Ihr Textfeld in der Tabelle

        MsgBox "Dokument erfolgreich mit 300 DPI gescannt und verknüpft!", vbInformation
    End If

Gockel67

Moin Knobbi,

1. Quelle ist Google KI
2. Ich mache das ganze damit ich nicht ständig zwischen zwei Programmen hin und her pendeln muss.
3. Danke für den Code. Das setzen von dpi funktioniert nicht. Einen ähnlichen Code hatte ich auch schon ausprobiert. Das Problem dabei ist, dass der Scan direkt startet. Ich benötige aber für Vorschau und zurechtschneiden die Wia-Oberfläche.

Liebe Grüße
Jörg

Knobbi38

Hallo Jörg,

warum sollte man ein bereits vorhandenes Tool nachprogrammieren wollen?
Installiere aus dem MS Store die Windows Scanner-APP von MS nach und gut.

Wenn es etwas mehr sein soll, z.B. OCR und PDF dann vielleicht:
https://www.naps2.com/
welches auch über die Shell verwendet werden kann.


Knobbi38