AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Drucken

Ein Thema von CalganX · begonnen am 15. Aug 2002 · letzter Beitrag vom 12. Mai 2003
Antwort Antwort
Seite 1 von 3  1 23      
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Drucken

  Alt 15. Aug 2002, 14:48
So, jetzt habe ich ein kleines Problem (Was sonst...):
Ich versuche eine Seite ausdem Drucker auszugeben. Das Problem dabei ist, dass nicht einfach ein Memo ausgedruckt werden soll, sondern auch noch andere Sachen. Es soll oben ein Header stehen (z.B. "Ausdruck aus meinem Programm" (zentriert)). Dann soll rechtsbündig ein Datum stehen und dann ein Trennstrich. Dann soll das eigentlich kommen. Titel + Dazugehöriger Text.
Es würde mir schon reichen, wenn mir jemand sagt, wie man eine Canvasfläche druckt (die könnte ich dann beliebig bearbeiten)...

Ich sag nur: HILFE, ich bin am verzweifeln

Chris
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#2
  Alt 15. Aug 2002, 15:14
Der Drucker hat eine Eigenschaft printer.canvas
und dann musst du noch die Unit Printers einbinden!
Code:
printer.BeginDoc;
printer.canvas.textout(300,100,'Jan');
printer.EndDoc;
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3
  Alt 15. Aug 2002, 15:30
Danke, aber noch eine Fragen:
Wie groß ist die Canvasfläche?

Chris
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#4
  Alt 15. Aug 2002, 15:38
@Chakotay:
Da würde ein Blick in die Delphi-Hilfe helfen. Das Objekt TPrinter bringt die Eigenschaften "PageWidth" und "PageHeight" mit, die genau die von Dir gewünschten Informationen liefern.

Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5
  Alt 15. Aug 2002, 17:04
Hi!
So, jetzt läuft es mit dem drucken. Aber nur bei mir. Auf anderen Rechnern, da druckt er alles viel zu nah. Liegt das an der Auflösung? Hat jemand eine Ahnung, wie man das ändern kann?

Chris
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#6
  Alt 17. Aug 2002, 12:15
So, folgendes Problem: Wenn ich auf meinem Rechner drucken will, dann klappt das auch alles Wunderbar. Wenn ich aber auf einem anderen Drucker/Rechner (gleiche Auflösung) drucken will, sind alle Texte zu nah aneinander bzw. die Rechtecke sind zu klein, dass der Text nicht mehr reinpasst (selbst wenn die Texte viel nah sind).
Ich habe mal was von QReport gehört, aber das ist ja eine ganz "normaler" Komponente, die sichtbar ist...

Hat jemand eine Lösung?

Chris
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#7
  Alt 17. Aug 2002, 12:39
Mir ist nicht so ganz klar wie das aussieht. Kannst du mal ein Screenshot machen? Und vielleicht mal eine Konsolenschriftart einstellen. Oder versteh ich das jetzt irgendwie falsch?
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#8
  Alt 17. Aug 2002, 13:16
Im Anhang findest du beide Ausdrucke. Ich glaube, du hast etwas falsch verstanden: beim Ausgedruckten ist was falsch.

Chris

PS: Das mit der Farbe liegt am Druckertyp...
Miniaturansicht angehängter Grafiken
111_1029582797.jpg   111_1029583007.jpg  
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9
  Alt 17. Aug 2002, 14:15
Moin Chris,

da der Fehler ja offensichtlich im Zeilenvorschub begründet ist:
Wie errechnest Du den Beginn der nächsten Zeile, bzw. des Rechtecks?
Und wie sieht das ganze auf den Rechnern aus, wenn Du statt auf den Printer.Canvas auf ein Form.Canvas "druckst"?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#10
  Alt 17. Aug 2002, 14:35
Hier mal der komplette Sourcecode...
@Christian: Sieht bei mir aus, wie gedruckt.
Am besten, sagt ihr mir anhand des Sourcecodes, was falsch ist...

Code:
[b]procedure[/b] TForm1.drucken1Click(Sender: TObject);
[b]var[/b]
  i, j: integer;
[b]begin[/b]
  [b]if[/b] PrintDialog1.Execute [b]then[/b] [b]begin[/b]
    Printer.Copies := PrintDialog1.Copies;
    Printer.BeginDoc;
    [b]with[/b] Printer [b]do[/b] [b]begin[/b]
      Canvas.Rectangle([color=#0055FF]100[/color], [color=#0055FF]100[/color], Printer.PageWidth - [color=#0055FF]100[/color], [color=#0055FF]300[/color]);

      Canvas.Font.Size := [color=#0055FF]14[/color];
      Canvas.Font.Name := [color=#0055FF]'Courier New'[/color];
      Canvas.Font.Style := [fsBold];
      Canvas.Font.Color := clBlue;
      CenterText([color=#0055FF]'Ausdruck aus RememberIt!'[/color], [color=#0055FF]110[/color]);

      Canvas.Font.Size := [color=#0055FF]13[/color];
      Canvas.Font.Style := [fsBold, fsItalic];
      Canvas.Font.Color := clBlack;
      CenterText(DateTimeToStr(Now), [color=#0055FF]190[/color]);

      [i][color=#000080]{ end headerinformations }[/color][/i]


      Canvas.Font.Size := [color=#0055FF]9[/color];
      Canvas.Font.Name := [color=#0055FF]'Courier New'[/color];
      Canvas.Font.Style := [fsItalic];
      Canvas.Font.Color := clBlack;
      CenterText([color=#0055FF]'Seite '[/color] + IntToStr(Printer.PageNumber), Printer.PageHeight - [color=#0055FF]50[/color]);

      Canvas.Font.Size := [color=#0055FF]12[/color];
      Canvas.Font.Name := [color=#0055FF]'Arial'[/color];
      Canvas.Font.Style := [fsBold];
      Canvas.Font.Color := clBlack;
      Canvas.TextOut([color=#0055FF]100[/color], [color=#0055FF]350[/color], ListBox1.Items[ListBox1.ItemIndex]);

      Canvas.Font.Size := [color=#0055FF]10[/color];
      Canvas.Font.Name := [color=#0055FF]'Arial'[/color];
      Canvas.Font.Style := [];
      Canvas.Font.Color := clBlack;
      j := [color=#0055FF]420[/color];
      [b]for[/b] i:=[color=#0055FF]0[/color] [b]to[/b] Memo1.Lines.Count -[color=#0055FF]1[/color] [b]do[/b] [b]begin[/b]
        [b]if[/b] i*(Canvas.TextHeight(Memo1.Lines[ i ])) = (PageHeight - [color=#0055FF]70[/color]) [b]then[/b] [b]begin[/b]
          [color=#000080][i]{ Hier gibt es noch ein Problem: Da macht er keine neue Seite...}[/i][/color]
          Printer.NewPage;
          j := [color=#0055FF]100[/color];
        [b]end[/b];
        Canvas.TextOut([color=#0055FF]200[/color], j + (i*[color=#0055FF]50[/color]), Memo1.Lines[ i ]);
      [b]end[/b];

      [color=#000080][i]{ end rememberinformations }[/i][/color]
    [b]end[/b];
    Printer.EndDoc;
  [b]end[/b];
[b]end[/b];
Chris
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz