사용자 지정 응용 프로그램에서 RSClientPrint 컨트롤 사용Using the RSClientPrint Control in Custom Applications

MicrosoftMicrosoft ActiveX 컨트롤인 RSPrintClient는 HTML 뷰어에 표시되는 보고서에 대한 클라이언트 쪽 인쇄 기능을 제공합니다.The MicrosoftMicrosoft ActiveX control, RSPrintClient, provides client-side printing for reports viewed in HTML Viewer. 사용자는 제공된 인쇄 대화 상자를 사용하여 인쇄 작업 시작, 보고서 미리 보기, 인쇄할 페이지 지정, 여백 조정 등의 작업을 수행할 수 있습니다.It provides a Print dialog box so that a user can initiate a print job, preview a report, specify pages to print, and change the margins. 클라이언트 쪽 인쇄 작업 과정에서 보고서 서버는 이미지(EMF) 렌더링 확장 프로그램으로 보고서를 렌더링하고 운영 체제의 인쇄 기능으로 인쇄 작업을 만들어 프린터에 보냅니다.During a client-side print operation, the report server renders the report in the Image (EMF) rendering extension and uses the print capabilities of the operating system to create the print job and send it to a printer.

클라이언트 쪽 인쇄 기능은 사용자 컴퓨터의 브라우저 인쇄 설정을 무시하고 대신 인쇄 출력을 만드는 데 보고서의 페이지 크기, 여백, 머리글 및 바닥글 텍스트를 사용하여 HTML 보고서의 인쇄 품질을 제어하고 향상시킬 수 있습니다.Client-side printing provides a way to control and improve the quality of a printout for an HTML report by side-stepping browser print settings on the user's computer, and instead using the page dimensions, margins, header, and footer text of the report to create the print output. 인쇄 컨트롤은 보고서의 속성 값을 읽어 페이지 크기와 여백 설정을 지정합니다.The print control reads property values of the report to set page size and margins.

타사 도구 모음이나 뷰어에서 클라이언트 쪽 인쇄 기능을 설정하려는 개발자는 RSClientPrint COM 개체를 통해 ActiveX 컨트롤에 액세스할 수 있습니다.Developers who want to enable the client-side printing feature in third-party toolbars or viewers can access the ActiveX control through the RSClientPrint COM object. 컨트롤은 무료로 배포됩니다.The control can be distributed freely. 다음 목록에서는 컨트롤 사용에 대한 권장 사항을 나열합니다.The following list provides recommendations for using the control:

  • 컨트롤을 사용하여 웹 기반 보고서의 인쇄 품질을 향상시킬 수 있습니다.Use the control to improve printing for Web-based reports. MicrosoftMicrosoft .NET Framework.NET Framework 호환 프로그래밍 언어나 스크립트에서 개체를 지정할 수 있습니다.You can specify the object in any of the MicrosoftMicrosoft .NET Framework.NET Framework-compatible programming languages or in script. MicrosoftMicrosoft Windows Forms 응용 프로그램에서는 컨트롤을 사용할 수 없습니다.The control is not intended for MicrosoftMicrosoft Windows Forms applications.

  • Reporting ServicesReporting Services 프로그램 파일에서 .cab 파일을 복사하여 사용자 지정 응용 프로그램 코드베이스에 추가합니다.Copy the .cab file from the Reporting ServicesReporting Services program files and add it to your custom application code base.

  • <OBJECT> 태그를 사용하여 컨트롤을 지정합니다.Use an <OBJECT> tag to specify the control.

  • OBJECT CODEBASE 특성에서 .cab 파일의 상대 URL이나 정규화된 URL을 지정합니다.Specify a relative or fully qualified URL to the .cab file in the OBJECT CODEBASE attribute.

  • .cab 파일에 대한 사용자의 응용 프로그램 버전 정보를 지정하여 응용 프로그램에 사용되는 버전을 추적합니다.Specify your own application version information for the .cab file to track which version is used in your application.

  • 이미지(EMF) 렌더링에 대한 온라인 설명서 항목을 검토하여 인쇄 미리 보기와 출력을 위해 페이지가 렌더링되는 방법을 이해합니다.Review the Books Online topics about Image (EMF) rendering to understand how pages are rendered for print preview and output.

