가로로 누운 표가 든 PDF를 뷰어에서 오른쪽으로 돌려 저장했습니다. 화면에서는 똑바로 섰습니다. 그런데 인쇄 미리보기를 열면 세로 용지에 눌려 들어가 있고, 다른 프로그램에 넣으면 여백이 엉뚱하게 잡힙니다.
PDF의 회전은 두 층으로 되어 있고, 회전 버튼은 그중 위층만 건드리기 때문입니다. 세로 페이지에 누운 표를 그려 넣은 파일을 만들어 두 방식으로 각각 저장하고, 파일 안이 어떻게 달라지는지 직접 열어 봤습니다.

회전 버튼이 하는 일은 쪽지 한 장 붙이기입니다
PDF 페이지는 두 가지 값을 같이 들고 있습니다. 하나는 MediaBox, 종이의 실제 크기입니다. 다른 하나는 Rotate, 보여 줄 때 몇 도 돌리라는 지시입니다.
뷰어의 회전 버튼은 Rotate만 바꿉니다. 저장한 파일을 열어 보니 이렇게 나왔습니다.
| 저장 방법 | Rotate | MediaBox | 용지 모양 |
|---|---|---|---|
| 원본 (돌리기 전) | 0 | 595 x 842 | 세로 |
| 회전만 저장 | 90 | 595 x 842 | 여전히 세로 |
| 내용까지 돌려 저장 | 0 | 842 x 595 | 가로 |
가운데 줄이 문제의 상태입니다. 돌려 달라는 쪽지는 붙었는데 종이는 세로인 채 그대로입니다. 화면에 그리는 단계에서 쪽지를 읽는 프로그램은 똑바로 보여 주고, 종이 크기를 먼저 보고 자리를 잡는 프로그램은 세로로 취급합니다. 같은 파일이 한쪽에서는 서 있고 다른 쪽에서는 누워 있는 이유입니다.
인쇄 대화상자에서 용지 방향이 자꾸 세로로 잡히는 것도 같은 이유입니다. 인쇄 쪽은 종이 크기부터 봅니다.
내용까지 돌려 굳히기
확실한 방법은 회전을 페이지 내용에 반영해 다시 그리는 것입니다. 그러면 MediaBox가 842 x 595로 뒤바뀌고 Rotate는 0으로 돌아갑니다. 쪽지가 필요 없어진 상태입니다.
from pypdf import PdfReader, PdfWriter
reader = PdfReader("original.pdf")
writer = PdfWriter()
for page in reader.pages:
page.rotate(90) # 쪽지를 붙이고
page.transfer_rotation_to_content() # 내용에 굳혀 넣는다
writer.add_page(page)
with open("rotated.pdf", "wb") as f:
writer.write(f)
# 확인
p = PdfReader("rotated.pdf").pages[0]
print(p.rotation, p.mediabox.width, p.mediabox.height) # 0 842 595
각도는 90의 배수로 넣습니다. 왼쪽으로 돌리려면 270을 씁니다. 마지막 줄로 결과를 확인하는 습관을 들이면, 돌아갔는지 아닌지를 눈으로 짐작하지 않아도 됩니다.
프로그램 없이 하려면 인쇄 기능을 이용하는 방법이 있습니다. 회전한 상태에서 PDF로 인쇄를 실행하면 화면에 보이는 대로 새 파일이 만들어집니다. 다만 이 방법은 페이지를 다시 그리는 것이라 글자가 그림으로 바뀌는 경우가 있으니, 복사와 검색이 되는지 확인하고 쓰셔야 합니다.
파일 크기는 회전과 상관이 없습니다
측정값에서 회전만 저장한 파일이 1,370바이트로 원본 1,794바이트보다 작게 나왔습니다. 회전이 용량을 줄인 것이 아닙니다. 다시 저장하는 과정에서 내부 구조가 정리된 결과입니다.
내용까지 돌린 파일이 2,115바이트로 조금 커진 것도 마찬가지입니다. 좌표를 바꾸는 변환 지시가 한 줄 더 들어갔을 뿐입니다. 회전 방식을 고를 때 크기는 판단 근거가 되지 못합니다. 어디서 열어도 같게 보이는가만 보시면 됩니다.
사진이 눕는 문제와는 다릅니다
사진이 옆으로 눕는 현상도 비슷하게 생겼지만 원인이 다른 층에 있습니다. 사진은 파일 안의 방향 정보를 프로그램마다 다르게 읽어서 생기는 일이고, 그 내용은 아이폰 사진이 PC에서 눕는 이유에 정리해 두었습니다. PDF는 방향 정보가 아니라 종이 크기와 회전 지시가 따로 논다는 점이 다릅니다.
여러 PDF를 합칠 때도 이 값이 따라다닙니다. 회전만 걸어 둔 페이지를 다른 문서에 붙이면 쪽지가 그대로 옮겨 가서, 합친 문서 안에서만 세로와 가로가 섞여 보입니다. 합치기와 페이지 분리는 여러 PDF를 합치고 페이지를 빼내는 법에서 다뤘습니다.
화면에서 똑바로 보이는 것과 파일이 똑바로 저장된 것은 다른 이야기입니다. 종이 크기가 바뀌었는지가 둘을 가르는 기준입니다.
위 값은 윈도우 11에서 파이썬 3.14.6과 pypdf 6.13.2로 A4 세로 페이지를 만들어 두 방식으로 저장한 뒤 파일 안의 값을 그대로 읽은 것입니다. 뷰어와 인쇄 드라이버에 따라 화면에 보이는 결과는 달라질 수 있습니다.
'파일 형식 백과사전' 카테고리의 다른 글
| 기록을 지웠는데 db 파일 크기가 1바이트도 안 줄었습니다 (0) | 2026.09.27 |
|---|---|
| 인쇄소에 보낸 PDF에서 글꼴이 바뀌어 왔을 때, 보내기 전에 확인하는 법 (0) | 2026.09.26 |
| PDF로 바꿔 보내면 이름은 안 따라갈까, 문서 정보를 직접 열어 확인했습니다 (1) | 2026.09.26 |
| JSON 파일이 커서 안 열릴 때, 통째로 읽지 않고 훑어보는 법 (0) | 2026.09.26 |
| 사진을 열었다 저장할 때마다 나빠진다는 말, 어디까지 사실일까 (0) | 2026.09.25 |