
16진수 편집기에서 PDF 파일을 보면 다음 2개의 첫 줄이 표시됩니다.
%PDF-1.6
%öäüß
첫 번째 줄은 설명된 대로투기는 PDF 버전 번호입니다.
두 번째 줄의 의미는 무엇입니까? 스펙상으로는 찾을 수가 없었습니다.
답변1
PDF 파일에서는 %
주석이 시작되므로 쓸모없는 문자열일 뿐입니다. 많은 PDF 생성기가 이를 사용하여파일이 엉망이 되는 것을 방지버그가 있는 프로그램으로
하지만 어떻게? 일부 응용 프로그램은 데이터의 첫 번째 블록(일반적으로 512, 1024 또는 2048바이트)을 확인하여 경험적으로 파일이 텍스트인지 바이너리인지 확인하고 인쇄할 수 없거나 유효하지 않은 문자의 비율을 측정합니다. 다른 일부는 그렇지 않습니다.8비트 클린. 따라서 해당 앱이 파일을 바이너리로 인식하도록 하려면 처음 512바이트에 127보다 큰 값을 가진 4바이트 이상을 넣는 것이 좋습니다. 그렇지 않으면 CRLF와 LF 간 변환, 상위 비트 자르기 또는 잘못된 UTF-8 바이트 시퀀스 제거(파일이 UTF-8 텍스트로 인식된 경우)와 같은 나쁜 일이 발생합니다.
다음은 인쇄할 수 없는 문자('.' 점 참고)를 사용하는 일부 ASCII 문자입니다. 이 문자는 일반적으로 일부 소프트웨어 제품에 파일에 이진 데이터가 포함되어 있으며 7비트 ASCII로 처리되어서는 안 된다는 것을 알리기 위해 사용됩니다. 텍스트
https://resources.infosecinstitute.com/pdf-file-format-basic-structure/#gref
실제로 PDF 표준에서 권장됩니다.
메모: 대부분의 경우와 같이 PDF 파일에 이진 데이터가 포함되어 있는 경우(섹션 3.1, “어휘 규칙” 참조) 헤더 줄 바로 다음에는 최소한 4개의 이진 문자, 즉 코드가 다음과 같은 문자를 포함하는 주석 줄이 오는 것이 좋습니다. 128 이상. 이렇게 하면 파일 시작 부분 근처의 데이터를 검사하여 파일 내용을 텍스트로 처리할지 아니면 바이너리로 처리할지 결정하는 파일 전송 응용 프로그램의 올바른 동작이 보장됩니다.
https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf
대부분의 경우처럼 PDF 파일에 이진 데이터가 포함되어 있는 경우(7.2, 어휘 규칙" 참조) 헤더 줄 바로 뒤에는 최소한 4개의 이진 문자, 즉 코드가 128 이상인 문자를 포함하는 주석 줄이 와야 합니다. 파일 시작 부분의 데이터를 검사하여 파일 내용을 텍스트로 처리할지 바이너리로 처리할지 결정하는 파일 전송 애플리케이션의 올바른 동작을 보장합니다.
https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf
내가 읽은 PDF에 대한 일부 소스에서는 일부 프로그램이 파일이 0바이트가 없는 바이너리인지 여전히 확신하지 못한다고 말하지만, 안타깝게도 PDF 주석에 0을 삽입할 수는 없습니다. 지금은 찾을 수 없어서 나중에 인용하겠습니다.