YNICTE/ClipReport4/ClipReport4/ClipAndMarkAny.aspx

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;
}
%>