174 lines
5.7 KiB
Plaintext
174 lines
5.7 KiB
Plaintext
<%@ Page Language="C#" AutoEventWireup="true" %>
|
|
<%@ Import Namespace="System.IO"%>
|
|
<%
|
|
|
|
|
|
ReportUtil reportUtil = ReportUtil.getInstance();
|
|
|
|
string passName = Request.Params["ClipID"];
|
|
Response.AddHeader("Cache-Control", "no-store");
|
|
Response.AddHeader("Connection", "close");
|
|
|
|
|
|
/**
|
|
데몬서버 지원 API Code (ClipID) 는 세 자리 수로 되어있습니다.
|
|
**/
|
|
|
|
if (null != passName)
|
|
{
|
|
// R01 : 비동기적으로 리포트를 생성한다.
|
|
if ("R01".Equals(passName))
|
|
{
|
|
reportUtil.responseForCreateReport(Request, Response);
|
|
}
|
|
// R02 : 리포트 뷰를 호출한다.
|
|
// R11 : HTML 인쇄를 위한 export 를 요청합니다.
|
|
else if ("R02".Equals(passName) || "R11".Equals(passName))
|
|
{
|
|
reportUtil.responseForView(Request, Response);
|
|
}
|
|
// R03 : 리포트 생성 상태를 비동기로 확인합니다.
|
|
else if ("R03".Equals(passName))
|
|
{
|
|
Response.AddHeader("Connection", "Keep-Alive");
|
|
Response.AddHeader("Keep-Alive", "timeout=5, max=99");
|
|
reportUtil.responseForStatus(Request, Response);
|
|
}
|
|
// R04 : 리포트 삭제를 요청합니다. (세션 종료 및 자원 반환)
|
|
else if ("R04".Equals(passName))
|
|
{
|
|
reportUtil.deleteReport(Request, Response);
|
|
}
|
|
else if ("R08".Equals(passName))
|
|
{
|
|
|
|
// 다운로드될 파일이 위치할 디렉토리 경로.
|
|
String downloadDirectory = System.Web.HttpContext.Current.Server.MapPath("~/resources/download");
|
|
|
|
ResultMarkany exportInfo = reportUtil.responseForMarkAny(downloadDirectory, Request, Response);
|
|
|
|
// 마크애니를 사용하기 위래서 아랫부분을 수정하면 됩니다.
|
|
if (exportInfo != null)
|
|
{
|
|
|
|
|
|
int errorCode = exportInfo.getErrorCode();
|
|
//errorCode == 0 정상
|
|
//errorCode == 1 리포트 서버 오류.
|
|
//errorCode == 2 oof 형식이 잘못되었거나 crf 를 찾을 수 없음.
|
|
//errorCode == 4 데이터 혹은 pdf 파일을 WAS Client 디렉토리에 저장할 수 없음.
|
|
//errorCode == 5 리포트와 pdf, dat 생성 오류();
|
|
//errorCode == 6 라이선스 오류
|
|
//errorCode == 7 리포트가 존재하지 않음.
|
|
|
|
//바코드로 만든 데이터 파일 위치
|
|
String datFilePath = exportInfo.getDataFilePath();
|
|
//생성된 pdf 파일 위치
|
|
String dstFilePath = exportInfo.getPdfFilePath();
|
|
|
|
//세로 0
|
|
//가로 1
|
|
int paperOrientation = exportInfo.getPaperOrientation();
|
|
|
|
// 페이지 수
|
|
exportInfo.getPageCount();
|
|
|
|
// 바코드 좌표
|
|
exportInfo.getLeft();
|
|
exportInfo.getRight();
|
|
exportInfo.getTop();
|
|
exportInfo.getBottom();
|
|
|
|
//DRM PDF 로 변환(변환된 파일주소를 dstFile 변수에 넣어주시면 됩니다.)
|
|
|
|
if (dstFilePath != null && !"".Equals(dstFilePath))
|
|
{
|
|
|
|
//변환된 pdf 클라이언트로 파일 내리기
|
|
String downloadFile = dstFilePath;
|
|
|
|
// 헤더 추가.
|
|
Response.ContentType = "application/pdf";
|
|
Response.AddHeader("Content-Length", new FileInfo(dstFilePath).Length + "");
|
|
|
|
|
|
|
|
Response.WriteFile(downloadFile);
|
|
Response.Flush();
|
|
|
|
//byte[] buffer = new byte[4096];
|
|
//int bytesRead = -1;
|
|
|
|
|
|
//inStream.Close();
|
|
//outStream.Close();
|
|
|
|
// 파일 삭제.
|
|
File.Delete(downloadFile);
|
|
File.Delete(datFilePath);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
// export 를 요청합니다.
|
|
// R06 ~ R08 : 문서 파일 export
|
|
// R09 : 인쇄를 위한 export
|
|
else if (new Regex("R(0[5-9]|(10))").IsMatch(passName))
|
|
{
|
|
reportUtil.responseForExport(Request, Response);
|
|
}
|
|
// R16 : export 상태를 비동기로 확인합니다. 이 명령이 호출되기 전에 R08 을 통하여 동기적으로 export 된 문서를 내려줘야 합니다.
|
|
else if ("R16".Equals(passName))
|
|
{
|
|
reportUtil.responseForExportStatus(Request, Response);
|
|
}
|
|
// 데몬서버 지원 R160 : export 상태를 비동기로 확인합니다.
|
|
else if ("R160".Equals(passName))
|
|
{
|
|
reportUtil.responseForExportToken(Request, Response);
|
|
}
|
|
// 데몬서버 지원 R161 : export 된 문서 파일을 다운로드 합니다.
|
|
else if ("R161".Equals(passName))
|
|
{
|
|
reportUtil.responseForExportBinaryDocument(Request, Response);
|
|
}
|
|
// R17 : 접근성 뷰어(html4)에 포함된 번들 이미지를 다운로드 받을 수 있습니다.
|
|
else if ("R17".Equals(passName))
|
|
{
|
|
reportUtil.responseForBundle(Request, Response);
|
|
}
|
|
else if ("R50".Equals(passName))
|
|
{
|
|
}
|
|
else if ("R51".Equals(passName))
|
|
{
|
|
}
|
|
else if ("R15".Equals(passName))
|
|
{
|
|
}
|
|
else if ("R15".Equals(passName))
|
|
{
|
|
}
|
|
else if ("S01".Equals(passName))
|
|
{
|
|
reportUtil.responseForCookies(Request, Response);
|
|
|
|
}
|
|
else if ("is_daemon".Equals(passName))
|
|
{
|
|
Response.ContentType = "text/html; charset=UTF-8";
|
|
Response.AddHeader("Cache-Control", "Private, No-store, No-cache, Must-Revalidate");
|
|
Response.Write("({'success':true})");
|
|
}
|
|
//else if ("R150".Equals(passName) && environment.isDebug())
|
|
//{
|
|
//reportUtil.responseForEnvironment(Request, Response);
|
|
//}
|
|
else
|
|
{
|
|
Response.Close();
|
|
}
|
|
return;
|
|
}
|
|
%> |