---
title: "anropa printer från koden"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/88608-anropa-printer-från-koden"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "theguru"
published: "2003-10-16T09:38:41.000Z"
updated: "2004-05-11T13:05:47.000Z"
replies: 11
views: 405
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/88608-anropa-printer-från-koden"
---

# anropa printer från koden

## #1 — theguru, 2003-10-16T09:38Z

Hej!

kan man när man använder printer.print ange att en annan printer än användarens default printer ska användas?

Permalänk: https://www.webforum.nu/p/88608

## #2 — Nexus86, 2003-10-16T09:51Z

Du kan visa en Print-ruta där man väljer skrivare, m.m. Lägg till Microsoft Common Dialog som Component (Project \> Components), lägg till en sådan på formuläret, och använd nedanstående kod INNAN du börjar använda Printer.Print.

```
CommonDialog1.ShowPrinter
```

Observera att du måste byta CommonDialog1 mot det namnet din CommonDialog-kontroll har.

Permalänk: https://www.webforum.nu/p/1187981

## #3 — theguru, 2003-10-16T13:17Z

jag skulle vilja att avändaren inte behövde tänka på det.
Jag vill att programmet skalll printa till en viss printer oavsett vilken som är satt att var default.

Nån som vet hur man gör

Permalänk: https://www.webforum.nu/p/1188119

## #4 — Nexus86, 2003-10-16T13:22Z

Hur ska koden välja skrivare då? Det går ju såklart att lösa men ska den välja efter skrivarnamn eller hur?

Om användaren inte ska behöva tänka på det, hur vet denne då vart pappret kommer hamna?

R// Ska den välja en slumpvist vald skrivare? :q

Permalänk: https://www.webforum.nu/p/1188124

## #5 — niko, 2003-10-16T13:35Z

Alla printrar finns i en collection *Printers* om du har sparat undan användarens val av skrivare så finns det flera möjligheter:

```
    Dim p As Printer
    For Each p In Printers
        If p.DeviceName = <ett undansparat skrivarnamn> Then
            Set Printer = p
        End If
    Next
```

eller om du sparat undan indexnumret:

```
   Set Printer = Printers(i)
```

Permalänk: https://www.webforum.nu/p/1188128

## #6 — theguru, 2003-10-16T14:03Z

verkar fungera fint!

Permalänk: https://www.webforum.nu/p/1188142

## #7 — theguru, 2003-10-17T11:19Z

finns det nåt sätt använda CommonDialog1.ShowPrinter på
utan att den sätter den som clientens default sida?
utan bara använder den skrivaren man annger i print objektet

Permalänk: https://www.webforum.nu/p/1188730

## #8 — niko, 2003-10-17T12:37Z

Vet inte. Men varför använda CommonDialog1.ShowPrinter öht? Gör ett eget inställningsformulär som visar alla objekt i Printers (se ovan) och låter användaren kryssa i vilken standardsskrivare han vill ha i ditt program. Hans val sparar du sen i registret eller ini-fil.

Permalänk: https://www.webforum.nu/p/1188787

## #9 — Nexus86, 2003-10-17T12:45Z

<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexpvb/html/selectingprinter.asp>

Permalänk: https://www.webforum.nu/p/1188789

## #10 — theguru, 2003-10-17T12:51Z

tacksam för fler ideer om detta ;-)

Permalänk: https://www.webforum.nu/p/1188794

## #11 — niko, 2003-10-17T14:50Z

Är inte säker på att jag förstår problemet, men:

1\. Du sätter programmets standardskrivare när programmet startar:

```
dim programmetsstandardskrivare as printer
Set programmetsstandardskrivare = Printers(<ett undansparat index>)
```

2\. Du smäller upp printer-dialogen för att ge användaren möjlighet att ändra printerinställningar för godtycklig skrivare.

3\. När dialogen stängs så sätts *Printer* till den skrivare användaren markerade. Men detta spelar ingen roll för vår del eftersom vi skriver ut via *programmetsstandardskrivare*. Och om vi tvunget vill skriva ut via  *Printer* så kan vi ju alltid ställa tillbaks den:

```
Set Printer = programmetsstandardskrivare 
Printer.Print
' osv ..
```

Permalänk: https://www.webforum.nu/p/1188864

## #12 — Teknohead, 2004-05-11T13:05Z

Jag har samma problem som theguru. Jag har ett webformulär som går till en komponent som ska skriva ut informationen från formuläret på en av tre olika skrivare i nätverket. 

Hur sätter man i koden vilken skrivare som ska skriva ut  utan några dialogrutor eller liknande för användaren? Dessutom vill jag inte påverka användarens defaultskrivare eftersom det bara är en enstaka utskrift som sker när man fyllt i formuläret. 

Jag vill kunna skriva något som fungerar som det här borde göra: 

select case selPrinter
case 1
Set Printer = "\\\\server\\printer1"
case 2
Set Printer = "\\\\server\\printer2"
case 3
Set Printer = "\\\\server\\printer3"
end select
osv..

och då ska den veta vilken skrivare som ska skriva ut mitt dokument. Hittills kommer det bara ut på användarens defaultskrivare och jag vet inte hur jag ska gå vidare.

Permalänk: https://www.webforum.nu/p/1344402

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/88608-anropa-printer-från-koden
