PrintCapabilities printCapabilites = SelectedPrinter.GetPrintCapabilities(); IEnumerable pagesizeList = printCapabilites.PageMediaSizeCapability;GetPrintCapabilities sẽ không trả lại tất cả các kích thước trang
Mã trên không liệt kê tất cả các kích thước trang mà trình điều khiển máy in hỗ trợ và đây là vấn đề của tôi.
Ví dụ: nếu bạn sử dụng trình điều khiển máy in Microsoft XPS, bạn sẽ thấy rằng pagesizeList (ở trên) sẽ thiếu một số kích thước trang. "Letter Small" là một trong những kích thước trang bị thiếu (MS Word sẽ liệt kê thành công kích thước trang này).
Như một tấm séc nhanh tôi bán phá giá các khả năng in để xml như sau:
long gpCLen = _selectedPrinter.GetPrintCapabilitiesAsXml().Length;
FileStream fs = File.OpenWrite(@"c:\test.txt");
MemoryStream ms = _selectedPrinter.GetPrintCapabilitiesAsXml();
byte[] b = new byte[gpCLen];
ms.Read(b, 0, (int)gpCLen);
fs.Write(b, 0, (int)gpCLen);
fs.Close();
Nút PageMediaSize trong file xml sản xuất không thực sự có tất cả các kích thước trang, và những người mất tích.
trang Displayed dường như có tên bắt đầu PSK của họ:
<psf:Option name="psk:ISOA4" constrained="psk:None">
nhưng trang undisplayed dường như có:
<psf:Option name="ns0000:LETTERSMALL" constrained="psk:None">
Undisplayed Epson trang trình điều khiển in tương tự như:
<psf:Option name="epns200:IndexCard5x8" constrained="psk:None">
Về cơ bản một tên trang whos bắt đầu 'psk' PageMediaSizeCapability hiển thị, nhưng nếu nó sản xuất custom ie epns200, ns0000, nó không liệt kê. Bất kỳ ý tưởng tại sao và làm thế nào để sửa lỗi này xin vui lòng? Các nút/trang có nhưng PageMediaSizeCapability không thích nó!
Cảm ơn trước
EDIT:
Như nhà nước MS 'Một đối tượng PrintCapabilities là một cách dễ dàng-to-work-với đại diện của một loại nhất định của tài liệu XML được gọi là một tài liệu PrintCapabilities' Nhưng tài liệu có nhiều thông tin hơn đối tượng Full description
+1: hoạt động này và phải được chấp nhận làm câu trả lời. –