Others

파일이 스크립팅을 지원하지 않는 이미지 기반 또는 플랫 형식으로 변환되면 PDF 문서 수준 JavaScript 스크립트에 어떤 일이 발생합니까?

What Happens to PDF Document-Level JavaScript Scripts When the File Is Converted to an Image-Based or Flat Format That Does Not Support Scripting

PDF JavaScript의 작동 방식 및 제어 대상

PDF 파일에는 문서를 보는 동안 특정 이벤트가 발생할 때 실행되는 JavaScript 코드가 포함될 수 있습니다. 페이지 열기, 페이지 닫기, 양식 필드 값 변경, 버튼 클릭, 문서 저장 등은 모두 포함된 스크립트를 트리거할 수 있는 이벤트입니다. 이 스크립팅 기능을 사용하면 양식 필드 유효성 검사, 자동 날짜 스탬핑, 입력 값의 합계 계산, 문서 레이어의 동적 숨기기 및 표시, 웹 서비스 호출을 통한 외부 데이터 소스와의 통합 등 정적 텍스트 및 이미지 이상의 대화형 기능을 사용할 수 있습니다.

스크립트 감지에는 밀리초가 걸리며 몇 시간의 재작업을 방지합니다.

무엇을 잃는지 알면 올바른 전환 선택을 알 수 있습니다.

PDF 리더의 JavaScript 엔진은 전체 브라우저 JavaScript 환경이 아닙니다. ECMAScript 사양의 하위 집합과 PDF 문서 조작을 위한 Adobe 관련 확장을 구현합니다. 사용 가능한 API를 통해 스크립트는 양식 필드 값을 읽고 수정하고, 페이지 가시성을 변경하고, 멀티미디어 요소를 제어하고, 양식 데이터를 URL에 제출할 수 있습니다. 그러나 엔진에는 DOM 조작 기능, 전체 네트워킹 스택 및 브라우저 JavaScript가 제공하는 렌더링 제어 기능이 부족합니다. 스크립트가 포함된 PDF 형식은 JavaScript가 포함된 웹 페이지보다 훨씬 더 제한된 환경입니다.

이러한 제약에도 불구하고 PDF JavaScript는 진정한 대화형 문서를 생성할 수 있을 만큼 강력합니다. 대출 신청서 PDF는 신청자가 대출 금액과 이자율을 입력하면 월별 지불액을 실시간으로 계산할 수 있습니다. 교육 인증서 PDF는 인증서를 표시하기 전에 수신자의 이름이 서버 측 데이터베이스와 일치하는지 확인할 수 있습니다. 주문 양식은 완료된 데이터를 이행 시스템의 API에 직접 제출할 수 있습니다. 이러한 대화형 기능은 문서 파일의 스크립트 실행에 대한 주기적인 보안 문제에도 불구하고 JavaScript가 PDF 사양의 일부로 남아 있는 이유입니다.

WukongPDF

PDF를 이미지로 사용해 보세요

설치가 필요하지 않습니다. 브라우저에서 직접 작동합니다.

시작하기 →

PDF가 평면 이미지 형식으로 변환되면 JavaScript에 어떤 일이 발생합니까?

PDF를 PNG, JPEG, TIFF 또는 모든 페이지를 래스터화하여 생성된 이미지 전용 PDF 등 이미지 형식으로 변환하면 문서의 성격이 근본적으로 대화형에서 정적으로 변경됩니다. 변환 프로세스는 각 페이지를 픽셀 격자로 렌더링하여 변환 순간의 페이지 모양을 정확하게 캡처합니다. JavaScript 스크립트, 양식 필드, 버튼, 하이퍼링크, 포함된 비디오 및 3D 모델을 포함한 모든 대화형 요소는 렌더링된 이미지로 병합되어 대화형 개체로 더 이상 존재하지 않습니다.

JavaScript 코드 자체는 변환되거나 번역되지 않습니다. 래스터화 프로세스 중에 다른 모든 비시각적 문서 요소와 함께 삭제됩니다. 결과 이미지 파일에는 실행 가능한 코드, 이벤트 핸들러 및 모든 종류의 대화형 논리가 포함되어 있지 않습니다. 양식 계산, 유효성 검사 규칙, 동적 콘텐츠 업데이트 등 JavaScript가 제공하는 모든 동작은 이미지 출력에 전혀 포함되지 않습니다. 출력에는 변환 당시 문서의 상태에 대한 스냅샷이 표시되며, 변경할 수 없는 시간이 고정되어 있습니다.

