Search

Claude Code pdf 첨부(비밀번호 보호 상태) 관련 질문 드립니다.

Category √
Others
Status √
Complete
Files
Nickname √
Sarah
6 more properties
Question
안녕하세요 양박사님! Cluade 사용 중에 궁금한 것이 생겨 질문 남깁니다.
로컬 한 폴더(예.C폴더 하위에 있는 “학위연구” 폴더)를 작업 디렉터리로 연결해놓은 상태에서 Claude Code에서 대화를 하던 중에 다른 폴더에 저장되어있는(예.download폴더) pdf파일을 첨부하면 파일에 비밀번호가 걸려있어서 읽지 못한다고 하는 경우가 생깁니다.
물론 해당 pdf파일은 비밀번호가 없을 뿐더러, 동일 파일을 Claude Chat이나 Claude Cowork에 첨부하여 읽어보라고 하면 잘 읽어냅니다.
그래서 제가 처음부터 해당 pdf가 포함되어있는 download폴더를 작업 디렉터리로 설정한 후 읽어보라 하였더니 잘 읽는 것을 확인하였습니다.
하지만 만약 Claude Code에서 대화를 하던 중 다른 폴더 pdf 자료를 첨부하고 싶다면 접근 가능하도록 하는 방법이 있는지 궁금합니다.
C폴더 하위에 있는 “학위연구” 폴더 작업 디렉터리 연결 후 대화 중 download폴더에 있는 pdf 읽어보라 한 것 (→ 못읽음)
download 폴더를 작업 디렉터리로 연결한 후 동일 pdf를 읽어보라 한 것 (→ 읽음)
Answer
논문 PDF는 일반 PDF와 내부 구조가 다른 경우가 많아서, Claude Code의 기본 Read 도구가 이를 해석하다 멈추고 실제로는 암호가 없는데도 "password-protected" 오류를 냄. 반면 Chat/Cowork는 앤트로픽 쪽에서 첨부파일을 처리하는 방식이 달라서 이 오류를 피함. 따라서 어떤 PDF든 실패 없이 읽으려면 Python 기반 Parser(pypdf·PyMuPDF 등)를 쓰는 게 안전하고, Claude Code에선 이를 자동으로 호출하는 자체 PDF 분석 스킬을 만들어 두는 걸 권장함.

핵심 원인: 논문 PDF + 기본 Read 도구

논문 PDF는 "일반 PDF"와 구조가 다름

논문 PDF는 학술지 조판·출판 시스템(LaTeX, 출판사 제작 도구 등)으로 만들어져서, 내부의 태그 구조나 객체 배치가 일반 문서용 PDF와 다른 경우가 잦음.

기본 Read 도구는 "일반 PDF"와 구조가 다르면 멈춤

Claude Code의 기본 Read 도구는 PDF를 자체 방식으로 엄격하게 해석함. 그래서 위처럼 구조가 비표준이면 처리를 포기하고, 원인을 가리지 않는 일반 오류인 "password-protected"를 그대로 내보냄. 즉 진짜 암호 문제가 아니라, "내 Parser로는 못 읽겠다"를 비번 오류로 잘못 표시하는 것임.
이번 질문 답변할 겸, 나도 내 논문 PDF를 가지고 다시 한 번 확실히 테스트 해봄:
표준 라이브러리 3종(pypdf·qpdf·PyMuPDF) 모두 암호화 아님(is_encrypted: False) 으로 판정했고, 텍스트도 정상 추출됨(86,131자).
반면 Claude Code는 같은 파일의 페이지 수를 161쪽으로 오인식(실제 23쪽) → 자체 Parser가 구조를 잘못 읽고 있다는 증거.
파일을 작업 폴더 안으로 복사해도 똑같이 실패 → "폴더 밖이라서"가 아니라 파서 자체의 오탐임이 확인됨.

Claude Code와 Chat/Cowork의 차이

Chat·Cowork는 파일을 로컬에서 읽는 게 아니라 앤트로픽 서버로 업로드해서 처리함. ⇒ 첨부파일 처리 방식 자체가 Claude Code의 Read와 다름. 그래서 Read가 걸려 넘어지던 까다로운 전처리 단계를 아예 거치지 않고 더 관대하게 문서를 받아들임 → 같은 논문 PDF도 문제없이 읽힘.
구 분
Claude Code (기본 Read)
Chat / Cowork
첨부 처리 방식
로컬 파일을 자체 파서로 직접 해석
서버로 업로드해 처리
비표준 구조 PDF
멈춤 → password-protected 오탐
처리 방식이 달라 대체로 통과
진짜 암호화된 PDF
못 읽음
못 읽음
논문 PDF 결과
종종 실패
잘 읽힘
단, 진짜로 암호가 걸린 PDF는 Chat/Cowork에서도 못 읽음.

해결책: Python 기반 PDF Parser 사용

결국 어떤 PDF든 실패 없이 읽으려면, 기본 Read 대신 검증된 Python Parser로 텍스트·이미지를 추출하는 게 가장 안정적임. 이 라이브러리들은 오랫동안 "지저분한 실제 PDF"를 다뤄와서, 구조가 비표준이어도 경고만 내고 끝까지 읽어냄.

주요 Python PDF 파서 종류와 특징

pypdf — 순수 Python. 텍스트·메타데이터 추출, 페이지 병합/분할/회전. 가볍고 설치 쉬움. 일상적인 텍스트 추출에 무난함.
PyMuPDF (fitz) — MuPDF 엔진 기반. 텍스트 + 이미지 추출·페이지 렌더링까지 되고 빠름. 그림·도표 많은 논문에 가장 적합.
pdfplumber표(table)와 좌표 기반 텍스트 추출에 강함. 표가 많은 문서에 유용.
pikepdf (qpdf 기반) — 구조 검사·복구·암호화 처리. 손상되거나 비표준인 PDF를 정상 구조로 다시 저장(재렌더링)하는 데 좋음.
추천 조합: PyMuPDF(그림 포함 전체 읽기) + pypdf(가벼운 텍스트 추출). 그래도 안 읽히면 pikepdf로 한 번 정상화한 뒤 재시도.

권장: Claude Code에 자체 PDF 분석 스킬 만들기

매번 수동으로 코드를 돌릴 게 아니라, Claude Code에 "PDF 읽기 스킬"을 하나 만들어 두는 것을 권장함.
해당 스킬이 해야 하는 일:
1.
PDF 경로를 받으면 기본 Read 대신 pypdf/PyMuPDF로 텍스트 추출.
2.
그림이 중요한 페이지는 이미지로 렌더링해서 모델이 직접 보게 함.
3.
구조가 깨진 PDF면 pikepdf로 정상화 후 재시도.
이렇게 해두면 논문이든 일반 문서든 "password-protected" 오류 없이 일관되게 읽을 수 있음.
다만, PDF에서 이미지 추출해서 읽을 때 잘 안될 수 있으니 이미지 부분에 있어서는 100% 신뢰 하지 말 것.