PDF 파일 형식 - PDF 파일이란 무엇입니까?
PDF(Portable Document Format)는 1990년대에 Adobe에서 만든 문서 유형입니다. 이 파일 형식의 목적은 응용 프로그램 소프트웨어, 하드웨어 및 운영 체제와 독립적인 형식으로 문서 및 기타 참조 자료를 표시하기 위한 표준을 도입하는 것입니다. PDF 파일 형식에는 원본 문서의 일부가 될 수 있는 텍스트, 이미지, 하이퍼링크, 양식 필드, 리치 미디어, 디지털 서명, 첨부 파일, 메타데이터, 지리 공간 기능 및 3D 개체와 같은 정보를 포함할 수 있는 모든 기능이 있습니다.
대부분의 경우 새 PDF를 처음부터 만드는 대신 기존 문서를 PDF로 변환합니다. 하지만 그렇다고 해서 PDF 파일을 생성하거나 조작할 수 있는 소프트웨어가 없는 것은 아닙니다.
(PDF 파일 형식에 대해 공유해야 할 사항이 있습니까? PDF 파일 형식 뉴스 섹션에 결과를 게시할 수 있습니다.)
PDF 파일 형식 - 간략한 역사
타임라인 측면에서 PDF 파일 구성에 대한 타임라인을 간략히 살펴보면 다음과 같습니다.
1993 - Adobe Systems에서 PDF 사양을 무료로 제공했습니다.
2008 - PDF는 2008년 7월 1일에 공개 표준으로 출시되었으며 국제 표준화 기구에서 ISO 32000-1:2008로 출판되었습니다.
2008년 - Adobe는 PDF 호환 구현을 만들고 사용하고 판매하고 배포하는 데 필요한 Adobe 소유의 모든 특허에 대한 ISO 32000-1 형식 로열티 프리 권리에 대한 공개 특허 라이선스를 발표했습니다.
PDF 1.0으로 지정된 PDF의 첫 번째 버전은 나중에 PDF 1.7까지 수정되었습니다. ISO 32000-1이 된 PDF 1.7에는 Adobe XFA(XML Forms Architecture) 및 Acrobat용 JavaScript 확장과 같은 일부 비표준 독점 기술이 포함되어 있습니다. 2017년 7월 28일에 ISO 32000-2:2017로 알려진 PDF 2.0이 게시되었으며 비표준 기술이 포함되지 않았습니다.
PDF 파일 형식 사양
PDF 파일은 PDF 사양에 정의된 구문 규칙에 따라 토큰으로 그룹화할 수 있는 바이트 집합입니다. 한 번 이상의 토큰이 결합되어 PDF 문서가 구성되는 기본 데이터 값인 상위 수준 구문 엔티티, 주로 객체를 형성합니다.
PDF 파일의 파일 구조
PDF 파일 내용은 파일 내에서 다음과 같은 순서로 배열됩니다.
|헤더 |바디 |상호 참조 테이블 |예고편
PDF 파일 헤더
PDF 버전에 관계없이 PDF 파일은 PDF에 대한 고유 식별자와 %PDF-1.x와 같은 형식 버전이 포함된 헤더로 시작하며 여기서 x는 1-7입니다.
파일 본문
PDF 파일의 본문은 문서의 내용을 나타내는 일련의 간접 개체로 구성됩니다. 위에서 설명한 대로 개체는 글꼴, 페이지 및 샘플 이미지와 같은 문서의 구성 요소를 나타냅니다. PDF 1.5부터 본문에는 일련의 간접 개체가 포함된 개체 스트림도 포함될 수 있습니다.
상호 참조 표
상호 참조 테이블에는 특정 개체를 찾기 위해 전체 파일을 읽을 필요가 없도록 파일 내의 간접 개체에 대한 임의 액세스를 허용하는 정보가 포함되어 있습니다. 테이블은 파일 본문 내에서 해당 개체의 바이트 오프셋을 지정하는 각 간접 개체에 대한 한 줄 항목을 포함해야 합니다. (PDF 1.5부터 상호 참조 정보의 일부 또는 전체가 상호 참조 스트림에 대안적으로 포함될 수 있습니다.
파일 예고편
PDF 파일의 예고편을 통해 준수하는 독자는 상호 참조 테이블과 특정 특수 개체를 빠르게 찾을 수 있습니다. 준수하는 독자는 PDF 파일을 끝까지 읽어야 합니다. 파일의 마지막 줄에는 파일 끝 마커인 %%EOF만 포함되어야 합니다. 앞의 두 줄은 한 줄에 하나씩 순서대로 키워드 startxref와 파일의 시작부터 마지막 교차 참조 섹션의 xref 키워드 시작까지 디코딩된 스트림의 바이트 오프셋을 포함해야 합니다.
PDF 개체
PDF 파일에는 다음과 같은 여러 유형의 개체가 포함되어 있습니다.
- 부울 값 - 조건부 true 또는 false를 나타냅니다.
- 숫자 - 정수 및 실수 값
- 문자열 - 괄호 안에 문자 포함
- 이름 - 정방향 / 문자로 시작합니다(예: /ASomewhatLongerName 결과 ASomewhatLongerName).
- 배열 - PDF는 1차원 배열을 지원합니다. 배열을 중첩 요소로 사용하여 더 높은 차원의 배열을 구성할 수 있습니다.
- 사전 - 키-값 쌍으로 개체의 컬렉션입니다. 항목이 없을 수 있습니다.
- 스트림 - 길이에 제한이 없는 바이트 시퀀스를 나타냅니다.
- Null 개체 - null 값을 나타냅니다.
% 기호와 함께 도입되고 8비트 문자를 포함할 수 있는 주석과 같은 다른 개체가 있을 수 있습니다.
간접 객체
PDF 파일의 모든 개체는 간접 개체로 레이블이 지정될 수 있습니다. 간접 개체에는 다른 개체가 참조할 수 있는 고유한 개체 식별자가 제공됩니다. 이들에 대한 상호 참조는 인덱스 테이블에서 유지되며 본문 다음에 오는 xref 키워드로 표시되며 파일 시작 부분에서 각 간접 개체의 바이트 오프셋을 제공합니다.
선형 및 비선형 PDF 레이아웃
PDF 레이아웃은 대상 응용 프로그램 및 기타 요소에 따라 Lnear 및 비선형으로 분류됩니다.
비선형 - 비선형 PDF 파일은 선형 PDF 파일에 비해 디스크 공간을 덜 사용합니다. 문서의 PDF 페이지는 PDF 파일 전체에 분산된 형태로 존재하므로 비선형 파일이 선형 파일에 비해 느린 이유입니다.
Linear PDF - 온라인 PDF 뷰어를 대상으로 하는 Linear PDF 파일은 선형 방식으로 디스크에 기록되는 방식으로 구성됩니다. 전체 문서가 표시되기 전에 먼저 로드되도록 브라우저 플러그인이 필요하지 않습니다.
개체 개요
언급했듯이 PDF 본문은 위에서 언급한 객체의 모음입니다. PDF는 주로 if 및 루프 명령과 같은 프로그래밍 언어의 제어 기능이 없는 PostScript를 기반으로 합니다. 그래픽 콘텐츠를 생성하기 위해 Postscript 코드에서 발행한 명령은 문서에서 참조하는 모든 파일, 그래픽 또는 글꼴과 함께 수집되고 토큰화됩니다. 이 모든 내용이 단일 파일에 누적되어 PostScript 출력이 구성됩니다.
텍스트
PDF의 텍스트는 실제로 글꼴의 글리프와 함께 표시되는 텍스트 요소로 표시됩니다. 글리프는 그래픽 모양이며 좌표 변환과 같은 모든 그래픽 조작의 대상입니다. 대부분의 페이지 설명에서 텍스트의 중요성 때문에 PDF는 글리프를 편리하고 효율적으로 설명, 선택 및 렌더링할 수 있는 고급 기능을 제공합니다.
그래픽
PDF 콘텐츠 스트림에 사용되는 그래픽 연산자는 래스터 출력 장치에서 재생산될 페이지의 모양을 설명합니다. 이 시설은 프린터와 디스플레이 애플리케이션 모두를 위한 것입니다. 그래픽 연산자는 6개의 주요 그룹을 형성합니다.
- 그래픽 상태 연산자는 다른 그래픽 연산자가 실행되는 전역 프레임워크인 그래픽 상태라고 하는 데이터 구조를 조작합니다. 그래픽 상태에는 PDF 콘텐츠 스트림 내에서 사용되는 사용자 공간 좌표를 출력 장치 좌표로 매핑하는 현재 변환 행렬(CTM)이 포함됩니다. 여기에는 현재 색상, 현재 클리핑 경로 및 페인팅 연산자의 암시적 피연산자인 기타 여러 매개변수도 포함됩니다.
- 경로 생성 연산자는 모양, 선 궤적 및 다양한 종류의 영역을 정의하는 경로를 지정합니다. 여기에는 새 경로를 시작하고, 경로에 선분과 곡선을 추가하고, 닫는 연산자가 포함됩니다.
- 패스 페인팅 연산자는 패스를 색상으로 채우거나, 획을 따라 페인트하거나, 클리핑 경계로 사용합니다.
- 다른 페인팅 오퍼레이터는 특정 자체 설명 그래픽 객체를 페인팅합니다. 여기에는 샘플링된 이미지, 기하학적으로 정의된 음영 및 일련의 그래픽 연산자가 포함된 전체 콘텐츠 스트림이 포함됩니다.
- 텍스트 연산자는 글꼴에서 문자 글리프를 선택하고 표시합니다(텍스트 문자를 나타내는 서체 설명). PDF는 글리프를 일반 그래픽 모양으로 취급하기 때문에 많은 텍스트 연산자를 그래픽 상태 또는 페인팅 연산자와 함께 그룹화할 수 있습니다. 그러나 글리프 및 글꼴 설명을 처리하기 위한 데이터 구조 및 메커니즘은 충분히 전문화되어 있습니다.
- 표시 콘텐츠 연산자는 상위 수준의 논리적 정보를 콘텐츠 스트림의 개체와 연결합니다. 이 정보는 콘텐츠의 렌더링된 모양에 영향을 주지 않습니다. 문서 교환을 위해 PDF를 사용하는 응용 프로그램에 유용합니다.