본 문서는 다음 링크의 문서를 번역한 것입니다.
https://docs.microsoft.com/ko-kr/windows-hardware/drivers/print/introduction-to-printing
틀린 번역이나 어색한 표현이 있을 수 있습니다.
[번역글]
프린팅 관련 설명
마이크로소프트 윈도우 프린팅 아키텍쳐는 프린트 스풀러와 프린터 드라이버들로 이루어져 있습니다.
어플리케이션은 장치의 종류와 상관없이 함수를 호출함으로서, 프린팅 잡을 만들고 그 잡을 다양한 장비로 보냅니다.
그 다양한 장비는 레이저 프린터가 될수도, 벡터 플로터가 될수도, 래스터 프린터가 될수도 있고 팩스 장비가 될 수도 있습니다.
프린터 드라이버에는 랜더링 컴포넌트와 설정 컴포넌트가 있습니다.
랜더링 컴포넌트는 어플리케이션이 제공한 그래픽 명령어를 프린터가 이미지를 페이지에 그리는데 사용하는
데이터 포맷으로 변환시킵니다.
설정 컴포넌트는 유저 인터페이스 컴포넌트와 프로그램 인터페이스 컴포넌트가 있습니다.
유저 인터페이스 컴포넌트는 유저가 프린터에서 설정가능한 옵션들을 보여주고, 프로그램 인터페이스는 프린터의 설정값과 특징들을 어플리케이션과 소통하도록
해줍니다.
마이크로소프트 win32 gdi 어플리케이션이 프린트 할 때, 이 앱은 win32 api의 gdi 함수를 호출합니다. 이러한 함수들은 gdi 그래픽 엔진에 정보를 전달합니다.
GDI 그래픽 엔진은 그리는 명령어들을 EMF(enhanced metafile)로 스풀하거나, 프린터 드라이버와 함께 스풀러로 보낼 수 있는 프린팅 할 수 있는 이미지를 그립니다.
스풀러 컴포넌트는 EMF 파일을 해석해서, 페이지 레이아웃 정보와 작업 제어 명령을 데이터 스트림으로 변환합니다.
스풀러는 그때, 데이터 스트림을 직렬, 병렬 혹은 네트워크를 통해 관련된 타겟 프린터의 입출력 포트로 보냅니다. 게다가, XPS 장비에서 출력하면, GDI 프린트 명령어는 GDI 에서 XPS로 변환하는 컴포넌트를 통해 변환되어, 프린트 업무는 XPS 프린트 경로로 보내집니다.
XPS 프린트 경로에서는, 프린터 장비는 XPS(XML Paper Specification)을 기반으로 이루어집니다. 마이크로소프트 Win32 XPS 앱이 프린트하면, 앱은 XPS 프린트 API에 있는 XPS 함수를 호출합니다.
XPSDrv 프린터 드라이버와 함께 프린트를 하면, 스풀러는 XPS 스풀 파일을 곧바로 장비로 보내서 랜더링하고 출력하도록 합니다. XPS 파일이 GDI 장비에서 출력될때, EMF 파일은 XPS 에서 GDI로 변환하는 모듈을 통해 변환됩니다. 그러면 그때, GDI 프린트 경로로 보내지며 Win32 GDI 앱과 비슷한 방식으로 동작합니다.
WPF(Windows Presentation Foundation) 앱은 WPF 프린트 지원 함수를 호출해서 XPS 문서가 XPS 스풀 파일 포맷을 스풀러가 처리하도록 합니다. Win32 XPS 앱에서 프린팅을 할 때처럼, 스풀러가 XPSDrv 프린터 드라이버로 프린트 할 때, 스풀러는 스풀된 파일을 원본 형식으로 보내서 XPSDrv 프린터 드라이버가 프린터에서 출력하도록 합니다.스풀러가 GDI 기반을 가진 버전 3의 프린터 드라이버로 프린터 할때, 스풀러는 데이터를 XPS 스풀 파일 포맷을 EMF파일에서 GDI로 변환하는 모듈로 보냅니다.
그때 프린터를 하기 위해서 GDI 기반의 프린터로 데이터를 보냅니다. 데이터 경로에 대하여 더 많은 정보를 보기 위해서는 Windows Print Path Overview를 확인하세요.
XPS 에 대한 더 많은 정보를 확인하기 위해서는 XML Paper Specification Overview에 대하여 확인하세요.
스풀러와 드라이버 컴포넌트는 대체가능하며, 따라서 하드웨어 제조사는 쉽게 새 하드웨어에 대한 지원을 추가할 수 있습니다. 스풀러와 드라이버 컴포넌트에 대하여 더 많은 정보를 원한다면 다음 내용들을 참고하세요.
Print Spooler Architecture
Printer Driver Architecture
새로운 프린터를 사용하는 것은 일반적으로 새 데이터 파일을 만들어서 MS 지원 프린터 드라이버를 설치하는 것 만으로도 가능합니다.
MS 프린터 드라이버에 대한 더 많은 정보를 보시려면 Printer Driver Overview를 확인하세요.
마이크로소프트 범용 프린터 드라이버와 마이크로소프트 Postscript 프린터 드라이버의 동작을 커스터마이징 가능합니다. 더 많은 정보를 위해서는, Customizing Microsoft's Printer Drivers를 보세요. 프린터 스풀러도 커스터마이징이 가능합니다. 관련 정보는 Customizing Print Spooler Components를 확인하세요.
[원문]
Introduction to Printing
The Microsoft Windows printing architecture consists of a print spooler and a set of printer drivers. By calling device-independent functions, applications can create print jobs and send them to many devices. This includes laser printers, vector plotters, raster printers, and fax machines.
Printer drivers include a rendering component and a configuration component. The rendering component converts the graphics commands from the application into a data format that the printer uses to render the image on the page. The configuration component contains a user interface component that enables users to control a printer's selectable options and a program interface that communicates the printer's configuration and features to an application.
When a Microsoft Win32 GDI application prints, it calls GDI functions in the Win32 API. These functions pass the information to the GDI graphics engine. The GDI graphics engine either spools the drawing instructions as an enhanced metafile (EMF) file or, together with a printer driver, renders a printable image that can be sent to the spooler. Spooler components interpret EMF files, and they can insert page layout information and job control instructions into the data stream. The spooler then sends the data stream to the serial, parallel, or network port driver associated with the target printer's I/O port. In addition, if printing to an XPS device, the GDI print commands are converted through the GDI to XPS conversion component, and the print job is sent down the XPS print path.
In the XPS print path, printer drivers are based on the XML Paper Specification (XPS). When a Microsoft Win32 XPS application prints, the application calls XPS functions in the XPS Print API. When it prints to queues with XPSDrv printer drivers, the spooler passes the XPS spool file straight to the device for rendering and output. When the XPS file is printed to a GDI device, it is converted to an EMF file through the XPS to GDI Conversion Module. It is then sent through the GDI print path in a manner similar to Win32 GDI applications.
Windows Presentation Foundation (WPF) applications call WPF print support functions to spool XPS documents to the spooler in the XPS spool file format. As when printing from Win32 XPS applications, when the spooler prints to print queues with XPSDrv printer drivers, the spooler passes the spooled file in its original format to the XPSDrv printer driver for rendering and output to the printer. When the spooler prints to printers that have GDI-based, version 3 printer drivers, the spooler sends the data in the XPS spool file format to the GDI Conversion Module for conversion to an EMF file. It then sends the data to the GDI-based printer driver for printing. For more information about these data paths, see Windows Print Path Overview. For more information about XPS, see the XML Paper Specification Overview.
Spooler and driver components are replaceable, so hardware vendors can easily add support for new hardware. For more information about print spooler and driver components, see the following sections:
Support for a new printer usually requires only creating new data files for use with one of the Microsoft-supplied printer drivers. For more information about Microsoft printer drivers, see Printer Driver Overview.
You can customize the behavior of the Microsoft Universal Printer Driver and the Microsoft Postscript Printer Driver. For more information, see Customizing Microsoft's Printer Drivers. You can also customize the print spooler. For more information, see Customizing Print Spooler Components.
Other sections cover the following topics:
'팁 & 기타' 카테고리의 다른 글
쉘 코드와 쉘 스크립트의 차이(Shellcode vs Shellscript) (0) | 2019.06.25 |
---|---|
프린터 스풀러 아키텍쳐(Print Spooler Architecture) (0) | 2019.01.07 |
간편한 한글 기반 일본어 입력기 (6) | 2018.06.05 |
리눅스 부팅과정과 부팅시 마다 스크립트 실행(Startup Script) (0) | 2018.02.21 |
KaTeX를 이용해서 블로그에 수학 수식 입력하기 (0) | 2018.02.20 |