My PDF 2 MD 소개
최종 확인
My PDF 2 MD는 PDF 문서를 업로드하지 않고 Markdown으로 변환합니다. 이 페이지는 누가 운영하는지, 변환이 어떻게 이루어지는지, 어떤 문서에서 실패하는지, 그리고 파일을 전혀 받지 않는 무료 도구가 어떻게 유지되는지를 설명합니다.
이 사이트를 운영하는 곳
My PDF 2 MD는 Kozhikode, Kerala, India에 기반을 둔 독립 소프트웨어 프로젝트 MyPDF2MD.com가 개발하고 운영합니다. 벤처 자금이 들어와 있지 않고, 문서 처리 API의 겉모습도 아니며, 변환한 내용을 되파는 일도 없습니다.
작은 팀이 운영합니다. chatbot 뒤에 숨은 상담 대기열은 없으며, 메일은 사람에게 도착합니다. 일반적인 문의는 support@mypdf2md.com, 개인정보에 관한 사항은 privacy@mypdf2md.com로 보내 주십시오. 두 경로 모두 영업일 기준 5일 이내에 답신하며, 메일 대신 쓰실 수 있는 양식이 문의 페이지에 있습니다.
왜 만들었는가
웹에 있는 PDF-Markdown 변환 도구는 거의 모두 같은 방식으로 동작합니다. 아무것도 알지 못하는 서버에 문서를 올리고, 거기서 처리한 뒤, 그 문서가 이후 어떻게 되었는지는 개인정보처리방침의 한 문장을 믿으라고 합니다. 음식점 메뉴라면 상관없습니다. 그러나 서명된 계약서, 진단서, 이사회 회의록, 미발표 원고라면 사정을 알고서도 기꺼이 받아들일 만한 거래는 아닙니다.
그 거래를 피할 기술은 이미 오래전부터 브라우저 안에 있었습니다. Mozilla의 PDF 엔진인 PDF.js는 페이지 안에서 실행되며, 문서의 어떤 부분도 네트워크를 건너지 않은 채로 읽어낼 수 있습니다. 없었던 것은 능력이 아니라 그 능력을 중심에 둔 도구였습니다. 그래서 이 도구는 기본적으로 사용자의 기기에서 변환하며, 첫 화면의 개인정보 문구는 행동에 대한 약속이 아니라 구조에 대한 설명입니다.
이 선택에는 대가가 있고, 분명히 적어 둡니다. 브라우저 탭은 서버보다 메모리와 연산 능력이 적으므로, 아주 길거나 복잡한 문서는 호스팅 서비스보다 느리게 변환됩니다. 그래도 사람들이 실제로 걱정하는 종류의 문서에는 이쪽이 옳은 선택이라고 봅니다.
변환이 실제로 이루어지는 방식
대부분의 변환기가 마법처럼 설명하고 넘어가는 부분이지만, 이 도구가 저지르는 오류를 그대로 설명해 주므로 알아둘 값어치가 있습니다.
PDF에는 제목도, 문단도, 목록도, 표도 들어 있지 않습니다. 좌표 위에 놓인 글자 모양만 있습니다. 워드프로세서가 PDF를 내보낼 때 원본 문서의 의미 구조 — 이 줄은 2단계 제목, 이 줄들은 한 문단, 이 칸들은 하나의 표 — 는 버려지고, 지면에 글자를 그리라는 명령으로 대체됩니다. PDF를 Markdown으로 바꾼다는 것은 그 구조를 기하 정보에서 되짚어 추론하는 일이며, 추론은 추출이 아닙니다.
변환기는 먼저 본문 글자 높이를 구합니다. 문서에서 가장 자주 쓰인 글꼴 높이를, 그 크기로 조판된 글자 수로 가중해 정합니다. 이후의 모든 값은 이 단위의 배수로 측정되며, 문서가 9pt로 짜였든 14pt로 짜였든 결과가 달라지지 않는 이유가 여기에 있습니다.
그다음부터 규칙은 기하학적입니다. 기준선 차이가 본문 높이의 약 3분의 1 이내인 조각들은 같은 줄입니다. 본문 높이의 1.5배 이내로 이어지는 줄들은 같은 문단입니다. 본문보다 뚜렷하게 큰 조각 — 대략 1.2배 이상 — 은 제목이고, 얼마나 큰지가 H1, H2, H3 중 무엇이 될지를 정합니다. 최소 두 개의 공통 x 좌표에 칸이 정렬된 줄이 두 줄 이상 이어지면 표로 봅니다. 페이지 가운데 부근의 세로 여백은 단 구분으로 처리해 읽는 순서가 좌우로 튀지 않게 합니다. 페이지마다 같은 위치에서 되풀이되는 머리말과 꼬리말은 찾아내어 제거합니다.
줄 안의 서식은 추측이 아니라 글꼴 자체에서 읽습니다. 굵게와 기울임은 글꼴의 실제 굵기와 기울기에서 나오고, 고정폭 조각은 code가 됩니다. PDF에 삽입된 링크는 Markdown 링크로 보존됩니다.
어디서 틀리는가
구조를 추론하는 이상 실패 방식은 예측할 수 있습니다. 중요한 문서에서 뒤늦게 발견하시는 것보다 미리 적어 두는 편이 낫다고 봅니다.
- 크기를 바꾸지 않고 굵기만으로 제목을 표시한 문서는 제목 검출에 근거를 전혀 주지 못합니다. 그런 제목은 일반 문단으로 출력됩니다.
- 병합된 칸이 있는 표, 중첩된 표, 내용이 여러 줄로 접히는 칸은 정렬이 무너집니다. 열 검출이 x 좌표로 이루어지는데 병합된 칸이 그 격자를 깨뜨리기 때문입니다.
- 단순한 2단 분할보다 복잡한 다단 편집 — 인용 상자와 곁단이 있는 잡지 지면 같은 경우 — 은 읽는 순서가 뒤엉킬 수 있습니다.
- 수식은 LaTeX로 변환하지 않습니다. 텍스트로 조판된 수식은 그것을 이루는 글자 그대로 나오고, 이미지로 삽입된 수식은 아예 나오지 않습니다.
- 이미지는 추출하지 않습니다. 결과물은 글과 구조입니다.
- 스캔 문서에는 선택 가능한 텍스트가 전혀 없으므로 브라우저 안의 변환으로는 아무것도 얻지 못합니다. 이 경우는 아래에 설명한 선택적 문자 인식으로 따로 처리합니다.
기기를 벗어나는 단 한 가지
스캔은 지면을 찍은 사진입니다. 읽어낼 텍스트가 애초에 없으므로 브라우저에서 아무리 분석해도 결과가 나오지 않습니다. 이를 읽으려면 광학 문자 인식이 필요하고, 여기에는 브라우저 탭이 감당할 수 있는 수준을 훨씬 넘는 연산이 듭니다.
그 경우에 한해, 저희 서버에서 문서를 인식해 달라고 요청하실 수 있습니다. 결코 자동으로 이루어지지 않습니다. 도구가 선택 가능한 텍스트가 없음을 감지해 이를 알리고, 확인이 필요한 선택지로 인식 기능을 제시합니다. 무엇이든 전송되기 전에, 몇 쪽이 올라가는지, 어디로 가는지, 얼마나 보관되는지를 대화 상자가 먼저 알려 줍니다.
인식은 저희 자체 인프라에서 저희 엔진으로 실행합니다. 파일은 작업이 진행되는 동안만 메모리에 있다가 끝나면 파기되며, 디스크에 기록되지 않고 제3자에게 넘어가지 않습니다. 남기는 것은 이용 기록 — 쪽수, 시각, 인식 언어, 그리고 계정 ID 또는 IP의 salted hash — 뿐이며, 하루 한도를 적용하고 남용을 찾아내기 위한 것으로, 문서의 어떤 내용도 담지 않고 30일 뒤 삭제됩니다.
인식 결과는 옮겨 적은 것이 아니라 추정입니다. 특히 이름, 숫자, 날짜, 관리번호에서 글자를 잘못 읽으며, 읽어내지 못한 낱말은 표시되지 않고 그대로 빠집니다. 결과에는 그에 맞는 표시와 함께 엔진 자체의 신뢰도 점수, 그리고 가장 확신이 낮았던 쪽 목록이 붙습니다. 손글씨는 읽지 못하고 수식도 변환하지 않습니다.
무료 도구가 유지되는 방식
웹 변환기는 무료이고 가입이 없으며 광고가 붙습니다. 나중에 알아차리시게 두는 것보다 페이지에 적어 두는 편이 정직하다고 봅니다. 이 사이트는 광고로 수익을 얻고, 여러분의 문서로는 수익을 얻지 않습니다.
얻을 수도 없습니다. 이는 믿어 달라고 부탁하는 방침이 아니라 구조가 그렇다는 뜻입니다. 브라우저에서 변환된 파일은 저희에게 도달하지 않습니다. 업로드가 없으니 캐낼 것도, 학습시킬 것도, 팔 것도 되는 PDF 더미가 이곳에 존재하지 않습니다.
광고는 동의하신 뒤에만 불러옵니다. 쿠키 배너에서 광고 항목을 거부하시면 광고 스크립트는 하나도 로드되지 않습니다. 광고를 덜 보여 주는 스크립트가 아니라, 아예 없습니다. 분석 도구도 마찬가지입니다. 두 항목 모두 켜시기 전까지는 꺼져 있으며, 나중에 생각을 바꾸실 수 있도록 바닥글에 링크가 있습니다.
이 사이트의 어떤 페이지도 결제를 요구하지 않습니다. 살 것도, 올라갈 상위 요금제도, 만들 계정도 없습니다.
하지 않는 일
- 브라우저에서 변환한 문서를 업로드하지 않습니다. 그렇게 할 수 있는 코드 경로 자체가 없습니다.
- 웹 변환기를 쓰시는 데 계정도, 이메일 주소도, 로그인도 요구하지 않습니다.
- 어떤 문서나 변환 결과도 저장하거나 색인하거나 학습에 쓰거나 판매하지 않습니다.
- 해당 항목에 동의하시기 전에는 광고와 분석 도구를 불러오지 않습니다.
- 변환하신 문서나 돌려받으신 Markdown에 대해 어떠한 권리도 주장하지 않습니다.
무엇으로 만들었는가
안심시키는 말보다 구체적인 사양을 원하시는 분께:
| PDF 파싱 | PDF.js, 브라우저의 Web Worker에서 실행 |
|---|---|
| 구조 검출 | 좌표가 있는 텍스트 조각을 다루는 자체 공간 분석기 |
| 출력 형식 | GitHub Flavored Markdown, 파이프 표 포함 |
| 애플리케이션 | Next.js(App Router), React, TypeScript |
| 인터페이스 언어 | 10개, 아랍어 오른쪽에서 왼쪽 지원 포함 |
| 최대 파일 크기 | 50 MB |
| 비용 | 무료, 광고 기반, 계정 불필요 |
| 운영 | MyPDF2MD.com, Kozhikode, Kerala, India |
정정
이 사이트에 잘못된 내용이 있다면 — 안내 문서의 사실 오류, 저희가 설명하지 않은 방식으로 실패하는 변환, 이 페이지의 서술과 실제 동작의 불일치 등 — support@mypdf2md.com로 알려 주십시오. 고치고 무엇을 바꾸었는지 밝히겠습니다. 이 페이지 위쪽의 날짜는 내용을 제품과 마지막으로 대조한 날입니다.