2014-10-09 2 views
3

오케이 그래서 PDF를 생성하는 웹 페이지가 있습니다. 지금까지 PDF를 작성하는 코드는 견고하지만 필자는 작성된 PDF를 표시하는 데 문제가 있습니다.IE는 PDF 모양을 렌더링하지 않을 것입니다.

Chrome에서 디스플레이 코드가 견고 해졌지만 IE가 모두 작동하지 않을 수 있습니다. Javascript로 PDF를 생성하고 IE를 사용하여 표시하는 방법이 필요합니다.

여기서 중요한 문제는 클라이언트 측에서 PDF를 생성한다는 것입니다. 즉, PDF를로드 할 서버 측 URL이 없음을 의미합니다. 이것은 내가 blob이나 dataurls를 사용하도록 요구하며, IE는 그것들 중 하나를 이상한 이유로 렌더링하지 않을 것입니다. 이 글은 의도적으로 설계된 것이지만 찾을 수있는 해결책이 없습니다.

이 프로젝트에서는 PDF가 백그라운드로로드되고 일단 인쇄 대화 상자가 나타나면 단순히 프린트 할 수 있습니다. 파일을 클라이언트 컴퓨터로 전송). 인쇄되는 데이터는 인쇄 된 양식에 맞게 매우 자세하게 배치되어 있습니다. 즉, PDF를 캔버스로 렌더링 할 수없고 URL 및 페이지 번호가있는 페이지에 여분의 여백을 배치하기 때문에 캔버스 요소 만 인쇄 할 수 있습니다.


여기 내 질문은 :

  1. IE에 대한이 문제에 대한 해결의 어떤 종류가 있습니까? 나는 과거에 PdfObject를 사용했지만 IE의 블롭 및 데이터 룰과 동일한 문제가 계속 발생합니다.

  2. 이 웹 사이트의 백엔드는 고전적인 ASP입니다 (닷넷에서는 다시 실행되지만 다음 번에는 사용할 수 없습니다). 이번에는 가장 초기에) - BLOB의 바이너리 데이터를 ASP 페이지에 업로드하고 세션에 저장 한 다음 해당 세션 변수의 내용을 반환하는 페이지로 iframe을 보낼 수 있습니까? 방법이 없습니다

+2

난 항상 클래식 ASP는 다음 클라이언트에 스트리밍 사용하여 "서버 측"에서 PDF 생성을 처리했습니다. IE11에서도 [부분적으로 지원되는] 경우에만 [데이터 URI와 IE] (http://caniuse.com/#feat=datauri)를 사용하는 데 어려움을 겪을 것입니다. – Lankymart

+2

도 동의했지만 지금은 ASP에서이 드로잉 코드를 모두 다시 작성하는 것을 싫어합니다. < –

+2

그래, 나는 너의 고통을 느낀다. – Lankymart

답변

1

당신의 PDF 파일을 생성 할 수 있습니다 ...이 블롭을 회피 것이지만, 나는 그것이 작업의 작은 야심 찬 두려움 당시 서버 또는 관련 플러그인없이 표시 이동합니다.

는 데이터 URI로 표시하려는 경우 :

데이터의 URI는 다음과 같은 요소 및/또는 속성에 대해서만 지원됩니다.

  • 객체 (이미지 만)
  • IMG
  • 입력 타입 = 이미지 등등 배경 backgroundImage의 URL과 같은 동의
  • 링크 -CSS 선언.

http://msdn.microsoft.com/en-us/library/cc848897(v=vs.85).aspx

당신은 프레임의 URL로 사용할 수 없습니다.

당신이 물방울로 표시하려는 경우

같은 이미지, 비디오, 오디오, XMLHttpRequest를, CSS를 backgroundImage의 및 CSS 글꼴 등의 요소에 자원을 사용할 수 있습니다 생성 된 물방울을.

http://msdn.microsoft.com/en-us/library/ie/hh772302(v=vs.85).aspx

여전히를

.


할 수있는 작업은 PDF를 HTML5 또는 캔버스로 변환하는 것입니다. ViewJS과 같이 이미 해당 부분을 처리 할 수있는 라이브러리가 있습니다. 당신이 언급 한 "여분의 여백"에 대해서는 확신하지 못하지만 페이지 URL과 페이지 번호, 여백까지도 인쇄 전에 클라이언트 측에서 변경하거나 해제 할 수 있습니다.

enter image description here

+0

예. 서버에 대한 필요성에 관해 제가 동의합니다. 그러나 인쇄가 진행되는 한, 여분의 '여백'에 대해 잘못 생각한 것 같습니다. 브라우저의 의미가 무엇인지에 관계없이 추가 데이터가 있다는 의미였습니다. 대부분의 사람들은 PDF로이 문제를 해결하지만 그때 우리는 여기서 내 문제로 돌아갑니다. 다음 질문을 참조하십시오. http://stackoverflow.com/questions/255534/remove-the-default-browser-header-and-footer-when-printing-html –

+1

답변으로 표시 하겠지만 궁극적으로 결정했습니다. ASP에 드로잉 코드를 포팅 (ASP가 Javascript를 실행할 수 있기 때문에 나쁘지는 않음) - jsPDF 라이브러리를 사용할 수있는 다른 모든 사람들 : ASP FPDF를 ASP FPDF를 사용하여 ASP 페이지로 쉽게 포팅 할 수있다. 그것의 API는 거의 동일합니다 (명명 규칙은 UpperCase가 아니라 camelCase가 아닙니다). 여기에 [The library] (https://sites.google.com/site/aspfpdf/home)와 [The examples] (http://www.fpdf.org/)가 있습니다. –

관련 문제