Hallo Forum,
ich benutze unter Windows IpHtmlPanel1.PrintPreview, was auch funktioniert.
Nur unter Linux wird ein Komplettes Schwarz beim drucken ausgegeben.
Gibt es eine Changse das in den Griff zu bekommen? LAZ V4.6 und 3.2.2.
Für Antworten wäre ich Dankbar.
IpHtmlPanel1.PrintPreview
Re: IpHtmlPanel1.PrintPreview
Unter welchem Widgetset? gtk2, gtk3, qt5, qt6?
Re: IpHtmlPanel1.PrintPreview
Ich habe das nun auf meiner OpenSUSE-VM mit einem kleinen IproHtml-Projekt ausprobiert, das irgendwann mal hier im Forum gepostet war (von dir?), und kann das Problem nicht bestätigen. Am besten war der Ausdruck auf gtk3 von der gtk3-IDE aus. Die qt6-IDE lieferten bei dem in der HTML-Seite eingebetteten transparenten Bild für alle Widgetsets einen schwarzen Hintergrund, und auf der gtk3-IDE kam unter qt5 und qt6 ein leeres Blatt, wobei aber schon eine leere Druckvorschau gerendert worden ist. IDEs unter den anderen Widgetsets habe ich nicht probiert. Komplett schwarz war der Ausdruck nie.
-
hbr
- Beiträge: 329
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: IpHtmlPanel1.PrintPreview
Das Problem tritt bei Linux MINT 2.3 auf in gtk2.
Alle Seiten sind komplett schwarz, bis auf Bilder die zu sehen sind.
Das Problem konnte gelöst werden.
Alle Seiten sind komplett schwarz, bis auf Bilder die zu sehen sind.
Das Problem konnte gelöst werden.
Code: Alles auswählen
procedure TIpHtmlInternalPanel.PrintPages(FromPage, ToPage: Integer);
var
CR : TRect;
i : Integer;
oldRD: TIpHtmlRenderDevice;
begin
if (Hyper <> nil) then begin
oldRD := Hyper.RenderDevice;
Printer.Refresh;
BeginPrint;
Printer.BeginDoc;
try
CR := Rect(0, 0, PrintWidth, 0);
for i := FromPage to ToPage do begin
CR.Top := (i - 1) * PrintHeight;
CR.Bottom := Cr.Top + PrintHeight;
//*************** Fix ********************//
with Printer.Canvas do
begin
Brush.Style := bsSolid;
Brush.Color := clWhite;
FillRect(Rect(0, 0, Printer.PageWidth, Printer.PageHeight));
end;
//***************************************//
Hyper.FRenderDev := rdPrinter;
Hyper.Render(Printer.Canvas, CR, False, PrintTopLeft);
if i < ToPage then
Printer.NewPage;
Printed := True;
end;
finally
if Printed then
Printer.EndDoc
else
Printer.Abort;
EndPrint;
Hyper.FRenderDev := oldRD;
end;
end;
end;
Re: IpHtmlPanel1.PrintPreview
Habe jetzt auch noch die VM mit Mint 22.3 genommen und den Drucker installiert. Darstellungsfehler gibt es unter gtk2 im Bereich des eingefügten Bildes (schwarzer Hintergrund), aber keinesfalls ist das ganze Blatt schwarz. Lazarus main und v4.4.
Ich frage mich, warum diese Zeilen bei mir nicht nötig sind.
Ich schicke dir mal in der Anlage das Programm, das ich zum Testen verwendet habe. Vielleicht lädst du im Gegenzug die html-Datei hoch, die du verwendest.
Ich frage mich, warum diese Zeilen bei mir nicht nötig sind.
Ich schicke dir mal in der Anlage das Programm, das ich zum Testen verwendet habe. Vielleicht lädst du im Gegenzug die html-Datei hoch, die du verwendest.
- Dateianhänge
-
ipro_printing_transparent_images_issue.zip- (72.12 KiB) 1-mal heruntergeladen
Re: IpHtmlPanel1.PrintPreview
Ist eventuell die Eigenschaft BgColor des IpHtmlPanels auf schwarz gestellt? Damit kann ich den ganzen Blatt-Hintergrund im Ausdruck schwarz machen (Die Defaulteinstellung ist clWhite).