PDA

Vollständige Version anzeigen : Bericht als Postscript-Datei erzeugen


Günther Kramer
22.03.2004, 17:10
Hallo,

welche Möglichkeiten gibt es, um einen Bericht als Postscript-Datei auf die Platte zu schreiben? Es sollte nach Möglichkeit auf jedem Windows-PC (ab einer bestimmten Version) funktionieren.

Danke für Hinweise die zur Lösung des Problems führen.

Gruß
Günther

mabe38
22.03.2004, 17:27
Hallo Günther,
um Sachen als Postscript zu speichern genügt ein PS-Druckertreiber.
Vielleicht hilft Dir dieser Link weiter.
Gruß Martin

klicken (http://www.uni-koeln.de/rrzk/geraete/ps/dateien.html)
Vielleicht noch als Anmerkung: Eine PDF Datei mit ca. 500 kb wird als Postscript (EPS) ca 30 MB verbrauchen.

mabe38
22.03.2004, 17:41
Vielleicht noch als Nachtrag:
Es ist überhaupt kein Problem eine PDF-Datei mit Acrobat als Postscript zu zu konvertieren. Übrigens PDF steht PS im nicht nach, es sei denn Du willst mit Satzdruck arbeiten.

Gruß Martin

Günther Kramer
22.03.2004, 18:45
Hallo Martin,

danke für deine Antworten.
Das geht schon mal in die richtige Richtung.

Ich sollte mich jedoch genauer ausdrücken. Ich möchte per VBA automatisch eine PS-Datei erstellen, um diese dann automatisch mit Acrobat Distiller in eine PDF-Datei umzuwandeln. Leider gibt es mit Acrobat 6.0 keine Möglichkeit mehr per VBA automatisch eine PDF-Datei zu erzeugen.

Was ich suche ist die Möglichkeit per VBA eine PS-Datei zu erzeugen. Dabei sollte man mit VBA auch irgendwo den Pfad und den Dateinamen angeben können.

Gruß
Günther

notre
22.03.2004, 18:56
hallo günther,

da hab ich mal was gefunden.
ich würde die vbprinter-dll benutzen.

Klick mich (http://www.vbarchiv.net/archiv/tipp_782.html)

Diese funktioniert ganz gut und du kannst quasi aus vba direkt den druckertreiber ansprechen (in deinem Fall den Acrobat PDF Writer).

ABER:

Leider kann man den aktiven drucker in dieser vbprinter-dll nicht ändern. dh. man kann schon, nämlich so:

With pClass
Set .vbPrinter = .Printers(x) ' x = Index des gewünschten Druckers
End With

leider kann man dann nicht mehr drucken, weil alle anderen eigenschaften des printer.objektes schreibgeschützt werden.

da hilf nur die änderung des standardruckers auf windows-ebene, um dann einfach mit dem printer-objekt zu drucken.

vielleicht hat ja jemand eine idee, wie man das besser machen könnte, drucken aus vba.

gruß

notre

mabe38
22.03.2004, 19:25
Hallo Günther,
leider weiß ich da auch keinen so vernünftigen Rat. Du hättest allenfalls die Möglichkeit den PS-Treiber per VBA anzusteuern und Acrobat6 dir für die Stapelverarbeitung ein kleines JavaScript zu schreiben. Allerdings sind meine Kenntnisse von JavaScript zu gering, um dir da effektiv helfen zu können.
Eine andere Möglichkeit wäre auf Acrobat zu verzichten und direkt einen Ghostscript-Writer anzusteuern. Ist ja auch PDF sind halt ein paar Bytes mehr wie Acrobat.

Hier ein LinK dazu (ist übrigens umsonst, bzw kleine Spende)
Ghostscript (http://www.ghostgum.com.au/)

Hoffe, dass hilft

Gruß Martin

Günther Kramer
23.03.2004, 09:34
Hallo ihr Beiden,

danke für die Antwort.

@notre,
dieser Tipp ist leider nicht für mich geeignet, aber danke.

@mabe38,
Ghostscript habe ich mir schon mal gezogen, aber ich bin bei der Doku noch nicht ganz durchgestiegen, wie man damit automatisch aus Access ein PDF machen kann.

Gruß
Günther

mabe38
23.03.2004, 13:05
vielleicht hilft dir Link weiter

http://www.rumborak.de/forum/message.php?Action=NewReplyMessage&BoardID=5&TopicID=18

Gruß Martin

reinir
23.03.2004, 13:23
hallo günther,
im prinzip willst Du ja nur eine PDF erstellen über VBA wo Du gleich den Dateinamen, Pfad etc. mitangeben kannst...

ich hatte diese Problemstellung auch einmal bei einem Kunden, und habe mich dann entschieden auf ein kostenpflichtiges Produkt zu setzen:

von ACG Soft gibt es eine PDF and MAIL Library
Infos findest Du auf der Website der Firma (klick mich) (http://ourworld.compuserve.com/homepages/attac-cg/)

die MDE Datei kostet
Standard Edition $ 55.00
Pro Edition $ 75.00
Pro Plus Edition $ 99.00

in meinem Projekt schaut der Code für die Erstellung einer PDF Datei (Adobe Acrobat 6.0 wird voll unterstützt !!) so aus:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre> <span class="TOKEN">Dim</span> objPDF <span class="TOKEN">As</span> <span class="TOKEN">New</span> PDFClass
<span class="TOKEN">Dim</span> lngResult <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
&nbsp;
<span class="TOKEN">Const</span> PDFENGINE_PDFWRITER = 2
<span class="TOKEN">Dim</span> GetDbPath <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Set</span> db = CurrentDb()
GetDbPath = CurrentProject.Path &amp; &quot;\Rech&quot;
&nbsp;
<span class="TOKEN">Dim</span> FName <span class="TOKEN">As</span> <span class="TOKEN">String</span>
FName = GetDbPath &amp; &quot;\RE_&quot; &amp; Me!RechnungsNr &amp; &quot;.pdf&quot;
<span class="TOKEN">With</span> objPDF
.PDFEngine = PDFENGINE_PDFWRITER
.ReportName = &quot;RepRechnungPDF&quot;
.OutputFile = FName
.PrintImage
lngResult = .Result
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
&nbsp;
<span class="TOKEN">Set</span> objPDF = <span class="TOKEN">Nothing</span>
<span class="TOKEN">Set</span> objReg = <span class="TOKEN">Nothing</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

in diesem Fall wird eine PDF erstellt mit Präfix "RE" der jeweiligen Rechnungsnummer und das Ganze wird in einem SubOrdner des DB Pfades abgespeichert...

Günther Kramer
23.03.2004, 13:31
Hallo Reini,

danke für die Antwort.
Aber genau was die Firma hier verkauft habe ich schon in unserem AP-Druck-Manager. Ich möchte nur die Funktionen erweitern. Es werden nun bereits 4 verschiedene Tools unterstützt. Jedoch möchte ich Adobe Produkte auch weiterhin unterstützen.

Der vorige Link (danke Martin) muss ich zunächst prüfen. Eigentlich ist der Tipp für Word und es wird hier ein Makro aufgerufen,welches mir in Access nicht viel bringt.

Ich suche weiter. Jedenfalls ist es mir Adobe und Access möglich. Die wollen nur Kohlen, wenn Adobe die Infos rausrückt. (SDK)

Gruß
Günther

Nouba
23.03.2004, 14:10
Hallo Günther,

hast Du Dir mal Redmon (speziell) redfile.exe angesehen? Bei Rumborak gibt es dafür eine Kurzanleitung: Wie kann ich eine Postscript-Datei erzeugen, ohne dass sie in PDF umgewandelt wird? (auch für Testzwecke sinnvoll) (http://www.rumborak.de/produktives/ghostscript/faq.html#gswatch).

Kahira
15.06.2004, 11:13
Original geschrieben von reinir
hallo günther,
im prinzip willst Du ja nur eine PDF erstellen über VBA wo Du gleich den Dateinamen, Pfad etc. mitangeben kannst...

...
in diesem Fall wird eine PDF erstellt mit Präfix "RE" der jeweiligen Rechnungsnummer und das Ganze wird in einem SubOrdner des DB Pfades abgespeichert...

Hallo,

ich hab ein ähnliches Problem, da ich ebenfalls den Adobe 6.0 verwende. Ich hab mir deshalb das Tool von besagter Seite runtergeladen.

Jedoch zeigt es mir weiterhin den Dialog für den Dateinamen an.


Private Sub versenden_Click()
Dim objPDF As New PDFClass
Dim lngResult As Long
Const PDFENGINE_PDFWRITER = 2


With objPDF
.PDFEngine = PDFENGINE_PDFWRITER
.ReportName = "Bericht"
.OutputFile = "e:\Datenbank\Berichte\test.pdf"
.PrintImage
lngResult = .Result
End With

Set objPDF = Nothing


End Sub


Hat jemand/ du eine Idee wo das Problem liegen könnte?
Die Berichte sind auch wie gefordert ohne Caption und auf Standarddrucker eingestellt.
Wäre sehr dankbar für Hilfe.

Mfg Kahira :)

lalo
15.06.2004, 18:39
Schau Dir mal den Thread "Call back möglich" an !
lalo