Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: MarkusR am August 15, 2013, 07:23:45

Titel: PDF Dateien aus Access heraus drucken
Beitrag von: MarkusR am August 15, 2013, 07:23:45
Guten Morgen zusammen,

ich benötige mal wieder Hilfe von euch Profis  ;)

Ich habe in einem Formular einen Button, über den ich eine PDF Datei, die auf der Festplatte gespeichert ist, ausdrucken möchte. Wie das eigentlich funktionieren muss, habe ich gefunden: über ShellExecute. Ich habe also ein Modul erstellt, dass ich dann in der Prozedur des Buttons ausführe. Das klappt soweit auch.

Mein Problem ist jetzt aber, dass nur ein Ausschnitt der PDF Datei ausgedruckt wird. Ich habe schon im Internet gesucht, woran das liegen könnte. Habe aber leider nichts gefunden was mir weiter hilft. An den Einstellungen von Adobe Reader kann es eigentlich nicht liegen, da das Dokument richtig gedruckt wird, wenn ich es im Reader öffne und dann ausdrucke.

Mein Code sieht aus wie folgt:

Modul:
Option Compare Database
Option Explicit

Public 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
   
Public hwnd As Long
Public Const SW_HIDE = 0          ' Versteckt öffnen
Public Const SW_MAXIMIZE = 3      ' Maximiert öffnen
Public Const SW_MINIMIZE = 6      ' Minimiert öffnen
Public Const SW_NORMAL = 1
Public Const SW_RESTORE = 9
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNOACTIVATE = 4

Public Function DateiOeffnen(Aktion As String, Pfad As String, _
                             Ansicht As Long) As Boolean
    Call ShellExecute(hwnd, Aktion, Pfad, "", "", Ansicht)
End Function


Prozedur:
Private Sub btnZeichnungDrucken_Click()
    Dim Pfad As String
    Pfad = "G:\Zeichnungen\" & Me!artZeichnungsNr & ".pdf"
    DateiOeffnen "print", Pfad, SW_MAXIMIZE
End Sub


Hat jemand eine Idee, was ich da machen kann? Habe auch schon nach anderen Wegen gesucht...in einem Bericht kann man PDF ja leider nicht einbinden und wenn ich es im Formular einbinde und dann das Formular ausdrucke, wird nur eine leere Seite ausgedruckt. Damit komme ich also auch nicht weiter. Die letze Möglichkeit wäre noch, die PDFs in Bilder umzuwandeln und die dann als Bericht auszudrucken...aber das wäre bei tausenden von Zeichnungen ein riesen Aufwand, den ich eigentlich gerne vermeiden möchte.

Für Ideen, Tipps und Anregungen bin ich Euch sehr dankbar!

Beste Grüße
Markus
Titel: Re: PDF Dateien aus Access heraus drucken
Beitrag von: DF6GL am August 15, 2013, 09:30:05
Hallo,


und WELCHER Ausschnitt wird gedruckt?


Wobei das insgesamt mysteriös ist, aber vielleicht an der nicht definierten Variable "hwnd" liegen mag.


Setze mal eine 0 anstelle hwnd beim Aufruf ein:

Call ShellExecute(0, Aktion, Pfad, "", "", Ansicht)
Titel: Re: PDF Dateien aus Access heraus drucken
Beitrag von: MarkusR am August 15, 2013, 10:33:14
Hey,

also am der Variable "hwnd" hat es nicht gelegen...aaaaber Deine Frage welcher Ausschnitt gedruckt wird, hat mich weiter gebracht:

Es wird nämlich ein Ausschnitt aus der Mitte gedruckt. Das hat mich auf die Idee gebracht, mal nachzuschauen, wie groß das Dokument ist. Und siehe da, es hat das Format A3. Natürlich druckt er auf A4 dann nur einen Ausschnitt aus. Kann man da irgendwie einen Befehl übergeben? Z.B. dass der das kleiner Zoomt oder so?

Nochmal vielen Dank!

Gruß, Markus
Titel: Re: PDF Dateien aus Access heraus drucken
Beitrag von: DF6GL am August 15, 2013, 10:37:11
Hallo,

das dürfte eine Sache/Einstellung des Standarddrucker-Treibers sein...
Titel: Re: PDF Dateien aus Access heraus drucken
Beitrag von: MarkusR am August 15, 2013, 11:18:07
Perfekt! Das wars...

Habe bei den Standard Einstellungen des Druckers eingestellt, dass er von A3 auf A4 skaliert. Jetzt klappt's...

Kann ich Access jetzt noch mitteilen, mit welchem Drucker er das drucken soll? Würde mir dann gerne den Drucker ein zweites Mal installieren, dort die nötigen Einstellungen vornehmen und meinen Standard Drucker so lassen wir er ist.

Vielen Dank!
Titel: Re: PDF Dateien aus Access heraus drucken
Beitrag von: DF6GL am August 15, 2013, 11:25:28
Hallo,

http://www.donkarl.com/?FAQ5.1
Titel: Re: PDF Dateien aus Access heraus drucken
Beitrag von: MarkusR am August 15, 2013, 14:39:05
Aber damit ändere ich doch nur den Drucker, der von Access verwendet wird. Ich muss ja den Drucker ändern, der bei Windows als Standard Drucker hinterlegt ist...
Titel: Re: PDF Dateien aus Access heraus drucken
Beitrag von: DF6GL am August 15, 2013, 14:53:25
Hallo,

im genannten Link findet sich ein weiterführender Hinweis auf diese Beispiel-DB, mir der via API-Calls der Standard-Drucker umgestellt werden kann:

http://www.freeaccess.de/downloaddetails.asp?ID=13
Titel: Re: PDF Dateien aus Access heraus drucken
Beitrag von: MarkusR am August 16, 2013, 10:35:30
Moin!

So, hat ein bisschen gedauert, bis ich da durchgeblickt habe. Konnte das ganze jetzt aber soweit anpassen, dass das gemacht wird, was gemacht werden soll :)

Drucker ändern -> PDF drucken -> Drucker wieder zurückändern

Tausend Dank mal wieder :)

Beste Grüße, Markus