AGB  ·  Datenschutz  ·  Impressum  







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

HTML Datei drucken

Ein Thema von Metallicwar · begonnen am 8. Jan 2013 · letzter Beitrag vom 8. Jan 2013
Antwort Antwort
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#1

HTML Datei drucken

  Alt 8. Jan 2013, 08:57
Moin,
ich möchte durch Doppelklick auf eine Exe automatisch eine HTML Datei drucken.
Im OnCreate meiner Form rufe ich folgendes auf:
Delphi-Quellcode:
var
  Pfad: String;
begin
  Pfad := ExtractFilePath(paramstr(0));
  ShellExecute(Handle,'Print',PChar(Pfad+'index.html'),'','',0);
Meine Frage ist nun, wie ich die Druckerauswahl unterdrucken kann und die Datei direkt am Standarddrucker ausgedruckt wird?

MfG David
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#2

AW: HTML Datei drucken

  Alt 8. Jan 2013, 10:26
Den Druckdialog eben nicht benutzen, sondern ohne Druckdialog und RAW-Druck zeilenweise an den Printer drucken. Der Standarddrucker hat den Printer-Index -1.

Oder willst Du die HTML nicht als Ascii-Datei drucken sondern eine erzeugte, gestaltete HTML-Seite?
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#3

AW: HTML Datei drucken

  Alt 8. Jan 2013, 10:44
Ich will die gestaltete HTML Seite drucken, nicht den Quelltext
und ich krieg diese Druckerauswahl einfach nicht weg ...

MfG David
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#4

AW: HTML Datei drucken

  Alt 8. Jan 2013, 11:06
Der Druckdialog wird von dem Programm aufgerufen, mit dem *.HTML verknüpft ist und welches du mit ShellExecute startest.

Wenn es nicht möglich ist, in den Optionen dieses Programmes den Druckdialog abzuschalten und sofortigen Druck zum Standard-Drucker einzustellen, musst du eben die Seitengestaltung über HTML-units intern erledigen und dann normal (intern) drucken.

Wobei es eh ziemlich willkürliche Ergebnisse liefert, was du da erzeugt hast; der Standarddrucker kann auf sonst etwas gesetzt sein, die HTML-Zuordnung auf ein anderes Programm verweien ...
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#5

AW: HTML Datei drucken

  Alt 8. Jan 2013, 11:28
gibts vll ne ganz andere Möglichkeit, über ein PrintDialog oder über ein TWebbrowser??

Muss diese Druckauswahl unbedingt rauskriegen
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: HTML Datei drucken

  Alt 8. Jan 2013, 12:29
Du kannst es versuchen mit

Delphi-Quellcode:
ShellExecute( 0, 'printto', PChar(DocumentName), PChar(PrinterName), nil,SW_HIDE);


res := ShellExecute(
  0,
  'printto',
  //PChar('C:\temp\test.htm'), >> funktioniert bei mir nicht
  PChar('C:\temp\test.xls'), // funktioniert
  PChar('PDF24'),
  nil,
  SW_HIDE
);
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#7

AW: HTML Datei drucken

  Alt 8. Jan 2013, 13:23
Hat bei mir auch nicht funktioniert ...

Will's jetzt mit Hilfe des TWebbrowser lösen:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Pfad: String;
begin
  Pfad := ExtractFilePath(paramstr(0));
  WebBrowser1.Navigate(Pfad+'index.html');
end;

procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  if ParamCount > 0 then
    webbrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER)
  else
    WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER);
end;

Funktioniert auch, nur will er jetzt garnicht mehr aufhören zu drucken. Ist eine andere Procedure zu verwenden, oder was läuft hier falsch?


Nachtrag: Mir ist aufgefallen, dass er die HTML Seite im Webbrowser irgendwie ständig aktualisiert und deshalb auch ständig erneut druckt ... jemand ne Idee weshalb?!?
Problem ist folgendes:
Die HTML Seite wird alle 30 Sekunden neu geladen ... Problem hierbei ist, ich krieg die HTML Datei nur übergeben, heißt ich darf nichts an ihr verändern .
Code:
<HTML><HEAD><TITLE>ZMI - Statustableau</TITLE><meta http-equiv="refresh" content="30">

Geändert von Metallicwar ( 8. Jan 2013 um 14:44 Uhr)
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#8

AW: HTML Datei drucken

  Alt 8. Jan 2013, 15:28
Hab's folgendermaßen gelöst:
Kopier mir zunächst die HTML Datei, lösch den Zeilenabschnitt mit dem Refresh raus und ruf dann die HMTL Seite über den Webbrowser auf, dann funktionierts, wie gewünscht.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Pfad: String;
  strlst: TStringList;
begin
  strlst := TStringList.Create;
  Pfad := ExtractFilePath(paramstr(0));
  try
    CopyFile(PChar(Pfad+'index.html'), PChar(Pfad+'index_print.html'),False);
    strlst.LoadFromFile(Pfad+'index_print.html');
    strlst.Text := StringReplace(strlst.Text, '<meta http-equiv="refresh" content="30">', '', [rfReplaceAll]);
    strlst.SaveToFile(Pfad+'index_print.html');
  finally
    strlst.Free;
  end;
  WebBrowser1.Navigate(Pfad+'index_print.html');
end;


procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  if ParamCount > 0 then
    Webbrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER)
  else
    WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER);
end;
Danke für eure Mithilfe !!!

MfG David
  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 12:25 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