AGB  ·  Datenschutz  ·  Impressum  







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

Ausdruck viel zu klein

Ein Thema von gmc616 · begonnen am 8. Apr 2006 · letzter Beitrag vom 10. Apr 2006
Antwort Antwort
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#1

Ausdruck viel zu klein

  Alt 8. Apr 2006, 10:50
Schönens Wochenende DP'ler,

ich nutze ein TXTextControl (www.textcontrol.com) um Texte schreiben zu können und diese natürlich auszudrucken.
Doch hin und wieder kommt es von, dass der Ausdruck auf eine A4-Seite stark verkleinert aus dem Drucker kommt.
Nur 1/3 breit und 1/3 hoch.
Wenn ich jedoch meine Datei, mit dem dazu gelieferten Demo drucke ist sieht der Ausdruck korrekt aus.

Zum Drucken benutze ich diese Funktion. Ich hoffe sie erklärt sich selbst

Delphi-Quellcode:
function fktTX_Print (pTX : TTXTextControl;pnPrinterIndex: integer;psTitle : string) :boolean;
var iPages , iNr : integer;
begin
  result := false;
  iPages := pTX.CurrentPages;
  try
    Printer.PrinterIndex := pnPrinterIndex;
    Printer.Title := psTitle;
    Printer.BeginDoc;
    for iNr := 1 to iPages do begin
      pTX.PrintDevice := Printer.Canvas.Handle;
      pTX.PrintPage(iNr);
      if iNr <> iPages then
        printer.Newpage;
    end;
    Printer.EndDoc;
    result := true;
  except
    result := false;
  end;
end;
gerufen wird sie so
Delphi-Quellcode:
if PrintDialog1.Execute then begin
  fktTX_Print(TxTextcontrol1,Printer.PrinterIndex,dfSubject.text);
end;
Hab ich was vergessen? Die Einstellungen für den Drucker macht doch der PrintDialog, oder?

Ich hoffe ihr könnt mir helfen. Ich stehe nämlich irgendwie auf'm Schlauch.

Danke
gmc
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Ausdruck viel zu klein

  Alt 8. Apr 2006, 17:40
Hi,
ich kenne ehrlich gesagt die von dir verwendete Komponente nicht und weiß deswegen auch nicht, was mit dem Demodokument gemacht wird. Aber das Problem mit unterschiedlichen Schriftgrößen (auf verschiedenen Druckern) kennen wahrscheinlich doch noch eine Menge Leute.

In der Regel kommt es durch eine (imho) unsaubere Umsetzung des Druckvorgangs unter Delphi zu Stande. So werden die Ausgaben auf dem PrintCanvas sehr Druckerspezifisch ausgegeben. Stellst du in deinem Drucker eine Auflösung von z.B. 72 dpi ein und druckst, ist die Schrift meistens um einiges größer als wenn du mit 600 dpi (oder natürlich noch viel höher) druckst. Das liegt einfach daran, dass die Standardausgabe in Pixeln rechnet (ohne deren Größe zu berücksichtigen). Um dies zu ändern gibt es ein einfaches Workaround, du kannst aber mit der Windows-API Funktion setDeviceCaps (glaube ich hieß so) dass verwendete Format auch setzen. Musst du einfach mal nach Suchen.

Wie gesagt, in der Regel tritt dieses Problem auf, wenn man selbst druckt. Hier lohnt es sich halt angaben in mm (bzw. 10tel mm bzw. inch bzw. ...) zu machen. So werden diese Angaben wirklich umgerechnet und der Text bei jeder eingestellten Druckerauflösung an der gleichen Stell mit der gleichen Auflösung ausgegeben.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Ausdruck viel zu klein

  Alt 10. Apr 2006, 13:19
Zitat von Der_Unwissende:
In der Regel kommt es durch eine (imho) unsaubere Umsetzung des Druckvorgangs unter Delphi zu Stande.
Hmmm ... na toll!

Danke erstmal, Unwissender.

Ich hoffe ich habs hin gekriegt. Jedenfalls drucks seit ca. 100 Dokumenten korrekt.
SetMapMode(printer.Canvas.Handle, MM_LOMETRIC); hab ich mal mit reingebaut um von Pixel auf 1/10 mm umzuschalten.

Außerdem hab ich in der TX-Kompo eine PrintZoom-Property gefunden.
Die hab ich zwar nie geändert, aber wer weiß was in der Kompo passiert.
Also wird vor dem Ausdruck noch TX.PrintZoom =100 gesetzt.
Ich hoffe das wars. Toi toi toi.

gmc
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:31 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