PDF에서 글자 복사가 안 될 때 원인별 해결법
FreePDF 팀 작성 ·
PDF에서 문단을 드래그했는데 아무것도 선택되지 않습니다. 선택은 되는데 복사 메뉴가 회색입니다. 붙여 넣었더니 파일이 깨진 것 같은 기호가 줄줄이 나옵니다. 아니면 글자는 멀쩡한데 줄마다 끝에서 줄이 바뀌어 있습니다. 증상마다 원인이 다르고, 해결책도 다릅니다.
어떤 경우인지부터 가리기
- 클릭하면 페이지 전체가 한 덩어리로 선택되거나 아무것도 선택되지 않는다면, 페이지가 이미지입니다. 대개 스캔본입니다.
- 글자는 선택되는데 복사가 회색이거나 복사가 허용되지 않는다는 안내가 뜬다면, 파일에 권한 제한이 걸려 있습니다. 문서 속성의 보안 항목에 보통 표시됩니다.
- 복사는 되는데 붙여 넣은 글자가 알아볼 수 없다면, PDF 안의 글꼴 문제입니다.
- 글자는 맞는데 줄바꿈과 서식이 엉망인 경우도 있습니다.
스캔한 페이지일 때
스캐너가 만드는 건 종이의 사진입니다. 사람 눈에는 글자가 보여도 파일이 아는 건 픽셀뿐이라, 선택하거나 검색할 게 없습니다. OCR(문자 인식)은 이미지에서 글자를 읽어 각 페이지 뒤에 보이지 않는 텍스트 층을 더합니다. 겉모습은 그대로이고, 이제 선택도 복사도 검색도 됩니다.
문제는 저희 OCR이 영어만 인식한다는 점입니다. 한글 스캔본에는 글자가 생기지 않고, 한국어 데이터를 갖춘 OCR 프로그램이 따로 필요합니다. 명령줄이 익숙하다면 내 컴퓨터에서 ocrmypdf를 Tesseract 한국어 팩과 함께 설치해 -l kor+eng로 돌리는 방법이 있습니다. 영문 스캔본이라면 저희 도구로 충분하고, 선명하고 반듯하며 대비가 높은 스캔일수록 비스듬히 찍은 휴대폰 사진보다 결과가 훨씬 좋습니다. 어느 쪽이든 숫자와 이름은 다시 확인하세요.
파일이 복사를 막고 있을 때
PDF에는 두 종류의 암호가 있습니다. 열기 암호는 파일이 열리는 것 자체를 막고, 권한 암호는 누구나 열 수 있게 두되 뷰어에게 복사, 인쇄, 편집을 막으라고 지시합니다. 복사 메뉴가 회색이라면 권한 암호 쪽입니다.
내 문서이거나 작성자에게 글을 가져다 써도 된다는 허락을 받았다면 PDF 암호 해제에 넣으세요. 파일이 암호 없이 열렸다면 암호 칸은 비워 둬도 되고, 제한이 풀린 사본이 나옵니다. 허락이 없다면 보낸 사람에게 제한 없는 버전을 요청하세요. 유료 보고서나 시험지에 걸린 제한은 대부분 일부러 걸어 둔 것입니다.
붙여 넣으면 이상한 기호가 나올 때
PDF 안에서 글자는 파일에 포함된 글꼴의 모양을 가리키는 코드로 저장됩니다. 이 코드를 다시 글자로 바꾸려면 파일 안에 대응표가 있어야 하는데, 문서를 만든 프로그램에 따라 이 표를 빠뜨리거나 독자적인 인코딩을 쓰기도 합니다. 그러면 화면에는 멀쩡히 보이는데 복사하면 코드가 그대로 나옵니다. 정보가 파일에 아예 없는 것이라 뷰어를 바꿔도 대개 소용없습니다.
우회로는 OCR입니다. 코드가 아니라 글자 모양을 읽기 때문이죠. 다만 걸리는 게 있습니다. 저희 OCR은 중복을 피하려고 이미 텍스트가 있는 페이지를 건너뛰는데, 기호로 깨진 페이지도 텍스트가 있는 페이지로 칩니다. 그래서 먼저 페이지를 순수 이미지로 바꿔야 합니다.
- PDF PNG 변환에서 “높음 (300 DPI)”으로 PDF를 PNG로 바꿉니다.
- PNG PDF 변환으로 그 PNG들을 페이지 순서대로 추가해 다시 PDF로 만듭니다.
- 새 파일을 PDF OCR에 넣습니다.
결과는 스캔본 같은 PDF에 제대로 된 텍스트 층이 붙은 파일입니다. 원본보다 크고 글자가 더 이상 벡터가 아니니, 읽기용으로는 원본을 두고 복사용으로만 OCR 사본을 쓰세요. 이 방법 역시 영문 페이지에만 통합니다. 한글 페이지라면 한국어를 지원하는 OCR로 같은 순서를 밟아야 합니다.
글자는 맞는데 줄바꿈이 엉망일 때
PDF는 문단이라는 개념을 모릅니다. 페이지의 정해진 위치에 줄을 하나씩 놓아 둘 뿐이라, 복사하면 줄마다 끝에 줄바꿈이 붙고, 줄 끝에서 하이픈으로 나뉜 영어 단어도 그대로 나뉜 채 옵니다. 이렇게 열두 페이지를 복사하려면 손이 많이 갑니다.
PDF 텍스트 변환은 모든 페이지의 글자를 .txt 파일 하나로 뽑고, 페이지 사이에 빈 줄을 넣습니다. 줄바꿈은 여전히 남아 있지만 정리는 한 번만 하면 됩니다. VS Code처럼 정규식 바꾸기가 되는 편집기에서 정규식 옵션을 켜고, 찾을 내용에 ([^.\n])\n, 바꿀 내용에 $1과 공백 한 칸을 넣어 모두 바꾸세요. 마침표로 끝나지 않은 줄을 다음 줄과 이어 붙이기 때문에, “다.”로 끝나는 진짜 문단 끝은 대부분 그대로 남습니다. 한글 문서는 단어 중간에서 줄이 바뀌는 경우가 있어 그 자리에 공백이 끼어들 수 있으니, 마지막에 한 번 훑어보세요.
자주 묻는 질문
페이지에 보이는 단어가 검색되지 않는 이유는요?
복사가 안 되는 이유와 같습니다. 스캔본에는 검색할 텍스트가 없고, 글꼴이 깨진 파일에서는 검색어가 찾는 글자가 다른 코드로 저장되어 있습니다. 영문 문서라면 OCR을 거친 뒤 검색이 정상적으로 됩니다.
복사 제한을 풀어도 괜찮은 건가요?
내 파일이라면 괜찮습니다. 남의 파일은 허락을 받았을 때만 푸세요. 보통은 제한 없는 사본을 달라고 하는 편이 가장 간단합니다. 저희 PDF 암호 해제는 암호를 추측하거나 뚫지 않고, 이미 알고 있는 암호로만 작동합니다.