직접 측정한 결과
| 대상 | 입력·기준 | 확인한 결과 |
|---|---|---|
| 원본 그림 · 1200×800픽셀 | 1200 × 800 / 338.67 ppi | JPEG 압축 SHA-256 동일 |
| 축소 그림 · 240×160픽셀 | 240 × 160 / 67.73 ppi | JPEG 압축 SHA-256 동일 |
이 값은 이 예제의 관찰입니다. 모든 PDF·리더에 대한 보장이 아닙니다.
문제와 입력 조건
직접 그린 선·모서리·글자 차트를 JPEG로 저장하고, 한 사본은 240×160으로 줄였습니다. 두 파일을 가로 90mm·세로 60mm에 넣었습니다. 실측 표의 수평 해상도는 픽셀 수를 배치 너비(인치)로 나눈 값입니다.
실제 검사한 내용
PDF의 DCTDecode 이미지 스트림과 입력 JPEG의 SHA-256을 비교합니다. 방향 보정 없는 이 두 JPEG는 입력 압축 바이트와 일치합니다. 기존 텍스트·원래 그림 스트림이 남는지도 별도로 확인합니다. 결과 미리보기의 작은 그림은 원본 PDF를 확대해서 비교해야 합니다.
품질을 유지하는 방법
- 여러 번 저장한 메신저 미리보기 대신 원래 이미지 파일을 넣습니다.
- 원래 비율을 유지하고, 작은 이미지를 불필요하게 크게 배치하지 않습니다.
- 세밀한 글자는 필요한 화면 부분만 확보하고 설명을 별도 검색 가능한 글자로 적습니다.
- 저장 PDF를 다시 열어 페이지 크기·이미지 경계·글자 추출과 원본 이미지를 확인합니다.
보존 검사의 한계
SHA 일치는 해당 스트림이 같다는 뜻이지 모든 리더의 색상 관리나 인쇄 결과가 같다는 보장은 아닙니다. EXIF 방향 보정은 PNG 변환이므로 압축 바이트 일치를 기대하면 안 됩니다. 양식·링크·첨부·태그까지 보존한다는 근거로 이미지 검사만 사용하지 마세요. 그런 특수 구조는 현재 편집을 차단합니다.
직접 열어 볼 자료
- 원본 그림 · 1200×800픽셀 (resolution-chart.jpg)
- 축소 그림 · 240×160픽셀 (resolution-small.jpg)
- 큰 입력을 넣은 PDF (image-original.pdf)
- 작은 입력을 넣은 PDF (image-small.pdf)
확대 좌표·배율·원본 해시·새 추출 근거 · 재확인: 2026-10-24 · pdftoppm version 26.07.0 · pypdf 6.10.0 · pdfplumber 0.11.9. 원본 PDF는 수정하지 않았습니다.
환경·확인 날짜와 근거 구분
확인: 2026-10-23 · Windows / Chrome 155 · pdf-lib 1.17.1 · PDF.js 6.4.299 · fontkit 1.1.1 · pypdf 6.10.0 · pdftoppm version 26.07.0. PDF·그림은 자체 제작이며 글꼴은 나눔고딕 OFL-1.1입니다. 실측 표와 파일은 직접 시험한 사실, 본문의 원인 설명은 해당 구조 해석입니다. 실제 OS 키보드·휴대전화와 모든 PDF 리더의 동작은 이 시험에 포함하지 않습니다.
공식 참고 설명 (실측과 구분): pdf-lib: JPEG 원본 바이트 삽입 설명
재현 코드: scripts/lab-inputs.py, lab-outputs.mjs, lab-derived.py, tests/readiness-browser.mjs, tests/lab-pdf.py.



