Laden...

Pdf drucken

Erstellt von skytwister vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.897 Views
S
skytwister Themenstarter:in
2 Beiträge seit 2005
vor 18 Jahren
Pdf drucken

Hallo zusammen,

ich habe da ein Problem. Ich muss ein Tool schreiben, dass ein Zip-File entpackt und die im File befindlichen Pdfs an den Netzwerkdrucken schickt.

Leider finde ich keine brauchbare Lösung zu drucken der entzippten Pdfs.

Kann man eine Adobe Reader dll dazu verwenden.

Wäre toll wenn mir jemand ein Beispiel ins Forum posten könnte.

Danke & Lg Sky

M
48 Beiträge seit 2005
vor 18 Jahren

Hallo skytwister,

ich kann Dir zwar (noch) kein Beispiel geben, aber vielleicht funktioniert der folgende Ansatz.

Wenn Du im Windows Explorer eine PDF-Datei mit der rechten Maustaste anklickst, bekommst Du u.a. den Menüpunkt "drucken" angezeigt. Versuche doch einfach, es auch so zu machen. Starte in deinem Programm den AcrobatReader mit folgenden Parametern:

"C:\Program Files\Adobe\Acrobat 5.0\Reader\AcroRd32.exe" /p /h "PDF-File.pdf"

Der Parameter /p sorgt dafür, dass die PDF-Datei gedruckt wird.
Der Parameter /h sorgt dafür, dass der Drucken-Dialog nicht angezeigt wird.

Ich habe das mal mit einer kleinen Batchdatei ausprobiert. Das hat ganz gut funktioniert. Allerdings bleibt der AcrobatReader danach mit einem leeren Fenster stehen und die Batchdatei wartet auf das Ende des AcrobatReaders. Da habe ich aber noch keine Lösung dafür.

Mike

Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz. 😉

D
128 Beiträge seit 2005
vor 18 Jahren

Vielleicht hilft auf Folgendes:

Ich gehe mal davon aus, dass Du Microsoft VS 2003 benutzt.
Wenn Du also in die Designansicht Deines Projekts wechselst, sodass Du Deine Form siehst, oeffnest Du die Toolbox. Anschliessend oeffnet sich mit einem Rechtsklick (unter den)/ auf die Windows Forms ein Popupfenster, in dem Du die Moeglichkeit hast "Add/Remove Item..." anzuklicken. In dem aufpopenden Fenster waehlst Du den Karteireiter COM Components aus und suchst folgende Komponente:

Adobe Acrobat Control for ActiveX

Muesste die Datei pdf.ocx sein, die sich irgendwo im Adobe Acrobat Verzeichnis befindet. Anschliessend bestaetigen und schon kannst Du in der Liste der Windows Forms (wahrscheinlich ganz unten in der Liste) eine neue Komponente sehen, die sich Adobe Acrobat Control for ActiveX schimpft, sehen. Dabei erstellt dir das VS 2003 sogenannte Assemblies, eine Art Wrapper fuer die COM Komponenten. Diese findest Du dann in Deinem Bin/Debug (bzw. Release) Verzeichnis (AxInterop.PdfLib.dll ; Interop.PdfLib.dll). Diese solltest Du dann immer mit Deiner Software mitliefern, sonst laeuft Dein Programm nicht.
Nun ja, das wars schon fast. Nun musst Du die Komponente aus den Windows Forms auswaehlen, auf Deine Form in der gewuenschten Form ziehen und einen vernuenftigen Namen vergeben.

//Das solltest Du eventuell noch einfuegen
using AxPdfLib;

...

// Das muesste automatisch vom Designer erstellt worden sein
private AxPdfLib.AxPdf axPdf1 = new AxPdfLib.AxPdf();

// Hier nehme ich mal an, dass du auf einen Buttonklick ein PDF-Dokument
// von der Festplatte C: laden moechtest
// Das ist momentan direkt eingebunden, aber an dieser Stelle koennte man sich
// auch einen OpenfileDialog vorstellen, der dann den Pfad als String uebergibt

private void button_Click(object sender, System.EventArgs e)
{
this.axPdf1.LoadFile("C:\csharp.pdf");
}

// Ein weiterer Button druckt das Ganze

private void button2_Click(object sender, System.EventArgs e)
{
this.axPdf1.Print();
}

Das wars schon. Also alles keine Zauberei. Viel Erfolg beim Ausprobieren.

MFG, DaMoe

P.S.: Enschuldigt meine Rechtschreibung, aber ich schreibe auf einer englischen Tastatur und deshalb habe ich keine Umlaute und "Esszets" 🙂