Avatar billede skwat Praktikant
24. marts 2007 - 16:02 Der er 4 kommentarer og
1 løsning

PrintDocument til PDF

Hejsa,

Jeg har en stak rapporter der er lavet i PrintDocument klassen, som en server process så udskriver på nogle printere.

Nu er der så kommet et ønske om at disse rapporter skal udskrives til PDF dokumenter i stedet. Hvilket jeg syntes er lidt et problem.
Jeg har kigget på nogle forskellige løsninger.
1. Installere en PDF printer, men her er problemet at brugeren selv skal indtaste filnavnet, på dokumentet. Og da jeg bruger .NET 1.1 har jeg ikke fundet nogen mulighed for at løse det.
2. Brug et .NET pdf lib. Her vil jeg ikke kunne genbruge noget som helst af min PrintDocument, hvilket jeg også syntes er lidt træls.

Altså headlines er.
Har en serverapplikation.
Printer dd. via PrintDocument (Standard del af .net framework.
Nu vil jeg gerne have output som PDF uden for meget arbejde :)

Er der nogen af eksperterne her der har en løsning på dette?
Avatar billede skwat Praktikant
24. marts 2007 - 16:03 #1
Glemte at nævne, det er vigtigt at jeg har styr på filnavnet på pdf dokumenterne.
Avatar billede capn Nybegynder
24. marts 2007 - 17:07 #2
Måske du kunne bruge løsning 1 og så styre filnavnet ved at lave send keys til dialogboksen.
Avatar billede skov_p Praktikant
26. marts 2007 - 15:04 #3
Find en PDF printer der kan køre i konsol mode.
Så printer du først men din PrintDocument.
Så bruger derefter Process klassen til køre PDF konsol filen med parametre. Bl.a. filnavn
Avatar billede capn Nybegynder
26. marts 2007 - 16:26 #4
En anden ting. Det er muligt at opsætte en pdf printer med GhostScript. Da GhostScript er open source må det kunne lade sig gøre at ændre det så den ikke spørger efter filnavn og placering, men i stedet følger dit skema.
Avatar billede skwat Praktikant
28. marts 2007 - 22:29 #5
Very well, nogle bud er der da. men jeg har fundet en løsning med cutepdf og lidt voodoo

printDoc.PrinterSettings.PrintToFile = true;
System.Reflection.FieldInfo fi = printDoc.PrinterSettings.GetType().GetField("outputPort",    System.Reflection.BindingFlags.Instance |system.Reflection.BindingFlags.NonPublic);
fi.SetValue( printDoc.PrinterSettings, @"c:\\svend_sved.pdf" );
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester