vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
foto druck assistent 
Autor: Oly
Datum: 29.07.08 23:01

Hallo,
wie sende ich ein Foto oder dokument zum Foto-Druck Assistenten von Windows?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: ModeratorDieter (Moderator)
Datum: 30.07.08 08:01

Am einfachsten geht das via ShellExecute-API:
Private Declare Function ShellExecute Lib "shell32.dll" _
  Alias "ShellExecuteA" ( _
  ByVal hwnd As Long, _
  ByVal lpOperation As String, _
  ByVal lpFile As String, _
  ByVal lpParameters As String, _
  ByVal lpDirectory As String, _
  ByVal nShowCmd As Long) As Long
ShellExecute 0&, "print", "F:\Eigene Bilder\2008\001.jpg", "", "", 1

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: Oly
Datum: 30.07.08 11:22

Hallo und danke schonmal!
Wir er denn damit definitiv aufgerufen oder das Programm was zum ausdrucken von jpg unter Windows festgelegt worden ist?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: ModeratorDieter (Moderator)
Datum: 30.07.08 11:37

Damit wird das Programm aufgerufen, das unter Windows zum Drucken von Bildern festgelegt ist.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: Oly
Datum: 30.07.08 11:46

kann man das umgehen? Möchte gerne immer den Assistenten aufrufen für diese Funktion, ist das machbar?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: Paulix1
Datum: 10.12.12 17:42

Hallo,
hab mir das angesehen. Bei W7 startet der Foto Druck Assistent, bei XP die Fax und Foto Anzeige.
Ich suche eine Lösung, mit der ich jpg Fotos ohne weiteres Programm wie oben genannt auf A4 Format ausdrucken kann.


Alternativ ist der Foto Druck Assistent geeignet. Wie kann ich den auf XP nachinstallieren?
Prüfen ob er vorhanden ist?
Kann ich den Assistenten im Hintergrund laufen lassen?

Welche Möglichkeiten bestehen noch, um Fotos auf A4 aus einem VB6 Programm ohne weiteres Programm oder Bedienoberfläche zu drucken?

Paulix
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: Zardoz
Datum: 10.12.12 20:12

Hallo Paulix,
das geht mit dem Printer-Objekt. Bild mit PaintPicture ins
Printer-Objekt zeichnen und mit Printer.EndDoc drucken.

Gruss,

Zardoz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: Paulix1
Datum: 11.12.12 12:34

Hallo Zardoz,
das habe ich bisher auch so gemacht.
Dabei gabs aber zwei Mängel:
Große Bilddatein, >3MB, wurden nicht gedruckt.
Bei Bilder in unterschiedlichen Formaten, Hoch oder Breit waren Verzerrungen auf dem gedruckten Bild.
Der Kreis ist nicht mehr rund sondern oval.
Deshalb suche ich nach einer anderen Methode.

MfG
Paulix
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: Zardoz
Datum: 11.12.12 13:38

Hallo Paulix,
probier' mal dies:
  Dim Dat1$, TmpPic As StdPicture, Fkt1!, Fkt2!
  Dim QuellBreite!, QuellHoehe!, ZielBreite!, ZielHoehe!
 
  Dat1 = "C:\EinBild.jpg" ' Pfad eines Bildes
  If Dir$(Dat1) = "" Then
    MsgBox "Datei nicht gefunden:" & vbCr & Dat1, vbExclamation + vbOKOnly
    Exit Sub
  End If
  Me.MousePointer = vbHourglass
  Set TmpPic = LoadPicture(Dat1)
  QuellBreite = Int(0.5 + Me.ScaleX(TmpPic.Width, vbHimetric, vbPixels))
  QuellHoehe = Int(0.5 + Me.ScaleY(TmpPic.Height, vbHimetric, vbPixels))
  With Printer
    If QuellBreite > QuellHoehe Then
      .Orientation = vbPRORLandscape
    Else
      .Orientation = vbPRORPortrait
    End If
    .ScaleMode = vbPixels
    Fkt1 = .ScaleWidth / QuellBreite
    Fkt2 = .ScaleHeight / QuellHoehe
    If Fkt2 < Fkt1 Then Fkt1 = Fkt2
    ZielBreite = QuellBreite * Fkt1
    ZielHoehe = QuellHoehe * Fkt1
    .PaintPicture TmpPic, (.ScaleWidth - ZielBreite) / 2, _
      (.ScaleHeight - ZielHoehe) / 2, ZielBreite, ZielHoehe
    .EndDoc
  End With
  Set TmpPic = LoadPicture()
  Me.MousePointer = vbDefault
Es sollte auch mit grösseren Dateien funktionieren. Wenn es
dabei Probleme gibt, kann man sie verkleinern.

Gruss,

Zardoz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: Paulix1
Datum: 18.12.12 16:42

Hallo Zardoz,
Danke für den Code. Funktioniert bestens.

Kannst Du mir auch noch mit einer Variante / Ergänzung mit der Verkleinerung der Datei helfen.
Bilder mit 3MB Dateigröße werden nicht gedruckt. Ich könnte mir vorstellen , Bilder ab 1,5 MB zu verkleineren.

