Hej! Om det inte var vad du var ute efter så skadar det inte att du berättar vad som är fel och på vilket sätt du vill lösningen ska fungera istället... :) Du vill alltså skapa en helt ny typ av virtuell skrivare? Då måste du alltså skriva en device driver för detta virtuella device, eller är jag ute och cyklar nu? Du måste nog förklara problemet mer detaljerat, jag känner inte alls att jag förstår kopplingen mellan ett "xml-formulär" (vad det nu är :) ) och en virtuell skrivare :) Du behöver nog skapa en device driver, som sagt ett hästjobb. Saken är att det finns virtuella skrivare som man t.ex. kan få att skriva till fil i en vald katalog, så att aktivt behöva kryssa den rutan är inget krav. Titta på http://www.alagus.com/en/, är deras produkt "Alagus Print Port Manager" som är intressant :) Nu har jag hittat det: http://bytes.com/groups/net-c/224587-addprinter-using-cSkapa en vituell printer
Jag vill skapa en virtuell printer som jag kan välja när dialogen kommer fram. Alltså den dialog som windows presenterar med tillgängliga skrivare. Där vill jag att en virtuell skrivare ska dyka upp och när jag väljer den ska ett XML-fomulär skapas. XML-formuläret är inga problem, men hur får jag till skrivaren? Vill gärna använda C#, men om det är enklare i t.ex. VB så går det också bra.
/ JohanSv: Skapa en vituell printer
/JohanSv: Skapa en vituell printer
Isåfall börjar man här: http://www.microsoft.com/whdc/Devtools/wdk/default.mspx , men det är ju ett hästjobb.....Sv:Skapa en vituell printer
Sv: Skapa en vituell printer
Ett alternativ är att instruera användarna att kryssa i rutan "Print to file" i dialogrutan för val av printer. I din applikation (C#) kollar du sedan om den rutan är kryssad. Är den det, kan du presentera dialogrutan för var filen ska sparas och vad den ska heta. Sedan skapar du en XML-fil med det namnet.Sv:Skapa en vituell printer
Sv: Skapa en vituell printer
Jag har testat och det funkar.
Du kan lägga till en printer med namnet t ex XML-fil. Kolla om användaren väljer den printern:
PrintDialog pd = new PrintDialog();
pd.ShowDialog();
if(pd.PrinterSettings.PrinterName == "XML-fil")
{
//skapa filen
}
Man måste ange en printerdriver då man lägger till en printer, men drivern används inte här eftersom du ska skapa en fil. Som driver kan du ta den som hör ihop med default-printern, du måste alltså kolla vad användaren har för printer och dess driver.
http://msdn.microsoft.com/en-us/library/system.drawing.printing.printersettings.isdefaultprinter.aspx
http://www.dotnet247.com/247reference/msgs/27/137426.aspx (ej testat)