kostenloser Webspace werbefrei: lima-city


PDF drucken

lima-cityForumProgrammiersprachenDelphi & Pascal

  1. Autor dieses Themas

    m16

    Kostenloser Webspace von m16

    m16 hat kostenlosen Webspace.

    Hey Leute,

    für ein Programm, welches ich zur Zeit schreibe, möchte ich gerne PDF Dateien drucken. Nur finde ich leider keinen Befehl :(
    Ich habe Delphi 7.
    Noch besser wäre es, wenn mir einer gleichzeitig noch einen Befehl sagen kann, womit ich dem Programm sage, dass er, wenn Nr. 1 ausgesucht ist, er PDF 1 ausdrucken soll und wenn Nr. 2 ausgewählt wurde (in einer Datenbank), dass er durch klicken auf den selbten Button die PFD 2 ausdruckt?

    Vielen Dank schon mal.

    mfg

    m16
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Such' dir am besten eine PFD-Komponente im Internet und arbeite mit der:
    http://www.torry.net/pages.php?id=1261
    Cool PDF Reader v.1.0
    http://www.torry.net/apps/graphics/view/CoolPDFReader.exe

    Na das mit der 2. PDF-Datei sollte ja nicht das Problem sein. Verwende irgendein Event (aus der Liste, wo du die Datei auswählst), z.B. das OnDoubleClick, und in der Ereignisroutine lädtst du die Datei in die Komponente und druckst die Datei ...

    Wenn du's mit dem installierten PDF-Programm durcken willst (FoxIt Reader, Abode PDF Reade oder was auch immer) sollte es so gehen:
    http://www.festra.com/wwwboard/messages/4808.html
  4. Autor dieses Themas

    m16

    Kostenloser Webspace von m16

    m16 hat kostenlosen Webspace.


    Na das mit der 2. PDF-Datei sollte ja nicht das Problem sein. Verwende irgendein Event (aus der Liste, wo du die Datei auswählst), z.B. das OnDoubleClick, und in der Ereignisroutine lädtst du die Datei in die Komponente und druckst die Datei ...



    Schon einmal danke für die Links. Werd mir das Programm mal angucken, was dort angeboten wird.
    Leider verstehe ich nicht ganz, was du mit der Ereignisroutine meinst. Eigenltich sollte es ja auch kein OnDoubleClick sein, sondern ein einfacher Button...

    mfg

    m16
  5. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.


    sondern ein einfacher Button...

    mfg

    m16

    Dann ist's ja noch einfacher: platzier' einen Button auf deinem Formular, und doppelklick den im Designer. Dann wird automatisch der Prozedurrumpf eingefügt, und du kannst dort reinschreiben, was passieren soll, wenn du den Button klickst ...
  6. Autor dieses Themas

    m16

    Kostenloser Webspace von m16

    m16 hat kostenlosen Webspace.

    Dann müsste das ja eigentlich eine Rechnung bzw. Befehl sein oder sehe ich das falsch?
    Ich weiß nur so grob wie ich das schreiben muss. Kannst mir da auch noch etwas unter die Arme greifen?
    Ich meine das müsste ein IF Befehl sein.
    If Crouser da und da then
    druck das und das

    Sehe ich das richtig? Oder wie würdest du das machen?

    mfg

    m16
  7. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.


    Oder wie würdest du das machen?


    Ich würde das gar nicht machen ;)

    Wenn ich dir da weiter helfen soll, wäre es sehr sinnvoll, wenn du etwas genauer dein Problem von Grund auf nochmal beschreibst, vielleicht mit Screenshot des "geplanten" Formulars, ...
    Ansonsten ist es schwer und mühsam, dir wirklich zu helfen. Deinem Post allerdings glaube ich zu entnehmen (Befehl, Berechnung, ...), dass du mit Delphi nicht wirklich was am Hut hast, oder zumindest noch nicht lange damit arbeitest. :confused:
  8. Autor dieses Themas

    m16

    Kostenloser Webspace von m16

    m16 hat kostenlosen Webspace.

    Also ich bin seit ca. einem halben Jahr bei Delphi. Grundkenntnisse habe ich.
    Folgendes habe ich vor:

    Es gibt im Internet gewisse PDF Dateien, die ich in einer Datenbank bei mir eintragen möchte und zum drucken bereitstellen möchte.
    Da ich zur Zeit bei der Arbeit bin, werde ich später ein ScreenShot online stellen, um dir zu zeigen wie ich das meine.


    mfg

    m16


    Edit:
    So, die Datei ist jetzt online.

    http://m16.lima-city.de/Bilder/ScreenShot.JPG

    Mein Ziel ist es, wenn ich auf das Rote klicke, dass das Programm dann automatisch auf das Grüne achtet und dann die PDF Druckt, die ich dann vorher dem ausgewählten Grünen zugeteilt habe. Ist das möglich? Und vor allem wie?

    mfg

    m16

    Beitrag geändert: 24.11.2008 17:45:25 von m16
  9. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Du mußt schon entschuldigen, aber ich muß nochmals blöd fragen: Wie liegt die Datei vor? Dein grün markiertes Ziel ist der Pfad zur Datei auf der Festplatte, oder ist das ein BLOB in der Datenbank??
  10. t*****b

    Du könntest über
    ShellExecute(self.handle,'print', 'deinepdf.pdf', '', '', 0);

    den Druckerdialog aufrufen. Das Problem ist, dass du dies für jedes Dokument einzeln machen müsstest. Das könnte man umgehen, indem man eine PDF erstellt in der alle (ausgewählten) PDFs aneinander gereiht werden und temponär als eine Datei wird, welche du dann an den Print-Dialog weiterleitest. Wäre in meinen Augen die einfachste Möglichkeit.
  11. Autor dieses Themas

    m16

    Kostenloser Webspace von m16

    m16 hat kostenlosen Webspace.


    Du mußt schon entschuldigen, aber ich muß nochmals blöd fragen: Wie liegt die Datei vor? Dein grün markiertes Ziel ist der Pfad zur Datei auf der Festplatte, oder ist das ein BLOB in der Datenbank??


    Nein, also beim Grünen darfst du dir als User ein beliebiges Ziel aus der Datenbank suchen. Wenn du jetzt z.B. das Ziel "Hamburg" dort ausgesucht hast, dann soll sich das Programm, wenn du dann auf das Rote klickst, aus einem Unterordner die PDF "Hamburg" nehmen und diese dann drucken.
    Also muss er ja eigentlich etwas vergleichen..... so habe ich mir das vorgestellt.



    trueweb schrieb:
    Du könntest über
    ShellExecute(self.handle,'print', 'deinepdf.pdf', '', '', 0);

    den Druckerdialog aufrufen. Das Problem ist, dass du dies für jedes Dokument einzeln machen müsstest. Das könnte man umgehen, indem man eine PDF erstellt in der alle (ausgewählten) PDFs aneinander gereiht werden und temponär als eine Datei wird, welche du dann an den Print-Dialog weiterleitest. Wäre in meinen Augen die einfachste Möglichkeit.


    Ähm... das erste bei dem
    ShellExecute(self.handle,'print', 'deinepdf.pdf', '', '', 0);

    Wo soll ich denn die PDF verschieben, dass er sie sieht bzw. wo soll ich den gesamten Pfad angeben?
    Würde dann ja ggf. so aussehen
    ShellExecute(self.handle,'print', 'C:MeinePDF.pdf', usw.


    Das was du probiert hast du zu erklären von wegen PDF erstellen verstehe ich irgendwie gerade überhaupt nicht :-( sry.....

    mfg

    m16


    Edit:
    Rechtschreibung :P
    [Und wo zum Teufel ist der Fehler beim Zitieren????]


    Beitrag geändert: 25.11.2008 21:32:50 von m16
  12. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    So, danke, jetzt kommen wir der Sache näher ;)

    Wenn du jetzt im grünen DropDown-Feld, um dabei zu bleiben, Hamburg auswählst, dann würde ich das so machen, wenn du auf den roten Button klickst:
    //Den Pfad der ausführbaren Datei, damit du sozusagen dein "Home"-Verzeichnis weißt
    Home := ExtractFilePath(ParamStr(0));
    //überprüfen, ob letztes Zeichen ein Backshlash ist
    if Home[Length(Home)] <> '' then Home := Home + '';
    SubDir := 'WosWasI'; //oder wie auch immer dein Verzeichnis mit den Dateien heißt
    CompletePath := Home + SubDir;
    //nur ausführen, wenn überhaupt etwas ausgewählt ist!!
    if ComboBox.ItemIndex <> -1 then
    begin
      FileName := ComboBox.Items[ComboBox.ItemIndex];
      CompleteFile := CompletePath + FileName;
      //Das Drucken sollte ja dann so funktionieren.
      ShellExecute(self.handle,'print', CompleteFile, '', '', 0);
    end;


    Du brauchst natürlich für die Bildung des Pfads nicht so viele Zwischenschritte, aber ich wollte dir das einfach anschaulich darstellen!
    Reicht das so?
  13. Autor dieses Themas

    m16

    Kostenloser Webspace von m16

    m16 hat kostenlosen Webspace.

    Also müsste das bei mir und dem Beispiel "Hamburg" ja so aussehen:

    Home:= ExtractFilePath(ParamStr(0);
    if Home[Lenght(Home)] <> '' then Home := Home + '';
    SubDir := 'D:Hamburg.pdf'; 
    CompletePath := Home + SubDir;
    if ComboBox.ItemIndex <> -1 then
    begin
      FileName := ComboBox.Items[ComboBox.ItemIndex];
      CompleteFile := CompletePath + FileName;
      Shell Execute(self.handle,'print', CompleteFile, '', '', 0);
    end;


    Wenn nicht so, dann habe ich das leider noch nicht verstanden :-(
    Etwas, was ich jetzt aber auch schon nicht weiß ist, wo soll ich diesen Befehl einbauen? Beim roten Button würde ich jetzt sagen, bin mir halt aber nicht sicher.....

    Dennoch schon mal danke für deine Gedult mit mir und für deine ersten Ratschläge :smile:

    mfg

    m16
  14. du könntest die pdf datei auch umwandeln auf http://www.media-convert.com
  15. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.


    Also müsste das bei mir und dem Beispiel "Hamburg" ja so aussehen:

    Home:= ExtractFilePath(ParamStr(0);
    if Home[Lenght(Home)] <> '' then Home := Home + '';
    SubDir := 'D:Hamburg.pdf'; 
    CompletePath := Home + SubDir;
    if ComboBox.ItemIndex <> -1 then
    begin
      FileName := ComboBox.Items[ComboBox.ItemIndex];
      CompleteFile := CompletePath + FileName;
      Shell Execute(self.handle,'print', CompleteFile, '', '', 0);
    end;


    Wenn nicht so, dann habe ich das leider noch nicht verstanden :-(

    Nö, so nicht! Du hast doch gesagt in einem Unterordner ...
    Du hast jetzt deine Dateien auf Laufwerk D, oder wie? Das macht es ja noch viel einfacher! Dann muss es richtig heißen:
    CompletePath := 'D:';
    if ComboBox.ItemIndex <> -1 then
    begin
      FileName := ComboBox.Items[ComboBox.ItemIndex];
      CompleteFile := CompletePath + FileName;
      Shell Execute(self.handle,'print', CompleteFile, '', '', 0);
    end;



    Etwas, was ich jetzt aber auch schon nicht weiß ist, wo soll ich diesen Befehl einbauen? Beim roten Button würde ich jetzt sagen, bin mir halt aber nicht sicher.....

    Also wenn du in Delphi in der Fomularansicht bist, und auf du auf deinen Menüeintrag zeigst (den du rot markiert hast), dann kannst du (normalerweise) links im Objektinspektor die Eigenschaften (wie z.B. die Caption etc.) einstellen. Dort ist ein Karteireiter "Ereignisse" (oder so), auf den klickst du, und dann müsstest du die möglichen Ereignisbehandlungsroutinen erstellen können, indem du z.B. bei OnClick ein das weiße Feld doppelklickst. Die Ansicht wechselt dann in den Code-Teil, und dort gibst du den Code ein.

    Ist aber furchtbar! Für mich horcht sich das an, als hättest du tatsächlich noch nie was programmiert (und nicht nur einfach irgendwas zusammengeklickselt) in Delphi!? :eek:


    du könntest die pdf datei auch umwandeln auf http://www.media-convert.com

    Joa, genau das wollte er wissen ... :puke:

    Beitrag geändert: 26.11.2008 12:38:48 von burgi
  16. Autor dieses Themas

    m16

    Kostenloser Webspace von m16

    m16 hat kostenlosen Webspace.


    Ist aber furchtbar! Für mich horcht sich das an, als hättest du tatsächlich noch nie was programmiert (und nicht nur einfach irgendwas zusammengeklickselt) in Delphi!? :eek:

    Nein, stimmt nicht ganz :biggrin:
    Ich bin seit fast einem Jahr mit Delphi beschäftigt und habe diverse Datenbanksysteme geschrieben. Ich habe das Fach auch in der Schule und dort haben wir jetzt die Aufgaben ein Programm zu programmieren. Bei meinem Programm habe ich halt viele Ideen, nur nocht zu wenig Erfahung wie ich das schaffen kann. Mein Lehrer meinte zu mir, wegen der PDF Datei drucken nur, dass das nicht machbar sei. Das hat mich irritiert, daher habe ich hier im Forum gefragt. Und damit ich nicht was falsch verstehe frage ich lieber einmal zu viel nach , als einmal zu wenig ;)



    du könntest die pdf datei auch umwandeln auf http://www.media-convert.com

    Joa, genau das wollte er wissen ... :puke:


    Wieso wollte ich das wissen?? Ich kann dort PDF Dateien umwandeln in .txt , .rft usw. aber was hast das mit meinem drucken zu tun? Die PDF Datei stammt ja gar nicht richtig von mir, sprich ich kann daran nicht wirklich viel ändern.

    Hab jetzt mal den Code eingebaut, aber Delphi sagt:

    Undefinierter Bezeichner: 'CompletePath*


    mfg

    m16
  17. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.


    Hab jetzt mal den Code eingebaut, aber Delphi sagt:

    Undefinierter Bezeichner: 'CompletePath*



    Davon bin ich ausgegangen, dass du die Variablen entsprechend deklarierst (in diesem Fall als String)...
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!