Autor |
Beitrag |
M. Raab
      
Beiträge: 334
Erhaltene Danke: 1
WIN 7
Delphi XE
|
Verfasst: Do 27.12.07 12:11
Hallo NG,
ich habe folgendes Problem mit ADOBE Prof 8.1.1: aus meinem Programm heraus rufe ich den ADOBE Drucker auf und möchte auf den ADOBE Drucker drucken. Der Adobe PDF Drucker wird in Windows angezeigt und es lässt sich von z.B. WORD heraus auch darauf drucken bzw. ein PDF File erzeugen.
In meinem Programm lasse ich den Nutzer wählen, welchen Drucker er nutzen will. Dies geschieht über eine COMBO Box wie folgt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure TForm2.FormCreate(Sender: TObject); begin form2.combobox1.Items.Clear; form2.combobox1.items:=printer.printers; form2.combobox1.itemindex:=printer.printerindex; printername:=printer.printerindex; end; |
Nachdem man den Drucker ausgewählt hat, starte ich den Druck wie folgt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| printer.printerindex:=druckerindex;
printer.begindoc;
with printer.canvas do begin
outDC:=printer.canvas.Handle; setmapmode(Outdc,mm_lometric); GetWindowextex(outdc,w); getviewportextex(outdc,v); setmapmode(outdc,mm_anisotropic); setwindowextex(outdc,w.cx,w.cy,nil); setviewportextex(outdc,v.cx,-v.cy,nil); .... |
Nun kommt sofort eine Fehlermeldung: ADOBE PDF: Der Druckbefehlt ist unzulässig.
Bisher habe ich freie PDF Drucker verwendet: FreePDF o.ä. Da hat es geklappt - nun geht das nicht mehr.
Kann mir jemand helfen ?
Gruss
Markus
_________________ Das Leben besteht aus Bits und Bytes - nur: wo laufen sie denn ????
Super ... Du kannst das zwar lesen, toll..... aber: völlig zwecklos !!!
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Do 27.12.07 19:46
M. Raab hat folgendes geschrieben: | Hallo NG,...
Nun kommt sofort eine Fehlermeldung: ADOBE PDF: Der Druckbefehlt ist unzulässig.
Markus |
Hallo,
naheliegend: im Einzelschritt durchgehen, welchen Druckbefehl der Drucker nicht mag, oder den Druck Schritt für Schritt aufbauen (z.B. einen Exit-Befehl reinsetzen). Ich würde drauf tippen, dass er vielleicht nicht die "Ex"-Versionen unterstützt. Grundsätzlich unterstützt nicht jeder Druckertreiber jeden Druckbefehl, aber das kann man in den meisten Fällen vorher abfragen.
Gruss Reinhard
|
|
M. Raab 
      
Beiträge: 334
Erhaltene Danke: 1
WIN 7
Delphi XE
|
Verfasst: Fr 28.12.07 11:40
Hallo Reinhard,
ich habe Deinen Rat befolgt und Step by Step ausgeführt: der Fehler kommt bereits in der Zeile:
printer.begindoc
Es kommt dann die Fehlermeldung: ADOBE PDF: Druckbefehl nicht zulässig.
Gruß
Markus
_________________ Das Leben besteht aus Bits und Bytes - nur: wo laufen sie denn ????
Super ... Du kannst das zwar lesen, toll..... aber: völlig zwecklos !!!
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Fr 28.12.07 19:56
M. Raab hat folgendes geschrieben: | Hallo Reinhard,
ich habe Deinen Rat befolgt und Step by Step ausgeführt: der Fehler kommt bereits in der Zeile:
printer.begindoc
Es kommt dann die Fehlermeldung: ADOBE PDF: Druckbefehl nicht zulässig.
Gruß
Markus |
Hallo,
eine vage Idee dazu: fehlen irgendwelche Rechte im Zielverzeichnis (typisch Vista), gibt es einen "UNEXPECTED_" Error - hab ich mal wo gelesen. Sonst fällt mir nichts dazu ein, ausser das Gleiche unter XP zu testen, bloss um das Problem mal einzugrenzen.
Gruss Reinhard
|
|
M. Raab 
      