Ich bin neu im Fach Bildbearbeitung, mach sonst nur in Richtung Datenbank. Deshalb diese Anfängerfragen.

HG
Paulix
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: Zardoz
Datum: 26.12.12 21:14

Hallo Paulix,
hier mal der erste Teil:
Private Const COLORONCOLOR = 3
Private Const HALFTONE = 4
 
Public Sub PrintPicture(Path As String)
 
  Dim TmpPic As StdPicture, Fkt1#, Fkt2#
  Dim QuellBreite&, QuellHoehe&, ZielBreite&, ZielHoehe&
  Dim P1hdc&, P1OldHandle&, SW1&, SH1&
  Dim P2hdc&, P2OldHandle&, OldMode&
 
  If Dir$(Path) = "" Then
    MsgBox "Datei nicht gefunden:" & vbCr & Path, vbExclamation + vbOKOnly
    Exit Sub
  End If
 
  Screen.MousePointer = vbHourglass
  DoEvents
 
  Set TmpPic = LoadPicture(Path)
  QuellBreite = Int(0.5 + Me.ScaleX(TmpPic.Width, vbHimetric, vbPixels))
  QuellHoehe = Int(0.5 + Me.ScaleY(TmpPic.Height, vbHimetric, vbPixels))
  P2hdc = CreateCompatibleDC(0)
  P2OldHandle = SelectObject(P2hdc, TmpPic.Handle)
 
  SW1 = 2000
  SH1 = 2000
  Fkt1 = SW1 / QuellBreite
  Fkt2 = SH1 / QuellHoehe
  If Fkt2 < Fkt1 Then Fkt1 = Fkt2
  If Fkt1 > 1 Then Fkt1 = 1
  SW1 = QuellBreite * Fkt1
  SH1 = QuellHoehe * Fkt1
 
  P1hdc = CreateCompatibleDC(0)
  P1OldHandle = SelectObject(P1hdc, _
    CreateCompatibleBitmap(Me.hdc, SW1, SH1))
  OldMode = SetStretchBltMode(P1hdc, HALFTONE)
  Call StretchBlt(P1hdc, 0, 0, SW1, SH1, _
    P2hdc, 0, 0, QuellBreite, QuellHoehe, vbSrcCopy)
  Call SetStretchBltMode(P1hdc, OldMode)
 
  Call SelectObject(P2hdc, P2OldHandle)
  Set TmpPic = LoadPicture()
  Call DeleteDC(P2hdc)
 
  With Printer
    If SW1 > SH1 Then
      .Orientation = vbPRORLandscape
    Else
      .Orientation = vbPRORPortrait
    End If
    .ScaleMode = vbPixels
    Printer.Print " "
    Fkt1 = .ScaleWidth / SW1
    Fkt2 = .ScaleHeight / SH1
    If Fkt2 < Fkt1 Then Fkt1 = Fkt2
    ZielBreite = SW1 * Fkt1
    ZielHoehe = SH1 * Fkt1
    OldMode = SetStretchBltMode(.hdc, COLORONCOLOR)
    Call StretchBlt(.hdc, (.ScaleWidth - ZielBreite) / 2, _
      (.ScaleHeight - ZielHoehe) / 2, ZielBreite, ZielHoehe, _
      P1hdc, 0, 0, SW1, SH1, vbSrcCopy)
    Call SetStretchBltMode(.hdc, OldMode)
    .EndDoc
  End With
  Call DeleteObject(SelectObject(P1hdc, P1OldHandle))
  Call DeleteDC(P1hdc)
 
  Screen.MousePointer = vbDefault
 
End Sub
Wie gross sind denn deine Bilder in Pixeln?

Gruss,

Zardoz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: Paulix1
Datum: 27.12.12 12:38

Hallo Zardoz,
die Bilder sind bei Dateigröße von 3,6 MB 3648 Pix breit und 2736 Pix hoch Tiefe 24 oder
1,08 Mb 2560 Pix breit und 1920 Pix hoch , Tiefe 24.
das große Bild wird nicht gedruckt.

HG
Paulix
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: foto druck assistent 
Autor: Zardoz
Datum: 27.12.12 17:58

Hallo Paulix,
3,6 MB sind für ein Bild dieser Grösse ungewöhnlich. Die Dateigrösse
ist bei dieser Auflösung im Schnitt kleiner. Kannst du das Bild denn
mit anderen Anwendungen laden und anzeigen. Eventuell ist die Datei
beschädigt. Ich habe die erste Version (die, mit PaintPicture) zum
Drucken von Bildern mit 6000 × 6000 Pixeln getestet. Funktioniert
bei mir einwandfrei. Vielleicht hast du die Möglichkeit den Ausdruck
auf einem anderen PC, oder mit einem anderen Drucker zu testen. Bei
der angegebenen Bildgrösse sollte es noch keine Probleme geben, ausser
es wären gleichzeitig noch weitere, grössere Bilder geladen.

Gruss,

Zardoz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel