2008-11-03 26 views
20

Tôi đang tìm cách tạo một máy in ảo chuyển dữ liệu đến ứng dụng .NET của tôi. Tôi muốn sau đó tạo một trình cài đặt để cài đặt cả máy in và ứng dụng .NET. Chúng tôi sẽ thực sự tốt đẹp để có thể viết tất cả trong C#, nhưng tôi có cảm giác rằng điều này sẽ yêu cầu một trình điều khiển máy in được viết là mã không được quản lý. Có ai biết về một hướng dẫn khá sạch sẽ hoặc ví dụ về làm thế nào để làm điều này?Viết Máy in ảo trong .NET

Trả lời

0

Bạn không thể. Windows driver model có nguồn gốc.

+3

Anh ấy không thể chính xác là gì? Viết một "máy in ảo? Tất nhiên là có thể. Tạo một trình cài đặt để cài đặt một máy in ảo và một ứng dụng .NET? Tất nhiên là có thể. Hãy viết tất cả trong C#? Phụ thuộc vào định nghĩa của bạn" tất cả "và" trong C# ". – bzlm

+1

vâng, tất cả những gì anh ta phải làm là chuyển hướng dữ liệu đến trình điều khiển in giả CREATED hoặc trình điều khiển máy in thực sự được chọn, đến ứng dụng của anh ấy. Cũng có thể thực hiện bằng C# – Zerone

0

Tại sao không xem xét sử dụng một cách tiếp cận khác. Giống như sử dụng chương trình in sẵn sàng trung gian, chẳng hạn như ứng dụng In-PDF có sẵn miễn phí. Sau đó, tất cả những gì bạn cần là giải mã PDF bằng cách sử dụng một số thư viện của bên thứ 3 (trong đó có phương pháp miễn phí và mã nguồn mở quá) thay vì làm nứt đầu của bạn để phát minh lại bánh xe. Có các ứng dụng Print-to-XXX khác mà bạn cũng có thể xem xét tùy thuộc vào định dạng bạn thấy phù hợp.

1

tôi không điều giải thích cách tiếp cận PDF là bất kỳ tốt, hoặc. Tôi không biết tại sao bạn muốn làm những gì bạn muốn làm. Có lẽ bạn đang cố gắng để viết một máy in PDF của riêng bạn.

Tôi nghĩ rằng bạn thực sự cần cho sự phát triển điều khiển điều Windows một cái nhìn. Nếu bạn muốn phát triển một trình điều khiển máy in, tôi nghĩ bạn sẽ phải làm điều đó trong C++.

Chúc may mắn.

5

Bạn chỉ có thể có ứng dụng của bạn tiếp xúc với bản thân như một máy in loại LPD hoặc giám sát cổng 9100. Sau đó bạn có thể cài đặt bất kỳ trình điều khiển in bạn thích, và trỏ nó một ứng dụng của bạn.

+1

Ý tưởng hay. dữ liệu ", hoặc bất cứ điều gì đi qua cổng? – bzlm

+0

Thông thường 515, nó giống như hầu hết mọi thứ, là người dùng có thể xác định nhưng thường thì không phải là nó. LPD là tốt đẹp như có một tiêu đề nhỏ có chứa thông tin như hàng đợi đích vv tiếp theo là Chỉ cần nắm bắt một số dữ liệu và bạn sẽ thấy, nó khá đơn giản –

0

Nếu tôi nhớ chính xác Microsoft không hỗ trợ .NET trong phát triển điều khiển máy in. Tôi chưa đi qua một trình điều khiển máy in .NET thuần túy. Bạn sẽ là một người đàn ông rất can đảm để làm như vậy! Trang web "Printer Driver Resource Toolkit" không nói rằng người lái xe đã được viết bằng NET

19

Visit http://www.printerplusplus.com. Nó là mã nguồn mở .NET máy in ảo. Nó cung cấp cho bạn một trình cài đặt và một lớp .NET để viết mã để xử lý "dữ liệu máy in" của bạn.

1

Did chính xác những gì bạn đang yêu cầu sử dụng các dự án Github: Microsoft/Windows-lái-mẫu/in/XPSDrvSmpl

https://github.com/Microsoft/Windows-driver-samples/tree/master/print/XPSDrvSmpl

Installer: http://wixtoolset.org/

Ứng dụng: Nghe cổng nội

Lưu lượng: Cài đặt máy in và ứng dụng từ một trình cài đặt duy nhất. Người dùng in một cái gì đó với trình điều khiển của bạn và trong khi ứng dụng lắng nghe cổng nội bộ. Khi dữ liệu được gửi, ứng dụng sẽ chọn nó. Điều này là dành cho XPS, có thể được chuyển đổi sang PDF, nhưng lưu lượng tương tự bất kể bạn đang in gì.Nếu bạn cần bất kỳ điều gì khác, hãy kiểm tra Microsoft/Windows-driver-samples/print/trên GitHub hoặc các nguồn khác dành riêng cho nhu cầu của bạn.

Cập nhật:

Rất nhiều câu hỏi về cách để có được những tài xế làm việc vì vậy đây là một ví dụ nhanh:

Bắt đầu bằng cách tải về Windows Driver Kit (WDK) nếu bạn không có nó được cài đặt rồi. Khi cài đặt chọn thêm phần mở rộng cho Visual Studio cũng như trong bước cuối cùng. Trong cài đặt Visual Studio 2017, bạn cần có Desktop development with C++ để có SDK phù hợp. Nếu bạn không có nó, hãy xem anser bên dưới về cách thêm nó.

How do I add features to Visual Studio 2017?

https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit

Sau đó tải file .zip cho Windows-lái-mẫu tổng thể:

https://github.com/Microsoft/Windows-driver-samples/archive/master.zip

Điều hướng đến thư mục <UnzipFolder>\print\XPSDrvSmpl và mở XPSDrvSmpl.sln trong Visual Studio.

Sau đó, hãy làm theo hướng dẫn riêng của Microsofts về GitHub. Như bạn có thể thấy nó là dành cho Visual Studio 2015 nhưng tôi nghĩ nó giống nhau cho năm 2017 (chưa được thử nghiệm):

Để xây dựng giải pháp trình điều khiển bằng Bộ điều khiển Windows (WDK) 10 và Visual Studio 2015, hãy thực hiện như sau các bước.

  1. Mở tập tin giải pháp trong Visual Studio 2015.
  2. Thêm tất cả các file không nhị phân (thường nằm trong thư mục \ thư mục cài đặt của mẫu) cho dự án trọn gói: a. Trong Solution Explorer, nhấp chuột phải vào Driver Files b. Chọn Thêm, sau đó nhấp vào Mục hiện có c. Điều hướng đến vị trí mà bạn đã tải xuống mẫu và chọn tất cả các tệp trong thư mục cài đặt hoặc tập hợp tương đương của các tệp không nhị phân chẳng hạn như tệp INFs, INIs, GPD, PPD, v.v. Nhấp vào Thêm
  3. Định cấu hình các tệp này sẽ được thêm vào gói trình điều khiển: a. Trong Trình khám phá giải pháp , nhấp chuột phải vào giải pháp và chọn Thêm> Dự án mới . Chọn Gói cài đặt trình điều khiển trong Visual C++/Windows Trình điều khiển/Gói. b. Trong Solution Explorer, nhấp chuột phải vào gói dự án và chọn Thuộc tính. c. Trong ngăn bên trái, nhấp vào Thuộc tính cấu hình> Cài đặt trình điều khiển> Tệp gói. d. Trong ngăn bên phải , hãy sử dụng nút dấu ba chấm (...) để duyệt đến tập hợp các tệp cần được thêm vào gói trình điều khiển. Tất cả dữ liệu tệp mà bạn đã thêm trong Bước 2-c, ngoại trừ tệp INF, phải được thêm . Cấu hình này là theo kiến ​​trúc, vì vậy cấu hình phải được lặp lại cho mỗi kiến ​​trúc sẽ được xây dựng. e. Nhấp vào OK.
  4. Mở tệp INF và chỉnh sửa tệp đó để khớp với đầu ra được tạo. a. Mở tệp tin INF. b. Trong phần Phiên bản, hãy thêm tham chiếu đến danh mục tệp như sau: CatalogFile = XpsDrvSmpl.cat. c. Trong phần SourceDisksFiles, thay đổi vị trí của các tệp DLL mà bạn đang xây dựng, thành = 1.Điều này chỉ ra rằng không có kiến ​​trúc thư mục cụ thể trong trình điều khiển này. Nếu bạn gửi đồng thời nhiều kiến ​​trúc , bạn sẽ cần phải đối chiếu trình điều khiển INF theo cách thủ công.

Tại thời điểm này, Visual Studio 2015 sẽ có thể tạo gói trình điều khiển và xuất tệp ra đĩa. Để định cấu hình đăng nhập và triển khai trình điều khiển, xem phần Phát triển, Thử nghiệm và Triển khai Trình điều khiển.

https://github.com/Microsoft/Windows-driver-samples/tree/master/print/XPSDrvSmpl#build-the-sample

+0

Bạn có thể nói điều gì đó hơn về cách bạn tạo trình điều khiển máy in của riêng bạn? Công nghệ nào bạn viết trình điều khiển và ứng dụng (C++, C#, khác) – PawelD

+0

@Ogglas, bạn có thể chia sẻ những gì bạn đã làm không? – jNewbie

+0

@jNewbie Xem câu trả lời cập nhật – Ogglas