<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Problem mit PaintTo und TBitmap]]></title><description><![CDATA[<p>Ich versuche, ein PageControl seitenweise auszudrucken. Dafür benutze ich PaintTo, um die Seite in ein Bitmap zu zeichnen und male danach das Bitmap mit StretchDraw auf das Canvas des Druckers. Eigenartigerweise funktioniert das ganze, wenn ich das Bitmap in eine Datei speichere, wieder aus der Datei lade und dann drucke. Wenn ich aber das Bitmap direkt verwende, wird nur eine weiße Seite gedruckt. Was muß ich tun, damit das Bitmap auch ohne die &quot;Speichern-Laden-Krücke&quot; gedruckt wird?</p>
<p>Hier der relevante Code:</p>
<pre><code>if (PrintDialog1-&gt;Execute())
{
	Graphics::TBitmap* TestBMP = new Graphics::TBitmap();
	TestBMP-&gt;Width=PageControl1-&gt;ActivePage-&gt;Width;
	TestBMP-&gt;Height=PageControl1-&gt;ActivePage-&gt;Height;
	PageControl1-&gt;ActivePage-&gt;PaintTo(TestBMP-&gt;Canvas-&gt;Handle,0,0);
	TestBMP-&gt;SaveToFile(&quot;C:\\Test_01.bmp&quot;);
	TestBMP-&gt;LoadFromFile(&quot;C:\\Test_01.bmp&quot;);
	double Scale = (double)Printer()-&gt;PageWidth/(double)TestBMP-&gt;Width;
	if ((double)Printer()-&gt;PageHeight/(double)TestBMP-&gt;Height &lt; Scale)
		Scale=(double)Printer()-&gt;PageHeight/(double)TestBMP-&gt;Height;
	TRect DrawRect = Rect(0,0,TestBMP-&gt;Width*Scale,TestBMP-&gt;Height*Scale);
	Printer()-&gt;BeginDoc();
	Printer()-&gt;Canvas-&gt;StretchDraw(DrawRect,TestBMP);
	Printer()-&gt;EndDoc();
	delete TestBMP;
}
</code></pre>
<p>Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/87977/problem-mit-paintto-und-tbitmap</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 03:22:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/87977.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Oct 2004 14:57:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit PaintTo und TBitmap on Tue, 05 Oct 2004 14:57:42 GMT]]></title><description><![CDATA[<p>Ich versuche, ein PageControl seitenweise auszudrucken. Dafür benutze ich PaintTo, um die Seite in ein Bitmap zu zeichnen und male danach das Bitmap mit StretchDraw auf das Canvas des Druckers. Eigenartigerweise funktioniert das ganze, wenn ich das Bitmap in eine Datei speichere, wieder aus der Datei lade und dann drucke. Wenn ich aber das Bitmap direkt verwende, wird nur eine weiße Seite gedruckt. Was muß ich tun, damit das Bitmap auch ohne die &quot;Speichern-Laden-Krücke&quot; gedruckt wird?</p>
<p>Hier der relevante Code:</p>
<pre><code>if (PrintDialog1-&gt;Execute())
{
	Graphics::TBitmap* TestBMP = new Graphics::TBitmap();
	TestBMP-&gt;Width=PageControl1-&gt;ActivePage-&gt;Width;
	TestBMP-&gt;Height=PageControl1-&gt;ActivePage-&gt;Height;
	PageControl1-&gt;ActivePage-&gt;PaintTo(TestBMP-&gt;Canvas-&gt;Handle,0,0);
	TestBMP-&gt;SaveToFile(&quot;C:\\Test_01.bmp&quot;);
	TestBMP-&gt;LoadFromFile(&quot;C:\\Test_01.bmp&quot;);
	double Scale = (double)Printer()-&gt;PageWidth/(double)TestBMP-&gt;Width;
	if ((double)Printer()-&gt;PageHeight/(double)TestBMP-&gt;Height &lt; Scale)
		Scale=(double)Printer()-&gt;PageHeight/(double)TestBMP-&gt;Height;
	TRect DrawRect = Rect(0,0,TestBMP-&gt;Width*Scale,TestBMP-&gt;Height*Scale);
	Printer()-&gt;BeginDoc();
	Printer()-&gt;Canvas-&gt;StretchDraw(DrawRect,TestBMP);
	Printer()-&gt;EndDoc();
	delete TestBMP;
}
</code></pre>
<p>Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/621680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/621680</guid><dc:creator><![CDATA[Linnea]]></dc:creator><pubDate>Tue, 05 Oct 2004 14:57:42 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit PaintTo und TBitmap on Tue, 05 Oct 2004 16:40:56 GMT]]></title><description><![CDATA[<p>Kann ich nicht nachvollziehen, das druckt hier auch ohne Zwischenspeichern korrekt aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/621816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/621816</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Tue, 05 Oct 2004 16:40:56 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit PaintTo und TBitmap on Tue, 05 Oct 2004 18:35:56 GMT]]></title><description><![CDATA[<p>hmm, auf nem realen Drucker funktionierts wirklich ohne Zwischenspeichern, nur als Pdf gehts so nicht, zumindest nicht mit dem &quot;Pdf Creator&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/621901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/621901</guid><dc:creator><![CDATA[Linnea]]></dc:creator><pubDate>Tue, 05 Oct 2004 18:35:56 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit PaintTo und TBitmap on Tue, 05 Oct 2004 18:49:07 GMT]]></title><description><![CDATA[<p>Ist ja lustig. Ich hatte es nämlich nur als PDF-Ausgabe getestet (Acrobat 6), nicht mit 'nem echten Drucker. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/621914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/621914</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Tue, 05 Oct 2004 18:49:07 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit PaintTo und TBitmap on Mon, 11 Oct 2004 09:37:59 GMT]]></title><description><![CDATA[<p>selbst mit dem Acrobat PDF Writer gehts bei mir nicht, egal ob mit oder ohne Zwischenspeichern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>ich versuch mal zu erklären was ich als PDF drucken will:</p>
<p>ich hab ein PageControl mit 15 Tabsheets,<br />
auf jedem Tabsheet liegt ein Image (alClient) und<br />
es sind 1 oder 4 TCharts und mehrere Labels und Shapes darauf</p>
<p>das ganze soll als ein PDF-Dokument rauskommen</p>
<p>wenn ich einfach nur das Tabsheet mit PaintTo zum Drucker schicke druckt er alles außer den Diagrammen, wenn ich es so wie in meinem ersten Posting versuche, druckt er nur leere Seiten und wenn ich versuche vorher ein Bitmap zu speichern und zu laden bricht er nach der ersten Seite ab und meckert über zu wenig Speicher...</p>
<p>hat jemand ne Idee wie ich das lösen kann? und wenn ja welche?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/625816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/625816</guid><dc:creator><![CDATA[Linnea]]></dc:creator><pubDate>Mon, 11 Oct 2004 09:37:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit PaintTo und TBitmap on Mon, 11 Oct 2004 09:53:02 GMT]]></title><description><![CDATA[<p>Mach mal <strong>TBitmap::HandleType = bmDIB</strong><br />
Ich hatte irgendwann mal ähnliche Probleme und meine es damit in den Griff bekommen zu haben. Einfach mal probieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/625826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/625826</guid><dc:creator><![CDATA[Peter]]></dc:creator><pubDate>Mon, 11 Oct 2004 09:53:02 GMT</pubDate></item></channel></rss>