RSPrintClient 개요RSPrintClient Overview

이 컨트롤은 특정 페이지와 범위, 페이지 여백 및 방향을 지정하는 페이지 선택 기능, 인쇄 미리 보기 기능을 비롯하여 다른 인쇄 대화 상자에 공통적인 기능을 지원하는 사용자 지정 인쇄 대화 상자를 표시합니다.The control displays a custom print dialog box that supports features common to other print dialog boxes, including print preview, page selections for specifying specific pages and ranges, page margins, and orientation. 컨트롤은 CAB 파일로 패키지됩니다.The control is packaged as a CAB file. 인쇄 대화 상자의 텍스트는 SQL ServerSQL Server에서 지원하는 모든 언어로 지역화됩니다.The text in the Print dialog box is localized into all of the languages supported in SQL ServerSQL Server. RSPrintClient ActiveX 컨트롤은 이미지 렌더링 확장 프로그램(EMF)을 사용하여 보고서를 인쇄합니다.RSPrintClient ActiveX control uses the Image rendering extension (EMF) to print the report. StartPage, EndPage, MarginBottom, MarginLeft, MarginTop, MarginRight, PageHeight 및 PageWidth와 같은 EMF 장치 정보를 사용합니다.The following EMF device information is used: StartPage, EndPage, MarginBottom, MarginLeft, MarginTop, MarginRight, PageHeight, and PageWidth. 이미지 렌더링에 대한 다른 장치 정보 설정은 지원되지 않습니다.Other device information settings for image rendering are not supported.

언어 지원Language Support

인쇄 컨트롤은 여러 언어로 사용자 인터페이스 텍스트를 제공하며 여러 단위의 입력 값을 허용합니다.The print control provides user interface text in different languages, and accepts input values calibrated to different measurement systems. 사용되는 언어와 단위는 CultureUICulture 속성에 의해 결정됩니다.The language and measurement system used are determined by the Culture and UICulture properties. 두 속성 모두 LCID 값을 사용합니다.Both properties accept LCID values. 지원되는 언어의 변형 언어에 대한 LCID를 지정하는 경우 이에 가장 근접한 언어가 사용됩니다.If you specify an LCID for a language that is a variation on a supported language, you will get the language that provides the closest match. 지원되지 않는 LCID를 지정하는 경우 이와 근접한 LCID가 없으면 영어(미국)가 사용됩니다.If you specify an LCID that is not supported and for which no other LCID is a close match, you will get English (United States).

코드에서 RSClientPrint 사용Using RSClientPrint in Code

RSClientPrint 개체는 ActiveX 컨트롤과 해당 메서드 및 속성에 프로그래밍 방식으로 액세스하는 데 사용됩니다.The RSClientPrint object is used to gain access programmatically to the ActiveX control and its methods and properties. 이 컨트롤은 인쇄 미리 보기를 위한 모달 대화 상자를 제공합니다.The control provides a modal dialog for print preview.

기본값 지정Specifying Default Values

보고서 여백 값과 페이지 값으로 인쇄 대화 상자를 초기화할 수 있습니다.You can initialize the Print dialog box with margin and page values of the report. 기본적으로 인쇄 대화 상자는 보고서 정의 값으로 초기화됩니다.By default, the Print dialog box is initialized with values from the report definition. 기본값을 사용하거나 개체의 속성을 설정하여 다른 값을 지정할 수 있습니다.You can use the defaults, or specify different values by setting properties on the object.

