Menemukan Printer Terpasang dengan Tugas Skrip
Berlaku untuk: Integration Runtime SSIS SQL Server di Azure Data Factory
Data yang diubah oleh paket Layanan Integrasi sering memiliki laporan cetak sebagai tujuan akhirnya. Namespace layanan System.Drawing.Printing di Microsoft .NET Framework menyediakan kelas untuk bekerja dengan printer.
Catatan
Jika Anda ingin membuat tugas yang dapat digunakan kembali dengan lebih mudah di beberapa paket, pertimbangkan untuk menggunakan kode dalam sampel tugas Skrip ini sebagai titik awal untuk tugas kustom. Untuk informasi selengkapnya, lihat Mengembangkan Tugas Kustom.
Deskripsi
Contoh berikut menemukan printer yang diinstal pada server yang mendukung kertas ukuran hukum (seperti yang digunakan dalam Amerika Serikat). Kode untuk memeriksa ukuran kertas yang didukung dienkapsulasi dalam fungsi privat. Untuk memungkinkan Anda melacak kemajuan skrip saat memeriksa pengaturan untuk setiap printer, skrip menggunakan Log metode untuk menaikkan pesan informasi bagi printer dengan kertas ukuran hukum, dan untuk menaikkan peringatan bagi printer tanpa kertas ukuran legal. Pesan-pesan ini muncul di jendela Output IDE Microsoft® Visual Studio® Tools for Applications (VSTA) saat Anda menjalankan paket di perancang.
Untuk mengonfigurasi contoh Tugas Skrip ini
Buat variabel bernama
PrinterList
dengan jenis Objek.Pada halaman SkripEditor Tugas Skrip, tambahkan variabel ini ke properti ReadWriteVariables.
Dalam proyek skrip, tambahkan referensi ke namespace layanan System.Drawing .
Dalam kode Anda, gunakan pernyataan Impor untuk mengimpor System.Collections dan namespace System.Drawing.Printing .
Kode
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;
}
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk