Udostępnij za pośrednictwem


Znajdowanie zainstalowane drukarki z zadaniem skryptów

Dane, które jest przekształcana przez Integration Services pakiety ma często wydrukowany raport jako jego ostatecznego obiekt docelowy. The System.Drawing.Printing namespace in the Microsoft .NET Framework provides classes for working with printers.

Uwaga

Jeśli chcesz utworzyć zadanie, które łatwo można używać w wielu pakietów, należy rozważyć przy użyciu kodu w tym przykładzie skrypt zadanie jako punkt początkowy dla niestandardowego zadania.Aby uzyskać więcej informacji zobaczOpracowywania niestandardowego zadania.

Description

W poniższym przykładzie lokalizuje drukarek zainstalowanych na serwerze, które obsługują prawne rozmiar papieru (tak jak w Stanach Zjednoczonych).Kod, aby sprawdzić, czy rozmiary papieru obsługiwane są hermetyzowane w funkcja prywatnych.Aby umożliwić śledzenie postępów skrypt, sprawdza ustawienia dla każdej drukarki, skrypt użyje Log(String, Int32, array<Byte[]) metoda podnoszenia komunikat informacyjny dla drukarek z papier o rozmiarze prawnych i podnieść ostrzeżenie w przypadku drukarek bez prawne rozmiar papieru. These messages appear in the Output window of the Microsoft Visual Studio Tools for Applications (VSTA) IDE when you run the package in the designer.

Aby skonfigurować ten przykład zadania skryptu

  1. Tworzenie zmiennej o nazwie PrinterList z typem Object.

  2. Na Skrypt stronaEdytor zadań skryptu, dodanie tej zmiennej do ReadWriteVariables Właściwość.

  3. W projekcie skryptu Dodaj odwołanie do System.Drawing obszar nazw.

  4. W kodzie należy użyć Imports instrukcje, aby zaimportować System.Collections and the System.Drawing.Printing obszarów nazw.

Code

Public Sub Main()

    Dim printerName As String
    Dim currentPrinter As New PrinterSettings
    Dim size As PaperSize

    Dim printerList As New ArrayList
    For Each printerName In PrinterSettings.InstalledPrinters
        currentPrinter.PrinterName = printerName
        If PrinterHasLegalPaper(currentPrinter) Then
            printerList.Add(printerName)
            Dts.Events.FireInformation(0, "Example", _
                "Printer " & printerName & " has legal paper.", _
                String.Empty, 0, False)
        Else
            Dts.Events.FireWarning(0, "Example", _
                "Printer " & printerName & " DOES NOT have legal paper.", _
                String.Empty, 0)
        End If
    Next

    Dts.Variables("PrinterList").Value = printerList

    Dts.TaskResult = ScriptResults.Success

End Sub

Private Function PrinterHasLegalPaper( _
    ByVal thisPrinter As PrinterSettings) As Boolean

    Dim size As PaperSize
    Dim hasLegal As Boolean = False

    For Each size In thisPrinter.PaperSizes
        If size.Kind = PaperKind.Legal Then
            hasLegal = True
        End If
    Next

    Return hasLegal

End Function
public void Main()
        {

            PrinterSettings currentPrinter = new PrinterSettings();
            PaperSize size;
            Boolean Flag = false;

            ArrayList printerList = new ArrayList();
            foreach (string printerName in PrinterSettings.InstalledPrinters)
            {
                currentPrinter.PrinterName = printerName;
                if (PrinterHasLegalPaper(currentPrinter))
                {
                    printerList.Add(printerName);
                    Dts.Events.FireInformation(0, "Example", "Printer " + printerName + " has legal paper.", String.Empty, 0, ref Flag);
                }
                else
                {
                    Dts.Events.FireWarning(0, "Example", "Printer " + printerName + " DOES NOT have legal paper.", String.Empty, 0);
                }
            }

            Dts.Variables["PrinterList"].Value = printerList;

            Dts.TaskResult = (int)ScriptResults.Success;

        }

        private bool PrinterHasLegalPaper(PrinterSettings thisPrinter)
        {

            bool hasLegal = false;

            foreach (PaperSize size in thisPrinter.PaperSizes)
            {
                if (size.Kind == PaperKind.Legal)
                {
                    hasLegal = true;
                }
            }

            return hasLegal;

        }
Integration Services icon (small) Konfiguracja w aktualizacji z usług integracja Services pobytu

Najnowsze pliki do pobrania, artykuły, próbki, i pliki wideo firmy Microsoft, jak również wybranego rozwiązania od Wspólnoty, odwiedź witrynę Integration Services strona w witrynie MSDN lub TechNet:

Automatycznego powiadomienie tych aktualizacji należy subskrybować źródła danych RSS, które jest dostępne strona.

See Also

Concepts