모든 치수는 밀리미터 단위로 설정됩니다.All dimensions are set in millimeters. CultureUICulture가 미터법을 사용하지 않는 로캘로 설정되는 경우 런타임 시 단위가 변환됩니다.Measurement conversion occurs at run time if the Culture and UICulture are set to locales that do not use metric measurements.

페이지 크기와 여백에 사용되는 값을 확인하려면 GetProperties 메서드를 사용하여 기본값을 검색합니다.To understand which values are used for page dimensions and margins, you can use the GetProperties method to retrieve the default values:

  • PageHeightPageWidth는 기본 페이지 높이와 너비를 지정합니다.PageHeight and PageWidth specify the default page height and width. 인쇄 컨트롤이 시작되면 이러한 속성 값을 기준으로 현재 선택한 프린터에서 사용할 수 있는 가장 근접한 용지 크기가 선택됩니다.When the print control is launched, these property values are used to select the closest paper size available for the currently selected printer. PageWidthPageHeight보다 크면 용지 방향이 가로로 설정됩니다.If PageWidth is great than PageHeight, the orientation is set to Landscape. 그렇지 않으면 용지 방향이 세로로 설정됩니다.Otherwise, it is set to Portrait.

  • LeftMargin, RightMargin, TopMarginBottomMargin은 기본적으로 모두 12.2밀리미터로 설정됩니다.LeftMargin, RightMargin, TopMargin, and BottomMargin are all set to 12.2 millimeters by default.

    속성은 보고서 서버의 Item 속성 컬렉션에 저장됩니다.These properties are stored in the Item properties collection on the report server. 보고서 정의가 업데이트될 때마다 속성 값을 덮어씁니다.The values are overwritten each time a report definition is updated.

RSClientPrint 속성RSClientPrint Properties

속성Property 형식Type RWRW 기본값Default DescriptionDescription
MarginLeftMarginLeft DoubleDouble RWRW 보고서 설정report setting 왼쪽 여백을 가져오거나 설정합니다.Gets or sets the left margin. 개발자가 설정하지 않았거나 보고서에 지정되지 않은 경우 기본값은 12.2밀리미터입니다.The default value if not set by the developer or specified in the report is 12.2 millimeters.
MarginRightMarginRight DoubleDouble RWRW 보고서 설정report setting 오른쪽 여백을 가져오거나 설정합니다.Gets or sets the right margin. 개발자가 설정하지 않았거나 보고서에 지정되지 않은 경우 기본값은 12.2밀리미터입니다.The default value if not set by the developer or specified in the report is 12.2 millimeters.
MarginTopMarginTop DoubleDouble RWRW 보고서 설정report setting 위쪽 여백을 가져오거나 설정합니다.Gets or sets the top margin. 개발자가 설정하지 않았거나 보고서에 지정되지 않은 경우 기본값은 12.2밀리미터입니다.The default value if not set by the developer or specified in the report is 12.2 millimeters.
MarginBottomMarginBottom DoubleDouble RWRW 보고서 설정report setting 아래쪽 여백을 가져오거나 설정합니다.Gets or sets the bottom margin. 개발자가 설정하지 않았거나 보고서에 지정되지 않은 경우 기본값은 12.2밀리미터입니다.The default value if not set by the developer or specified in the report is 12.2 millimeters.
PageWidthPageWidth DoubleDouble RWRW 보고서 설정report setting 페이지 너비를 가져오거나 설정합니다.Gets or sets the page width. 개발자가 설정하지 않았거나 보고서 정의에 지정되지 않은 경우 기본값은 215.9밀리미터입니다.The default value if not set by the developer or the report definition is 215.9 millimeters.
PageHeightPageHeight DoubleDouble RWRW 보고서 설정report setting 페이지 높이를 가져오거나 설정합니다.Gets or sets the page height. 개발자가 설정하지 않았거나 보고서 정의에 지정되지 않은 경우 기본값은 279.4밀리미터입니다.The default value if not set by the developer or the report definition is 279.4 millimeters.
CultureCulture Int32Int32 RWRW 브라우저 로캘Browser locale LCID(로캘 ID)를 지정합니다.Specifies the locale identifier (LCID). 이 값에 따라 사용자 입력 단위가 결정됩니다.This value determines the unit of measurement for user input. 예를 들어 사용자가 3을 입력할 경우 언어가 프랑스어이면 값이 밀리미터 단위로 측정되고 영어(미국)이면 인치 단위로 측정됩니다.For example, if a user types 3, the value will be measured in millimeters if the language is French or inches if the language is English (United States). 유효한 값은 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082와 같습니다.Valid values include: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082.
UICultureUICulture 문자열String RWRW 클라이언트 cultureClient culture 대화 상자의 문자열 지역화를 지정합니다.Specifies string localization of the dialog box. 인쇄 대화 상자의 텍스트는 독일어, 스페인어, 영어, 이탈리아어, 일본어, 중국어 간체, 중국어 번체, 프랑스어 및 한국어와 같은 언어로 지역화됩니다.Text in the Print dialog is localized into these languages: Chinese-Simplified, Chinese Traditional, English, French, German, Italian, Japanese, Korean, and Spanish. 유효한 값은 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082와 같습니다.Valid values include: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082.
AuthenticateAuthenticate BooleanBoolean RWRW FalseFalse 사용 가능한 세션이 없는 인쇄에 대한 연결을 시작하기 위해 컨트롤이 보고서 서버에 대해 GET 명령을 실행할지 여부를 지정합니다.Specifies whether the control issues a GET command against the report server to initiate a connection for out-of-session printing.

