2011-10-25 26 views
8

thể trùng lặp:
Printing to a specific printer from a web appTôi có thể chọn máy in JavaScript để sử dụng không?

Một trong những ứng dụng mạng nội bộ của chúng tôi cần phải in ra với máy in không mặc định. Tất nhiên mọi người thường xuyên quên chọn máy in chính xác.

Tôi biết rằng bạn không thể làm điều này bình thường thông qua JavaScript nhưng cho rằng trình duyệt là IE9 và tôi có thể thêm webapp vào vùng tin cậy (và fiddle xung quanh với các thiết lập bảo mật theo ý muốn), có cách nào không để viết JavaScript sẽ tự động chọn đúng máy in? Có lẽ sử dụng một số ActiveX hoặc các công cụ cụ thể khác của IE.

+0

Nếu bạn có loại đó kiểm soát và nó bên trong, sau đó có thể là một điều khiển ActiveX có thể làm việc. –

Trả lời

6

Không, mô hình đối tượng Javascript bao gồm một phương thức window.print() có thể kích hoạt đối thoại in chuẩn của trình duyệt Web, nhưng đó là chừng nào chức năng mở rộng. Nó sẽ không phù hợp hoặc an toàn cho mã Javascript để có thể kiểm tra các máy in được gắn vào máy tính, tra cứu các thuộc tính của máy in hoặc tùy ý định cấu hình cài đặt của máy in.

Tôi đề xuất thêm cửa sổ bật lên trước khi in nơi bạn nhắc người dùng chọn máy in thích hợp.

+0

Rõ ràng là tôi không rõ ràng, tôi biết rằng điều này là không thể 'nói chung', nhưng tôi hy vọng rằng có thể có giải pháp cụ thể của IE nếu một số chính sách bảo mật được giải phóng (đây là ứng dụng * intranet * sau tất cả) – Kris

+1

Bạn đã đủ rõ ràng, câu trả lời vẫn như cũ, không có cách nào. – isJustMe

+1

Thực ra, giải pháp của contam hoạt động, ngay cả khi nó quá đắt đối với mục đích của tôi. – Kris

3

Nếu trình duyệt của bạn IE dựa bạn có thể sử dụng ActiveX này từ meadroid:

http://www.meadroid.com/scriptx/index.asp

Tôi đã sử dụng nó trong quá khứ và nó cho phép để kiểm soát các thuộc tính máy in.

Dưới đây là một ví dụ từ tài liệu mmeadroid:

<script> 
function printWindow() { 
    factory.printing.SetMarginMeasure(2); // set inches 
    factory.printing.header = "This is MeadCo"; 
    factory.printing.footer = "Printing by ScriptX"; 
    factory.printing.portrait = false; 
    factory.printing.leftMargin = 1.0; 
    factory.printing.topMargin = 1.0; 
    factory.printing.rightMargin = 1.0; 
    factory.printing.bottomMargin = 1.0; 
    factory.printing.copies = 1; 
    factory.printing.printBackground = true; 
    factory.printing.Print(false); 
    factory.printing.WaitForSpoolingComplete(); 
    // navigate or close browser here // 
} 
</script> 
+0

Điều này có vẻ như nó sẽ làm việc, nhưng chỉ với trả tiền cho phiên bản. – Kris

+0

Có :-) ... nó không miễn phí nhưng đối với dự án kinh doanh đó là một đầu tư tốt –

+2

Nếu bạn chuyển sang firefox ở đây là một thay thế, một addon cho firefox tương tự như meadco scriptx nhưng miễn phí: https://addons.mozilla.org/it/firefox/addon/js-print-setup/ –

Các vấn đề liên quan