Beiträge: 334
Erhaltene Danke: 1
WIN 7
Delphi XE
|
Verfasst: Sa 29.12.07 12:02
Hallo Reinhard,
leider kann ich das nicht unter XP testen - hab keins mehr. Mit den Rechten unter VISTA hat es meiner Meinung nach nichts zu tun. Ich bin als ADMIN angemeldet und die Benutzerkontensteuerung habe ich deaktiviert, da mir das ständige Gefrage auf den Nerv gegangen ist. Sende ich den Druck aber an mein Fax oder an die Mail, klappt das - die Rechte können es also nicht sein. Verwende ich FreePDF klappt es auch - nur eben mit ADOBE nicht. Da der Fehler bereits mit printer.begindoc passiert, kann es auch nicht am ADOBE liegen - der hat ja noch keinen Druckbefehl bekommen.
Gruss
Markus
_________________ Das Leben besteht aus Bits und Bytes - nur: wo laufen sie denn ????
Super ... Du kannst das zwar lesen, toll..... aber: völlig zwecklos !!!
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Sa 29.12.07 15:33
M. Raab hat folgendes geschrieben: | .... Da der Fehler bereits mit printer.begindoc passiert, kann es auch nicht am ADOBE liegen - der hat ja noch keinen Druckbefehl bekommen.
Gruss
Markus |
Hallo Markus,
das stimmt so nicht, natürlich wird BeginDoc vom Treiber ausgeführt:
Note that you must still call the BeginDoc and EndDoc methods of TPrinter. During the BeginDoc call, the printer driver initializes the printer as necessary, and during the EndDoc call, the printer driver will uninitialize the printer and eject the page.
Also Adobe ist schon dein Partner.
Gruss Reinhard
|
|
M. Raab 
      
Beiträge: 334
Erhaltene Danke: 1
WIN 7
Delphi XE
|
Verfasst: Mo 31.12.07 15:15
Hallo Reinhard,
vielen Dank - also muss ich mich mal an ADOBE wenden. Mit freien PDFs gehts ja ....
Gruss
Markus
_________________ Das Leben besteht aus Bits und Bytes - nur: wo laufen sie denn ????
Super ... Du kannst das zwar lesen, toll..... aber: völlig zwecklos !!!
|
|
Bernhard Geyer
      
Beiträge: 721
Erhaltene Danke: 3
|
Verfasst: Mo 31.12.07 16:22
M. Raab hat folgendes geschrieben: | vielen Dank - also muss ich mich mal an ADOBE wenden. Mit freien PDFs gehts ja .... |
Darf ich lachen: Hahaha. Solange du keine kostenpflichtige Adobe-Mitgliedschaft hast werden dir dir etwas Husten. Und selbst wenn wird nach Beantwortung der Frage: "Geht es mit Word" und deinem "Ja" ein - "Dann ist es nicht unser Problem kommen". Und falls man doch was entdeckt ist die Antwort auf "Wird es ein Update geben und wann" ein "Es ist nicht Adobes Firmenpolitik sowas bekanntzugeben". Adobe ist nach m.E. der schlimmste SW-Laden aus USA (ok, es gibt noch CA). Arrogant bis zum geht nicht mehr und SW-Qualität - Naja ob man noch von Qualität sprechen kann...
Wenn du ein fertiges Demoprojekt zusammenstellen könntest, kann ichs ja mal nächstes Jahr auf meinem Vista-PC mit Adobe Acrobat 3D Testen. Falls du von Adobe 7 aktualisiert hast würde ich dir raten erst mal alles Adobe Acrobat-Technische zu deinstallieren und dann nur die 8er-Version neu zu installieren.
|
|
M. Raab 
      
Beiträge: 334
Erhaltene Danke: 1
WIN 7
Delphi XE
|
Verfasst: Di 01.01.08 15:24
Hallo Bernhard,
na ja - Mut machst Du einem nicht. Ich habe vorher nur freie PDFs benutzt und dann legal ADOBE 8 Prof. erworben. An der Umstellung Vers. 7 nach Vers. 8 kann es nicht liegen.
Deine Frage zu einer DEMO:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| VAR w,v : TSize; OUTDC : HDC; druckerindex : integer; ...............
printer.printerindex:=druckerindex; printer.begindoc; with printer.canvas do begin outDC:=printer.canvas.Handle; setmapmode(Outdc,mm_lometric); GetWindowextex(outdc,w); getviewportextex(outdc,v); setmapmode(outdc,mm_anisotropic); setwindowextex(outdc,w.cx,w.cy,nil); setviewportextex(outdc,v.cx,-v.cy,nil); pen.color:=clred; pen.width:=5; MoveTo(100,100); LineTo(1000,1000);
font.color:=clred; font.name:='ARIAL Narrow'; font.height:=120; textout(100,170,'Test'); endwith;
printer.enddoc; |
Das reicht bereits und führt zu dem beschriebenen Fehler. Wie bereits gesagt: der Fehler kommt wenn ich nur printer.begindoc schreibe.
Gruss und Danke und ein GUTES NEUES JAHR an ALLE !!
Markus
_________________ Das Leben besteht aus Bits und Bytes - nur: wo laufen sie denn ????
Super ... Du kannst das zwar lesen, toll..... aber: völlig zwecklos !!!
|
|