PDF에서 Image로 변환하는 경우 일반적으로 이러한 JavaScript 제거는 의도적인 것입니다. 이미지 형식 문서는 보관 스냅샷, 소셜 미디어 공유, 프레젠테이션에 포함 등 상호작용이 필요하지 않거나 바람직하지 않은 경우에 사용됩니다. JavaScript가 없다는 것은 알 수 없는 소스에서 스크립트를 실행하는 데 따른 보안 문제를 제거하고 문서가 모든 장치 및 보기 응용 프로그램에서 동일하게 렌더링되도록 보장하기 때문에 이러한 맥락에서 특징입니다.

JavaScript 기능 손실로 인해 문제가 발생하는 시나리오

모든 PDF-이미지 변환이 JavaScript 기능 손실을 인식하면서 수행되는 것은 아닙니다. 저장 최적화 또는 형식 표준화를 위해 일괄 PDF를 이미지로 처리하는 자동화된 변환 파이프라인은 운영자에게 알리지 않고 스크립트와 대화형 요소를 자동으로 삭제할 수 있습니다. 보관을 위해 100개의 PDF 양식을 이미지 기반 PDF로 일괄 변환하면 단일 경고도 생성하지 않고 모든 파일의 양식 기능이 파괴될 수 있습니다.

가장 위험한 시나리오는 JavaScript가 정적 렌더링 보기에 표시되지 않는 필수 정보를 제공하는 문서와 관련됩니다. 사용자 입력에 따라 콘텐츠를 조건부로 표시하는 스크립트가 포함된 PDF는 변환 전에 올바른 표시 상태를 생성하기 위해 스크립트가 실행되지 않은 경우 변환된 이미지에 잘못된 콘텐츠 상태를 표시할 수 있습니다. JavaScript를 사용하여 사용자의 위치 선택에 따라 다양한 요율표를 표시하는 재무 공개 PDF는 변환된 이미지에 기본 요율표만 표시하거나 더 나쁘게는 요율표가 전혀 표시되지 않습니다.

디지털 권한 관리를 위해 JavaScript를 사용하는 PDF 문서는 특히 형식 변환의 영향을 받습니다. JavaScript 적용 권한을 통해 인쇄, 복사 또는 편집을 제한하는 PDF는 이미지로 변환되면 이러한 보호 기능이 완전히 상실됩니다. 제한을 적용한 JavaScript가 더 이상 존재하지 않으므로 이미지 버전은 제한 없이 인쇄, 복사 및 편집할 수 있습니다. JavaScript 기반 DRM을 사용하는 조직은 형식 변환으로 인해 문서 보호 기능이 효과적으로 제거된다는 점을 인식해야 합니다.

형식 변환이 필요한 경우 대화형 기능 보존

PDF를 다른 형식으로 변환해야 하지만 대화형 기능을 유지해야 하는 경우 다른 변환 접근 방식이 필요합니다. 목표는 각 페이지의 시각적 모양을 렌더링하는 것에서 대화형 동작을 동등한 기능을 지원하는 형식으로 마이그레이션하는 것입니다.

내장된 JavaScript를 사용하여 HTML로 변환하는 것은 대화형 PDF를 위한 가장 직접적인 마이그레이션 경로입니다. PDF의 양식 필드는 유효성 검사 및 계산 스크립트가 브라우저 JavaScript로 변환된 HTML 양식 요소가 됩니다. 문서 레이아웃은 HTML과 CSS가 됩니다. 소스 형식과 대상 형식 모두 JavaScript 실행을 지원하므로 대화형 동작은 형식 변경 후에도 유지됩니다. 이 변환은 복잡하고 완벽할 경우가 거의 없지만 래스터 기반 변환이 파괴하는 기능을 유지합니다.

특정 대화형 요소만 하이브리드 접근 방식에서 살아남아야 하는 문서는 나머지 요소를 평면화하면서 해당 요소를 유지합니다. 양식 필드, 해당 스크립트 및 시각적 컨텍스트를 원본 PDF 양식 제출을 처리하는 동일한 백엔드 시스템에 제공되는 웹 양식으로 추출합니다. PDF 자체는 이미지로 보관되며 데이터 수집 작업 흐름은 웹 양식을 통해 계속됩니다. 이 접근 방식은 보관된 문서에 포함된 상호 작용의 손실을 수용하는 동시에 지원되는 상호 작용이 중단 없이 계속되도록 보장합니다.

PDF를 변환하기 전에 PDF에 JavaScript가 포함되어 있는지 확인하는 방법

우발적인 JavaScript 손실 방지는 변환을 시작하기 전에 문서에 스크립트가 포함되어 있는지 확인하는 것부터 시작됩니다. 대부분의 PDF 뷰어는 포함된 스크립트를 나열하는 방법을 제공합니다. Adobe Acrobat에서 도구 메뉴의 JavaScript 패널에는 트리거 이벤트별로 구성된 문서의 모든 스크립트가 표시됩니다. 타사 PDF 분석 도구는 내장된 JavaScript를 열거하고 어떤 문서 이벤트에 스크립트가 첨부되어 있는지 보고할 수도 있습니다.

