AIR의 PDF 내용 추가Adobe AIR 1.0 이상 Adobe® AIR®에서 실행되는 응용 프로그램은 SWF 및 HTML 내용뿐만 아니라 PDF 내용도 렌더링할 수 있습니다. AIR 응용 프로그램은 HTMLLoader 클래스, WebKit 엔진 및 Adobe® Reader® 브라우저 플러그인을 사용하여 PDF 내용을 렌더링합니다. AIR 응용 프로그램에서 PDF 내용은 응용 프로그램의 전체 높이 및 폭에 맞게 확장하거나 인터페이스의 한 부분으로 확장할 수 있습니다. Adobe Reader 브라우저 플러그인은 AIR 응용 프로그램에서 PDF 파일의 표시를 제어합니다. Reader 도구 모음 인터페이스에서 위치, 앵커 및 표시 여부 등에 대한 컨트롤을 수정한 경우 이후 AIR 응용 프로그램 및 브라우저에서 PDF 파일을 볼 때에도 그러한 변경 사항이 지속됩니다. 중요: AIR에서 PDF 내용을 렌더링하려면 Adobe Reader 또는 Adobe® Acrobat® 버전 8.1 이상을 설치해야 합니다.
PDF 기능 검색Adobe Reader 또는 Adobe Acrobat 8.1 이상이 없으면 PDF 내용이 AIR 응용 프로그램에 표시되지 않습니다. 사용자가 PDF 내용을 렌더링할 수 있는지 여부를 검색하려면 먼저 HTMLLoader.pdfCapability 속성을 확인합니다. 이 속성은 HTMLPDFCapability 클래스의 다음 상수 중 하나로 설정됩니다.
Windows의 경우 사용자의 시스템에서 Adobe Acrobat 또는 Adobe Reader 버전 7.x 이상이 실행 중이면 로드 중인 PDF를 지원하는 최신 버전이 설치되어 있어도 이 버전이 사용됩니다. 이 경우 pdfCampability 속성의 값이 HTMLPDFCapability.STATUS_OK이면 AIR 응용 프로그램이 PDF 내용을 로드하려고 할 때 이전 버전의 Acrobat 또는 Reader에 경고가 표시됩니다(AIR 응용 프로그램에서는 예외가 발생하지 않음). 최종 사용자에게 이러한 상황이 발생할 수 있는 경우 응용 프로그램을 실행하는 동안 Acrobat을 닫도록 알려 주는 것이 좋습니다. PDF 내용이 허용 가능한 시간 프레임 내에 로드되지 않는 경우 이러한 지침을 표시할 수도 있습니다. Linux에서 AIR은 사용자가 내보낸 경로(acroread 명령이 포함된 경우)와 /opt/Adobe/Reader 디렉토리에서 Adobe Reader를 찾습니다. 다음 코드에서는 사용자가 AIR 응용 프로그램에서 PDF 내용을 표시할 수 있는지 여부를 검사합니다. 사용자가 PDF를 표시할 수 없으면 코드가 HTMLPDFCapability 오류 객체에 해당하는 오류 코드를 추적합니다. if(HTMLLoader.pdfCapability == HTMLPDFCapability.STATUS_OK) { trace("PDF content can be displayed"); } else { trace("PDF cannot be displayed. Error code:", HTMLLoader.pdfCapability); } PDF 내용 로드HTMLLoader 인스턴스를 만들고, 해당 크기를 설정하고, PDF 경로를 로드하여 AIR 응용 프로그램에 PDF를 추가할 수 있습니다. 다음 예제에서는 외부 사이트에서 PDF를 로드합니다. URLRequest를 사용 가능한 외부 PDF에 대한 경로로 바꾸십시오. var request:URLRequest = new URLRequest("http://www.example.com/test.pdf"); pdf = new HTMLLoader(); pdf.height = 800; pdf.width = 600; pdf.load(request); container.addChild(pdf); app 및 app-storage와 같은 파일 URL 스킴과 AIR 고유의 URL 스킴에서 내용을 로드할 수도 있습니다. 예를 들어 다음 코드에서는 응용 프로그램 디렉토리의 PDF 하위 디렉토리에 있는 test.pdf 파일을 로드합니다. app:/js_api_reference.pdf AIR URL 스킴에 대한 자세한 내용은 URI 스킴을 참조하십시오. PDF 내용 스크립팅브라우저의 웹 페이지에서와 마찬가지로 JavaScript를 사용하여 PDF 내용을 제어할 수 있습니다. Acrobat에 대한 JavaScript 확장을 통해 제공되는 기능의 예는 다음과 같습니다.
Adobe Acrobat용 JavaScript 확장에 대한 자세한 내용은 Adobe Acrobat Developer Connection(http://www.adobe.com/devnet/acrobat/javascript.html)을 참조하십시오. HTML-PDF 통신 기본 사항HTML 페이지의 JavaScript는 PDF 내용을 나타내는 DOM 객체의 postMessage() 메서드를 호출하여 PDF 내용의 JavaScript에 메시지를 보낼 수 있습니다. 예를 들어 다음 포함된 PDF 내용을 살펴봅니다. <object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/> 포함 HTML 내용의 다음 JavaScript 코드는 PDF 파일의 JavaScript에 메시지를 보냅니다. pdfObject = document.getElementById("PDFObj"); pdfObject.postMessage(["testMsg", "hello"]); PDF 파일은 이 메시지를 받기 위한 JavaScript를 포함할 수 있습니다. 문서 수준, 폴더 수준, 페이지 수준, 필드 수준, 일괄 처리 수준 컨텍스트 등 일부 컨텍스트에서 PDF 파일에 JavaScript 코드를 추가할 수 있습니다. 여기서는 PDF 문서가 열릴 때 평가되는 스크립트를 정의하는 문서 수준 컨텍스트에 대해서만 설명합니다. PDF 파일은 hostContainer 객체에 messageHandler 속성을 추가할 수 있습니다. messageHandler 속성은 메시지에 응답하기 위한 핸들러 함수를 정의하는 객체입니다. 예를 들어 다음 코드에서는 PDF 파일이 호스트 컨테이너(PDF 파일을 포함하는 HTML 내용)에서 받은 메시지를 처리하기 위한 함수를 정의합니다. this.hostContainer.messageHandler = {onMessage: myOnMessage}; function myOnMessage(aMessage) { if(aMessage[0] == "testMsg") { app.alert("Test message: " + aMessage[1]); } else { app.alert("Error"); } } HTML 페이지의 JavaScript 코드는 페이지에 포함된 PDF 객체의 postMessage() 메서드를 호출할 수 있습니다. 이 메서드를 호출하면 PDF 파일의 문서 수준 JavaScript에 "Hello from HTML"이라는 메시지가 전송됩니다. <html> <head> <title>PDF Test</title> <script> function init() { pdfObject = document.getElementById("PDFObj"); try { pdfObject.postMessage(["alert", "Hello from HTML"]); } catch (e) { alert( "Error: \n name = " + e.name + "\n message = " + e.message ); } } </script> </head> <body onload='init()'> <object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/> </body> </html> Acrobat 8을 사용하여 PDF 파일에 JavaScript를 추가하는 방법에 대한 자세한 내용 및 고급 예제는 Adobe AIR에서 PDF 내용 크로스 스크립팅을 참조하십시오. ActionScript에서 PDF 내용 스크립팅SWF 내용의 ActionScript 코드는 PDF 내용의 JavaScript와 직접 통신할 수 없습니다. 그러나 ActionScript는 PDF 내용을 로드하는 HTMLLoader 객체에 로드된 HTML 페이지의 JavaScript와 통신할 수 있으며 이 JavaScript 코드는 로드된 PDF 파일의 JavaScript와 통신할 수 있습니다. 자세한 내용은 AIR에서 HTML 및 JavaScript 프로그래밍을 참조하십시오. AIR의 PDF 내용에 대해 알려진 제한 사항Adobe AIR의 PDF 내용에는 다음과 같은 제한 사항이 있습니다.
|
|