인증 속성 설정 시기When to Set the Authenticate Property

브라우저 세션 내에서 인쇄할 때 Authenticate 속성을 설정할 필요가 없습니다.When you print from within a browser session, you do not need to set the Authenticate property. 활성 세션의 컨텍스트 내에서 인쇄 제어에서 보고서 서버까지의 모든 요청은 브라우저를 통해 처리됩니다.Within the context of an active session, all requests from the print control to the report server are handled through the browser. 브라우저는 보고서 서버와 통신하는 데 필요한 세션 변수를 설정합니다.The browser sets the session variables necessary for communication to the report server.

보고서를 먼저 열어 보지 않고 직접 프린터로 보내는 것처럼 사용 가능하지 않은 세션을 인쇄하는 경우 인쇄 컨트롤은 HTTP GET 요청을 실행하여 보고서 서버에 세션을 설정해야 합니다.If you print out-of-session (for example, sending a report directly to a printer without first opening it), the print control must issue an HTTP GET request to set up the session with the report server. GET 요청을 발급하려면 AuthenticateTrue로 설정합니다.To issue the GET request, you set Authenticate to True.

Windows 통합 보안 또는 기본 인증을 사용하는 경우에만 GET 요청을 실행합니다.You only need to issue the GET request if you are using Windows integrated security or Basic authentication. 폼 인증을 사용하는 경우 Authenticate 속성이 무시됩니다.If you are using forms authentication, the Authenticate property is ignored. 응용 프로그램 코드에서 세션을 설정하고 제공한 사용자 지정 보안 확장 프로그램을 사용하여 사용자를 인증해야 합니다.Your application code must set the session and authenticate the user using the custom security extension that you provide. 폼 인증을 사용하는 경우 인증 쿠키에 대한 만료 값을 적절한 간격으로 세션을 유지하는 값으로 설정합니다.If you are using forms authentication, be sure to set the expiration value on the authentication cookie to a value that preserves sessions for a reasonable interval. 값이 너무 낮으면 쿠키가 만료될 때마다 로그온 자격 증명을 입력하라는 메시지가 표시됩니다.If the value is too low, users will be prompted to provide logon credentials each time the cookie expires.

CLSIDCLSIDs