일반적인 JavaScript 기반 기능을 빠르게 수동으로 확인하는 것도 도움이 됩니다. PDF에 값을 자동 계산하는 양식 필드, 페이지의 다른 부분의 내용을 변경하는 드롭다운 목록 또는 단순한 탐색 이상의 작업을 수행하는 버튼이 있는 경우 JavaScript가 포함되어 있는 것이 거의 확실합니다. 이러한 기능이 포함된 문서는 일괄 변환 작업 전에 주의 깊게 처리할 수 있도록 플래그를 지정해야 합니다.

자동화된 파이프라인을 통해 대량의 PDF를 처리하는 조직의 경우 변환 단계 전에 JavaScript 감지 단계를 추가하면 자동 기능 손실을 방지할 수 있습니다. 프리플라이트 스크립트는 수신되는 각 PDF에서 포함된 JavaScript 개체를 검색하고 스크립트가 포함된 문서를 자동 래스터화 파이프라인 대신 수동 검토 대기열로 라우팅할 수 있습니다. 이 탐지 단계는 처리 시간에 있어 본질적으로 비용이 들지 않으며 대화형 기능의 되돌릴 수 없는 손실을 방지합니다.

WukongPDF의 변환 도구에는 형식 변환이 시작되기 전에 포함된 JavaScript를 식별하는 실행 전 검사가 포함되어 있어 손실될 대화형 콘텐츠에 대해 경고하므로 래스터화를 진행할 것인지 또는 대체 변환 경로를 선택할 것인지에 대한 정보에 입각한 결정을 내릴 수 있습니다.

형식 변환 중 JavaScript 제거가 보안에 미치는 영향은 양방향에서 고려해 볼 가치가 있습니다. JavaScript가 포함된 PDF를 정적 이미지로 변환하면 합법적인 대화형 기능과 함께 악성 스크립트 위험이 제거됩니다. 보안에 민감한 조직에서는 문서가 내부 네트워크에 들어가기 전에 특히 JavaScript 및 기타 활성 콘텐츠를 제거하기 위해 외부 소스에서 들어오는 PDF를 의도적으로 래스터화하는 경우가 있습니다. 보안 관점에서 JavaScript를 제거하는 형식 변환은 버그가 아니라 컨트롤입니다. 핵심은 상호작용이 중요한 문서가 다른 처리 경로로 라우팅될 수 있도록 이러한 상황이 언제 발생하는지 인식하는 것입니다.

대화형 PDF의 장기 보관에 가장 좋은 방법은 원본 대화형 버전과 병합된 보관 버전을 모두 저장하는 것입니다. 원본은 이를 필요로 하는 미래 사용자를 위해 완전한 대화형 기능을 유지합니다. 보관 버전은 플랫폼이 PDF JavaScript를 지원하는지 여부에 관계없이 향후 모든 보기 플랫폼에서 동일하게 렌더링되는 형식이 안정적인 참조 사본을 제공합니다. 이중 형식 보관은 대화형 PDF 콘텐츠를 위한 런타임 환경이 존재하지 않는 미래에 보존과 액세스를 모두 제공합니다.

다양한 수신 PDF 형식을 처리하는 자동화된 문서 처리 파이프라인을 구축하는 조직의 경우 형식 변환 전에 JavaScript 감지 및 라우팅 단계를 통합하면 대화형 문서가 검사 없이 래스터화될 때 발생하는 자동 데이터 손실을 방지할 수 있습니다. 탐지 단계에는 밀리초의 처리 시간이 소요됩니다. 손실된 대화형 기능을 수동으로 재구성하면 몇 시간 또는 며칠의 비용이 발생하지 않습니다.

스크립트 가능한 PDF를 정적 이미지 형식으로 변환하는 것은 일괄 변환 파이프라인의 의도하지 않은 부작용이 아니라 의도적으로 수행해야 하는 되돌릴 수 없는 작업입니다. PDF의 JavaScript가 문서 사용자가 의존하는 기능을 제공하는 경우 사전 검사 없이 형식을 변환하는 것은 기능적으로 데이터 손실과 동일하며 문서 처리 작업 과정에서 되돌릴 수 없는 다른 데이터 변환과 마찬가지로 심각하게 처리되어야 합니다.

WukongPDF

PDF를 이미지로 사용해 보세요

설치가 필요하지 않습니다. 브라우저에서 직접 작동합니다.

시작하기 →