für eine kleine, private Geschichte brauche ich eine Druckausgabe in eine PDF-Datei. Bisher mache ich das über einen generischen Postscriptdrucker, erzeuge eine .ps Datei und konvertierte die per GhostScript. Der Code ist gute 15 Jahre alt und robust. Damals war Acrobat unerschwinglich, und generische PDF-Treiber eine Zukunftsphantasie.
Ich habe mich mal an den Beispielen zu XbpPrinter() orientiert und das ausprobiert:
Code: Alles auswählen
#INCLUDE "Gra.CH"
FUNCTION Main()
Local aSize
Local cPrinter
Local oDC, oPS
cPrinter := "Microsoft Print to PDF"
oDC := XbpPrinter():new()
oDC:create(cPrinter)
oDC:setPrintFile("C:\Temp\XbpTest.pdf")
oPS := XbpPresSpace():new()
aSize := oDC:paperSize()
aSize := {aSize[5] - aSize[3], aSize[6] - aSize[4]}
oPS:create(oDC, aSize, GRA_PU_LOMETRIC)
oPS:device():startDoc()
GraBox(oPS, {10, 10}, {400, 100})
GraSTringAt(oPS, {20, 50}, "Image is printed")
oPS:device():endDoc()
oPS:configure()
oDC:destroy()
RETURN (.T.)
Das zweite, was mir auffällt: wiewohl es das Verzeichnis C:\Temp gibt, kommt dort nichts an.
Dann irritiert es auch kaum noch, wenn ich die :setPrintFile() Anweisung auskommentiere und eine Zieldatei im Dialog angebe, auch in diesem Fall nichts erzeugt wird. (Habe es dann mit Word versucht und festgestellt, dass auch von Word aus Microsoft Print to PDF nix macht. Faszinierend.)
Wer setzt mich hier technisch mal auf die Schiene? Und: welchen PDF-Druckertreiber könnt Ihr als Ersatz empfehlen?