본문 바로가기

파일 형식 백과사전

PDF에서 검은 칠로 가린 글자, 복사하면 그대로 나옵니다

계약서나 신청서를 보내기 전에 주민등록번호나 계좌번호 위에 검은 사각형을 덮어 가려 본 적 있으실 겁니다. 화면에서 안 보이니 가려졌다고 생각하기 쉽습니다.

그런데 그 부분을 마우스로 드래그해 다른 곳에 붙여 넣으면 원래 글자가 그대로 나옵니다. 사각형은 글자를 지운 것이 아니라 글자 위에 하나 더 그려진 도형이기 때문입니다. 정말 그런지 같은 PDF를 세 가지 방법으로 가려 놓고 각각 글자를 꺼내 봤습니다.

 

 

 

같은 PDF를 세 방법으로 가린 결과 비교. 검은 칠로 덮은 파일은 1,437바이트로 원본보다 22바이트만 늘었고 ID 900101-1234567이 그대로 추출된다. 글자를 빼고 다시 만든 파일은 1,416바이트로 그 줄이 아예 없고, 페이지를 이미지로 바꾼 파일은 38,365바이트로 텍스트가 빈 문자열이다

 

 

덮은 파일에서 번호가 그대로 나왔습니다

이름, 번호, 전화번호 세 줄이 든 PDF를 만들고, 번호 줄 위에만 검은 사각형을 그려 덮었습니다. 그리고 두 파일에서 글자를 꺼내 비교했습니다. 측정 환경은 윈도우 11, 파이썬 3.12.10, reportlab 5.0.0, pypdf 6.14.2입니다. 예시로 쓴 번호는 실제 규칙에 맞지 않는 가짜 값입니다.

덮은 파일은 1,437바이트였습니다. 원본이 1,415바이트였으니 22바이트만 늘어난 셈입니다. 글자를 지웠다면 파일이 줄어야 하는데 오히려 늘었습니다. 사각형 하나를 그리는 명령이 추가된 것이 전부이기 때문입니다.

그 파일에서 글자를 꺼내면 이렇게 나옵니다.

원본     1,415바이트   Name: HONG GILDONG | ID: 900101-1234567 | Phone: 010-0000-0000
검은칠   1,437바이트   Name: HONG GILDONG | ID: 900101-1234567 | Phone: 010-0000-0000

두 줄이 똑같습니다. 화면에서만 안 보일 뿐, 번호는 파일 안에 고스란히 남아 있습니다. 특별한 도구가 필요한 것도 아닙니다. PDF 뷰어에서 그 자리를 드래그해 복사하면 그대로 붙여 넣어집니다.


보내기 전에 30초로 확인하는 법

가장 빠른 방법은 직접 해 보는 것입니다. 만든 PDF를 뷰어로 열고 가린 부분을 드래그해 메모장에 붙여 넣어 보세요. 아무것도 안 붙는다면 제대로 지워진 것이고, 글자가 나온다면 안 가려진 것입니다.

 

문서가 여러 장이라 일일이 확인하기 번거롭다면, 파일 전체에서 글자를 한꺼번에 꺼내 특정 단어가 남아 있는지 볼 수도 있습니다.

from pypdf import PdfReader

reader = PdfReader("보낼문서.pdf")
for i, page in enumerate(reader.pages, 1):
    text = page.extract_text()
    if "찾을단어" in text:
        print(f"{i}쪽에 아직 남아 있습니다")

Ctrl+F로 문서 안 검색을 해 보는 것도 방법입니다. 가렸다고 생각한 단어가 검색에 걸린다면 그 글자는 아직 파일 안에 있습니다.


제대로 지우는 두 가지 방법

1. 글자 자체를 빼고 다시 만들기. 원본 문서(워드나 한글)에서 해당 부분을 지우거나 다른 글자로 바꾼 뒤 PDF로 다시 내보내는 방법입니다. 같은 조건으로 만들어 재 보니 1,416바이트가 나왔고, 꺼낸 글자에서 그 줄이 아예 사라졌습니다. 나머지 내용은 그대로 복사되고 검색도 됩니다.

 

PDF 편집 프로그램에도 이 기능이 있습니다. 다만 이름이 도구마다 다릅니다. 단순히 도형을 덮는 기능이 아니라 글자를 제거하는 기능인지 확인하고 써야 합니다. 작업 뒤에는 위의 드래그 복사로 한 번 더 확인하는 편이 안전합니다.

 

2. 페이지를 이미지로 바꾸기. 문서를 그림으로 만들어 버리면 글자라는 것이 남지 않습니다. 실제로 해 보니 꺼낸 텍스트가 빈 문자열이었습니다. 대신 대가가 큽니다. 파일이 38,365바이트로 원본의 27배가 됐고, 받는 사람이 문서 안 글자를 복사하거나 검색할 수 없게 됩니다.

 

급하게 한 장을 보내야 하는 상황이라면 두 번째가 확실합니다. 여러 장짜리 문서를 계속 주고받아야 한다면 첫 번째가 낫습니다. 참고로 스캔한 문서의 용량이 잘 안 줄어드는 것도 이렇게 글자가 아니라 그림으로 들어 있기 때문입니다.

 

파일에는 화면에 안 보이는 것이 생각보다 많이 남습니다. 워드 파일에 작성자 이름과 편집 시간이 따라가는 것이나 사진에 촬영 장소가 딸려 가는 것도 같은 종류의 일입니다. 보이지 않는다고 없는 것이 아닙니다.

 

가린 PDF를 보내기 전에, 그 부분을 드래그해 복사해 보세요. 붙여 넣어진다면 아직 가려지지 않은 것입니다.