<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: PDFs in C# unter Windows ausdrucken</title>
	<atom:link href="http://developers.toolstage.de/pdfs-in-c-ausdrucken/feed/" rel="self" type="application/rss+xml" />
	<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/</link>
	<description>Der Developer-Blog</description>
	<lastBuildDate>Wed, 26 Jan 2011 19:05:58 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Von: Nico</title>
		<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/comment-page-1/#comment-191</link>
		<dc:creator>Nico</dc:creator>
		<pubDate>Tue, 14 Dec 2010 10:48:22 +0000</pubDate>
		<guid isPermaLink="false">http://developers.toolstage.de/pdfs-in-c-ausdrucken/#comment-191</guid>
		<description>http://www.codeproject.com/KB/cs/GhostScriptUseWithCSharp.aspx
das umgewandelte Bild einfach ausdrucken.
Funktioniert einwandfrei.

Gruß</description>
		<content:encoded><![CDATA[<p><a href="http://www.codeproject.com/KB/cs/GhostScriptUseWithCSharp.aspx" rel="nofollow">http://www.codeproject.com/KB/cs/GhostScriptUseWithCSharp.aspx</a><br />
das umgewandelte Bild einfach ausdrucken.<br />
Funktioniert einwandfrei.</p>
<p>Gruß</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Patte</title>
		<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/comment-page-1/#comment-189</link>
		<dc:creator>Patte</dc:creator>
		<pubDate>Wed, 08 Dec 2010 07:54:07 +0000</pubDate>
		<guid isPermaLink="false">http://developers.toolstage.de/pdfs-in-c-ausdrucken/#comment-189</guid>
		<description>Hallo,
dieses Problem haben sehr viele Leute aber keine Passende Lösung dazu...

Ich habe dieses Problem teilweise Recht gut mit dem FoxitReader 4.3 lösen können. (VB.NET Code, kann aber leicht umgestellt für C# Verwendet werden!)

[Datei] Pfad zu der PDF Datei die Gedruckt werden soll
[Anzahlkopien] Wie oft das Dokument gedruckt werden soll
[Druckername] Name des Druckers auf dem Gedruckt werden soll
Wichtig dabei ist das der Dateipfad und der Druckername in doppelten Anfürhungszeichen &quot; sein müssen.


Hier nun der Code:
For i As Integer = 1 To [Anzahlkopien]
                Dim myProc As New Process
                myProc.StartInfo.FileName = &quot;&quot;&quot;&quot; &amp; My.Application.Info.DirectoryPath &amp; &quot;\FoxitReader\FoxitReader.exe&quot;&quot;&quot;
                myProc.StartInfo.Arguments = &quot;-t &quot;&quot;&quot; &amp; [Datei] &amp; &quot;&quot;&quot; &quot;&quot;&quot; &amp; [Druckername] &amp; &quot;&quot;&quot;&quot;
                myProc.StartInfo.CreateNoWindow = False
                myProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
              Try
                    If myProc.Start() Then
                        myProc.WaitForExit(30000)
                    Else
                        GoTo printerror
                    End If
                Catch ex As Exception
                    MsgBox(ex.Message)
                    Exit For
                End Try
                Application.DoEvents()
            Next
printerror:
hier die Behandlung einfügen, wenn ein Fehler auftritt. 

----------------CODE ENDE-------------------
Man kann mit Prozess auch die Fehlermeldungen Abfangen und diese ausgeben.

Hier der Code
Dim sFeh As String = &quot;&quot;
For i As Integer = 1 To [Anzahlkopien]
                Dim myProc As New Process
                myProc.StartInfo.FileName = &quot;&quot;&quot;&quot; &amp; My.Application.Info.DirectoryPath &amp; &quot;\FoxitReader\FoxitReader.exe&quot;&quot;&quot;
                myProc.StartInfo.Arguments = &quot;-t &quot;&quot;&quot; &amp; [Datei] &amp; &quot;&quot;&quot; &quot;&quot;&quot; &amp; [Druckername] &amp; &quot;&quot;&quot;&quot;
                myProc.StartInfo.CreateNoWindow = False
                myProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                myProc.StartInfo.RedirectStandardError = True
                
                Try
                    If myProc.Start() Then
                        myProc.WaitForExit(30000)
                    Else
                        Dim input As Integer = myProc.StandardOutput.Read
                        Do Until input = -1
                            sFeh &amp;= ChrW(input)
                            input = myProc.StandardError.Read
                        Loop
                        GoTo printerror
                    End If
                Catch ex As Exception
                    MsgBox(ex.Message)
                    Exit For
                End Try
                Application.DoEvents()
            Next
printerror:
MsgBox(sFeh)</description>
		<content:encoded><![CDATA[<p>Hallo,<br />
dieses Problem haben sehr viele Leute aber keine Passende Lösung dazu&#8230;</p>
<p>Ich habe dieses Problem teilweise Recht gut mit dem FoxitReader 4.3 lösen können. (VB.NET Code, kann aber leicht umgestellt für C# Verwendet werden!)</p>
<p>[Datei] Pfad zu der PDF Datei die Gedruckt werden soll<br />
[Anzahlkopien] Wie oft das Dokument gedruckt werden soll<br />
[Druckername] Name des Druckers auf dem Gedruckt werden soll<br />
Wichtig dabei ist das der Dateipfad und der Druckername in doppelten Anfürhungszeichen &#8221; sein müssen.</p>
<p>Hier nun der Code:<br />
For i As Integer = 1 To [Anzahlkopien]<br />
                Dim myProc As New Process<br />
                myProc.StartInfo.FileName = &#8220;&#8221;"&#8221; &amp; My.Application.Info.DirectoryPath &amp; &#8220;\FoxitReader\FoxitReader.exe&#8221;"&#8221;<br />
                myProc.StartInfo.Arguments = &#8220;-t &#8220;&#8221;" &amp; [Datei] &amp; &#8220;&#8221;" &#8220;&#8221;" &amp; [Druckername] &amp; &#8220;&#8221;"&#8221;<br />
                myProc.StartInfo.CreateNoWindow = False<br />
                myProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden<br />
              Try<br />
                    If myProc.Start() Then<br />
                        myProc.WaitForExit(30000)<br />
                    Else<br />
                        GoTo printerror<br />
                    End If<br />
                Catch ex As Exception<br />
                    MsgBox(ex.Message)<br />
                    Exit For<br />
                End Try<br />
                Application.DoEvents()<br />
            Next<br />
printerror:<br />
hier die Behandlung einfügen, wenn ein Fehler auftritt. </p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-CODE ENDE&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Man kann mit Prozess auch die Fehlermeldungen Abfangen und diese ausgeben.</p>
<p>Hier der Code<br />
Dim sFeh As String = &#8220;&#8221;<br />
For i As Integer = 1 To [Anzahlkopien]<br />
                Dim myProc As New Process<br />
                myProc.StartInfo.FileName = &#8220;&#8221;"&#8221; &amp; My.Application.Info.DirectoryPath &amp; &#8220;\FoxitReader\FoxitReader.exe&#8221;"&#8221;<br />
                myProc.StartInfo.Arguments = &#8220;-t &#8220;&#8221;" &amp; [Datei] &amp; &#8220;&#8221;" &#8220;&#8221;" &amp; [Druckername] &amp; &#8220;&#8221;"&#8221;<br />
                myProc.StartInfo.CreateNoWindow = False<br />
                myProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden<br />
                myProc.StartInfo.RedirectStandardError = True</p>
<p>                Try<br />
                    If myProc.Start() Then<br />
                        myProc.WaitForExit(30000)<br />
                    Else<br />
                        Dim input As Integer = myProc.StandardOutput.Read<br />
                        Do Until input = -1<br />
                            sFeh &amp;= ChrW(input)<br />
                            input = myProc.StandardError.Read<br />
                        Loop<br />
                        GoTo printerror<br />
                    End If<br />
                Catch ex As Exception<br />
                    MsgBox(ex.Message)<br />
                    Exit For<br />
                End Try<br />
                Application.DoEvents()<br />
            Next<br />
printerror:<br />
MsgBox(sFeh)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Oli</title>
		<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/comment-page-1/#comment-188</link>
		<dc:creator>Oli</dc:creator>
		<pubDate>Sat, 04 Dec 2010 09:37:32 +0000</pubDate>
		<guid isPermaLink="false">http://developers.toolstage.de/pdfs-in-c-ausdrucken/#comment-188</guid>
		<description>Hi,
nun genau das ist mein Problem. Ich möchte ein vorhandenes pdf - Dokument ausdrucken, allerdings ohne das Zutun eines Benutzers. Der Benutzer klickt in meiner Anwendung einen Button und entsprechend der von ihm vogenommenen Auswahl soll nun ein pdf an einen bestimmten (immer gleichen) Drucker gesendet werden. 
Der Benutzer soll dabei nichts machen müssen, nachdem der Button gedrückt wurde (außer zum Drucker zu laufen und das Dokument rausnehmen :-)) 

Wie ist das zu realisiseren, ohne Acrobat Reader zu öffnen?

Grüße Oli</description>
		<content:encoded><![CDATA[<p>Hi,<br />
nun genau das ist mein Problem. Ich möchte ein vorhandenes pdf &#8211; Dokument ausdrucken, allerdings ohne das Zutun eines Benutzers. Der Benutzer klickt in meiner Anwendung einen Button und entsprechend der von ihm vogenommenen Auswahl soll nun ein pdf an einen bestimmten (immer gleichen) Drucker gesendet werden.<br />
Der Benutzer soll dabei nichts machen müssen, nachdem der Button gedrückt wurde (außer zum Drucker zu laufen und das Dokument rausnehmen <img src='http://developers.toolstage.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) </p>
<p>Wie ist das zu realisiseren, ohne Acrobat Reader zu öffnen?</p>
<p>Grüße Oli</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Nico</title>
		<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/comment-page-1/#comment-187</link>
		<dc:creator>Nico</dc:creator>
		<pubDate>Wed, 24 Nov 2010 11:26:47 +0000</pubDate>
		<guid isPermaLink="false">http://developers.toolstage.de/pdfs-in-c-ausdrucken/#comment-187</guid>
		<description>Man kann auch das pdf mit GhostScript (OpenSource) in ein Bild umwandeln und das Bild wiederrum ausdrucken. Da kann man dann auch den Drucker bestimmen, auf dem das Bild ausgedruckt werden soll.
Gruß</description>
		<content:encoded><![CDATA[<p>Man kann auch das pdf mit GhostScript (OpenSource) in ein Bild umwandeln und das Bild wiederrum ausdrucken. Da kann man dann auch den Drucker bestimmen, auf dem das Bild ausgedruckt werden soll.<br />
Gruß</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Kai</title>
		<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/comment-page-1/#comment-182</link>
		<dc:creator>Kai</dc:creator>
		<pubDate>Wed, 30 Jun 2010 16:12:43 +0000</pubDate>
		<guid isPermaLink="false">http://developers.toolstage.de/pdfs-in-c-ausdrucken/#comment-182</guid>
		<description>Der Druck über Acrobat mit &quot;shell&quot; oder ähnlichen &quot;Scherzen&quot; ist total sinnlos. Auf die Methode bekommt man vielleicht mal ein oder zwei Blatt gedruckt aber mehr auch nicht. Das Problem mit dem Standardrucker ist nicht lösbar (meines Wissens) und den Prozess wird man eben nicht ordentlich los... mal abgesehen davon, dass das Fenster des Readers nervt. Wir haben sehr viel probiert - wird nix! Ist irgendwo aber auch einzusehen - schließlich bietet Adobe entsprechende Bibliotheken für sehr(!!) viel Geld an und die soll ja auch jemand kaufen..
Die m.E. beste Methode findet man hier: http://www.wpcubed.com/ . Die Leistung, die man erwartet (wenngleich noch kleinere Macken vorhanden sind) und ein faires Lizenzmodell.
Ne Demo kann man runterladen und mal probieren...</description>
		<content:encoded><![CDATA[<p>Der Druck über Acrobat mit &#8220;shell&#8221; oder ähnlichen &#8220;Scherzen&#8221; ist total sinnlos. Auf die Methode bekommt man vielleicht mal ein oder zwei Blatt gedruckt aber mehr auch nicht. Das Problem mit dem Standardrucker ist nicht lösbar (meines Wissens) und den Prozess wird man eben nicht ordentlich los&#8230; mal abgesehen davon, dass das Fenster des Readers nervt. Wir haben sehr viel probiert &#8211; wird nix! Ist irgendwo aber auch einzusehen &#8211; schließlich bietet Adobe entsprechende Bibliotheken für sehr(!!) viel Geld an und die soll ja auch jemand kaufen..<br />
Die m.E. beste Methode findet man hier: <a href="http://www.wpcubed.com/" rel="nofollow">http://www.wpcubed.com/</a> . Die Leistung, die man erwartet (wenngleich noch kleinere Macken vorhanden sind) und ein faires Lizenzmodell.<br />
Ne Demo kann man runterladen und mal probieren&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Quinte</title>
		<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/comment-page-1/#comment-181</link>
		<dc:creator>Quinte</dc:creator>
		<pubDate>Tue, 15 Jun 2010 10:00:28 +0000</pubDate>
		<guid isPermaLink="false">http://developers.toolstage.de/pdfs-in-c-ausdrucken/#comment-181</guid>
		<description>&quot;.. Dort sind alle funktionen implementiert.&quot;

Na Klasse, aber nur eine brauchbare Druckfunktion fehlt da leider auch.

Irgendwie scheint es keine vernünftige Lösung zu geben ohne gravierende Einschränkungen aus dem Programm heraus über ein Printerdialog ein bereits existierendes PDF-File zu drucken.</description>
		<content:encoded><![CDATA[<p>&#8220;.. Dort sind alle funktionen implementiert.&#8221;</p>
<p>Na Klasse, aber nur eine brauchbare Druckfunktion fehlt da leider auch.</p>
<p>Irgendwie scheint es keine vernünftige Lösung zu geben ohne gravierende Einschränkungen aus dem Programm heraus über ein Printerdialog ein bereits existierendes PDF-File zu drucken.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Christian</title>
		<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/comment-page-1/#comment-178</link>
		<dc:creator>Christian</dc:creator>
		<pubDate>Wed, 07 Apr 2010 09:55:28 +0000</pubDate>
		<guid isPermaLink="false">http://developers.toolstage.de/pdfs-in-c-ausdrucken/#comment-178</guid>
		<description>Open Source Projekt 

PdfSharp

http://www.pdfsharp.net/Features.ashx

Dort sind allle Funktionen implementiert.</description>
		<content:encoded><![CDATA[<p>Open Source Projekt </p>
<p>PdfSharp</p>
<p><a href="http://www.pdfsharp.net/Features.ashx" rel="nofollow">http://www.pdfsharp.net/Features.ashx</a></p>
<p>Dort sind allle Funktionen implementiert.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Felix</title>
		<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/comment-page-1/#comment-94</link>
		<dc:creator>Felix</dc:creator>
		<pubDate>Wed, 27 May 2009 15:50:49 +0000</pubDate>
		<guid isPermaLink="false">http://developers.toolstage.de/pdfs-in-c-ausdrucken/#comment-94</guid>
		<description>Habe die gleiche Frage wie Jan. Hat da jemand eine Idee?
Kann ich in C# irgendwie &quot;kontrollieren&quot;, ob alles geklappt hat? Jetzt mal abgesehen von try, catch...

Gruß Felix und vielen Dank für den Tipp!</description>
		<content:encoded><![CDATA[<p>Habe die gleiche Frage wie Jan. Hat da jemand eine Idee?<br />
Kann ich in C# irgendwie &#8220;kontrollieren&#8221;, ob alles geklappt hat? Jetzt mal abgesehen von try, catch&#8230;</p>
<p>Gruß Felix und vielen Dank für den Tipp!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Jan</title>
		<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/comment-page-1/#comment-85</link>
		<dc:creator>Jan</dc:creator>
		<pubDate>Thu, 19 Mar 2009 15:12:49 +0000</pubDate>
		<guid isPermaLink="false">http://developers.toolstage.de/pdfs-in-c-ausdrucken/#comment-85</guid>
		<description>coole Sache. Wie kann ich denn jetzt noch den Drucker auswählen?

Grüße
Jan</description>
		<content:encoded><![CDATA[<p>coole Sache. Wie kann ich denn jetzt noch den Drucker auswählen?</p>
<p>Grüße<br />
Jan</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: szimmer</title>
		<link>http://developers.toolstage.de/pdfs-in-c-ausdrucken/comment-page-1/#comment-18</link>
		<dc:creator>szimmer</dc:creator>
		<pubDate>Tue, 09 Oct 2007 09:16:49 +0000</pubDate>
		<guid isPermaLink="false">http://developers.toolstage.de/pdfs-in-c-ausdrucken/#comment-18</guid>
		<description>Um aus einer .NET-Anwendung heraus ein Pdf-Dokument zu drucken, brauchen wir erstmal eine passende Dll. Um von Visual Studio aus gegen die Dll zu linken, fügt man dem aktuellen Projekt einen Verweis hinzu und gibt als Verweisziel die COM-Komponente der lokal installierten Acrobat-Type-Library an.
Dann kann man bspw. mit dem folgenden Codesegment
AcroPDFLib.AcroPDF pdf = new AcroPDFLib.AcroPDFClass ();
pdf.LoadFile (p_strFileName);
pdf.Print ()
eine Datei drucken.

Eine andere Möglichkeit ist, über die Programm-ID einen in der Registry  registrierten Typ zu instantiieren. Das kann dann so aussehen (Reader):
Type tpAcrobat = Type.GetTypeFromProgID (&quot;AcroPDF.PDF&quot;);
oder so (Acrobat)
Type tpAcroApp = Type.GetTypeFromProgID (&quot;AcroExch.App&quot;);
Type tpAcroPDDoc = Type.GetTypeFromProgID (&quot;AcroExch.PDDoc&quot;);
Type tpAcroAVDoc = Type.GetTypeFromProgID (&quot;AcroExch.AVDoc&quot;);
Hat man ein Typ-Objekt, kann man mit dem Activator eine Instanz bilden und mit dieser den Druckvorgang anstoßen.

Der Vorteil ist hier, dass man zur Übersetzungszeit die Dll nicht kennen muss. Allerdings verlässt man sich im Gegenzug darauf, dass auf dem Rechner, auf dem die Applikation später läuft, eine passende Version vom Acrobat (resp. Reader) installiert ist.

Was die Wahl des Druckers angeht, weiss ich im Augenblick leider auch kein Mittel. Über die Methode AcroPDFLib.printWithDialog () kann man
einen Druckdialog einblenden und den Drucker manuell auswählen. Ich vermute aber mal, dass das nicht ausreicht.

Gruß
</description>
		<content:encoded><![CDATA[<p>Um aus einer .NET-Anwendung heraus ein Pdf-Dokument zu drucken, brauchen wir erstmal eine passende Dll. Um von Visual Studio aus gegen die Dll zu linken, fügt man dem aktuellen Projekt einen Verweis hinzu und gibt als Verweisziel die COM-Komponente der lokal installierten Acrobat-Type-Library an.<br />
Dann kann man bspw. mit dem folgenden Codesegment<br />
AcroPDFLib.AcroPDF pdf = new AcroPDFLib.AcroPDFClass ();<br />
pdf.LoadFile (p_strFileName);<br />
pdf.Print ()<br />
eine Datei drucken.</p>
<p>Eine andere Möglichkeit ist, über die Programm-ID einen in der Registry  registrierten Typ zu instantiieren. Das kann dann so aussehen (Reader):<br />
Type tpAcrobat = Type.GetTypeFromProgID (&#8221;AcroPDF.PDF&#8221;);<br />
oder so (Acrobat)<br />
Type tpAcroApp = Type.GetTypeFromProgID (&#8221;AcroExch.App&#8221;);<br />
Type tpAcroPDDoc = Type.GetTypeFromProgID (&#8221;AcroExch.PDDoc&#8221;);<br />
Type tpAcroAVDoc = Type.GetTypeFromProgID (&#8221;AcroExch.AVDoc&#8221;);<br />
Hat man ein Typ-Objekt, kann man mit dem Activator eine Instanz bilden und mit dieser den Druckvorgang anstoßen.</p>
<p>Der Vorteil ist hier, dass man zur Übersetzungszeit die Dll nicht kennen muss. Allerdings verlässt man sich im Gegenzug darauf, dass auf dem Rechner, auf dem die Applikation später läuft, eine passende Version vom Acrobat (resp. Reader) installiert ist.</p>
<p>Was die Wahl des Druckers angeht, weiss ich im Augenblick leider auch kein Mittel. Über die Methode AcroPDFLib.printWithDialog () kann man<br />
einen Druckdialog einblenden und den Drucker manuell auswählen. Ich vermute aber mal, dass das nicht ausreicht.</p>
<p>Gruß</p>
]]></content:encoded>
	</item>
</channel>
</rss>