온-프레미스 보고서를 실행 중인 경우 다음과 같은 CLSID 값을 사용합니다.When you are running the report on-premises, you use the following CLSID values.

  • 41861299-EAB2-4DCC-986C-802AE12AC49941861299-EAB2-4DCC-986C-802AE12AC499

  • 5554DCB0-700B-498D-9B58-4E40E58144055554DCB0-700B-498D-9B58-4E40E5814405

  • 60677965-AB8B-464f-9B04-4BA871A2F17F60677965-AB8B-464f-9B04-4BA871A2F17F

    Microsoft Azure SQL Reporting에서 보고서를 실행 중인 경우 다음과 같은 CLSID 값을 사용합니다.When you are running the report in Windows Azure SQL Reporting, you use the following CLSID values.

  • 3DD32426-554D-48C0-A200-65D3BF880E383DD32426-554D-48C0-A200-65D3BF880E38

  • 05662494-ACF9-446A-BE4C-7D3F7EA7F62F05662494-ACF9-446A-BE4C-7D3F7EA7F62F

Print 메서드에 대한 RSPrintClient 지원RSPrintClient Support for the Print Method

RSClientPrint 개체는 인쇄 대화 상자를 시작하는 데 사용되는 Print 메서드를 지원합니다.The RSClientPrint object supports the Print method used to launch the Print dialog box. 다음은 Print 메서드에 사용되는 인수입니다.The Print method has the following arguments.

인수Argument 입력/출력I/O 형식Type DescriptionDescription
ServerPathServerPath 입력In 문자열String 보고서 서버 가상 디렉터리를 지정합니다(예: https://adventure-works/reportserver).Specifies the report server virtual directory (for example, https://adventure-works/reportserver).
ReportPathParametersReportPathParameters 입력In 문자열String 보고서 서버 폴더 네임스페이스에 있는 보고서의 전체 이름을 매개 변수를 포함하여 지정합니다.Specifies the full name to the report in the report server folder namespace, including parameters. 보고서는 URL 액세스를 통해 검색됩니다.Reports are retrieved through URL access. 예제: "/AdventureWorks Sample Reports/Employee Sales Summary&EmpID=1234"For example: "/AdventureWorks Sample Reports/Employee Sales Summary&EmpID=1234"
ReportNameReportName 입력In 문자열String 보고서의 짧은 이름입니다. 위의 예에서 짧은 이름은 Employee Sales Summary입니다.The short name of the report (in the example above, the short name is Employee Sales Summary). 짧은 이름은 인쇄 대화 상자와 인쇄 큐에 나타납니다.It appears in the Print dialog box and in the print queue.

예제Example

다음 HTML 예에서는 JavaScript에서 .cab 파일, Print 메서드 및 속성을 지정하는 방법을 보여 줍니다.The following HTML example shows how to specify the .cab file, Print method, and properties in JavaScript:

<BODY onload="Print()">

<OBJECT ID="RSClientPrint" CLASSID="CLSID: 5554DCB0-700B-498D-9B58-4E40E5814405D3" CODEBASE="<URL to the .CAB file>#Version=<your application version information>" VIEWASTEXT></OBJECT>

<script language="javascript">

function Print()

{

RSClientPrint.MarginLeft = 12.7;

RSClientPrint.MarginTop = 12.7;

RSClientPrint.MarginRight = 12.7;

RSClientPrint.MarginBottom = 12.7;

RSClientPrint.Culture = 1033;

RSClientPrint.UICulture = 9;

RSClientPrint.Print('http://localhost/rtm', '%2fEmployee_Sales_Summary&ReportMonth=6&ReportYear=2004&EmpID=20', 'Employee_Sales_Summary')

}

</script>

</BODY>

관련 항목:See Also

인쇄 컨트롤을 사용하여 브라우저에서 보고서 인쇄(보고서 작성기 및 SSRS) Print Reports from a Browser with the Print Control (Report Builder and SSRS)
보고서 인쇄(보고서 작성기 및 SSRS) Print Reports (Report Builder and SSRS)
이미지 장치 정보 설정Image Device Information Settings