문서에 담긴 것, 그리고 변환이 그것을 어떻게 다루는가
.docx는 XML 파일들을 ZIP으로 묶은 것이며, 문서를 문서답게 만드는 것은 대부분 텍스트가 아닙니다. 여러 문단이 함께 쓰는 ‘제목 1’ 같은 이름 붙은 정의인 스타일이 있고, 누군가 줄을 선택해 굵게를 누른 직접 서식이 있습니다. 둘은 똑같아 보이지만 변환할 때 완전히 다르게 동작합니다. 스타일은 스타일로 남지만, 직접 서식은 그 결과로 나타난 서식으로만 남습니다. 이와 함께 번호 매기기 정의, 변경 내용 추적, 메모, 각주, 머리글과 바닥글, 텍스트 상자, 포함된 글꼴, 문서 속성이 문단 텍스트와 따로 저장되어 있습니다.
목록 번호가 가장 분명한 예입니다. Word는 “1.”을 텍스트로 저장하지 않습니다. 번호 매기기 정의에 대한 참조를 저장하고, 페이지를 그릴 때 번호를 계산합니다. 그래서 문단 XML만 훑는 텍스트 추출 도구는 번호를 모두 빠뜨리고 번호 없는 목록을 내놓습니다. DOCX TXT 변환은 “1.”, “1.1”, “a)”, “iii.” 같은 번호를 다시 만들어 내며, 문서 중간에 다시 시작하거나 이어지는 목록까지 처리합니다.
변경 내용 추적과 메모는 우연이 아니라 선택의 문제입니다. 검토 중인 문서에는 삭제된 텍스트와 삽입된 텍스트가 같은 파일 안에 표시된 채로 함께 들어 있습니다. DOCX TXT 변환은 모든 변경 내용을 수락한 것처럼 읽습니다. 삽입은 남기고 삭제는 뺍니다. 메모는 아예 포함하지 않는데, 일반 텍스트를 공개된 곳에 올릴 때는 보통 이쪽이 바라는 결과입니다. 각주와 미주는 [1] 표시로 나오고 내용은 끝에 모아지며, 머리글과 바닥글은 켤 수 있고, 텍스트 상자는 반복되거나 사라지지 않고 읽는 순서대로 한 번씩 나옵니다.
PDF 변환이 고정하는 것은 페이지 나눔입니다. 워드프로세서에서는 4페이지가 어디서 끝나는지를 파일을 열 때마다 연 사람의 글꼴과 프린터 드라이버로 다시 계산합니다. 그래서 내 컴퓨터에서는 멀쩡한 표가 받는 사람 쪽에서는 두 페이지에 걸쳐 나뉘어 도착합니다. PDF에는 이런 재계산이 없습니다. 페이지 나눔은 변환할 때 한 번 정해지고, 이제 파일의 고정된 사실이 됩니다. 워드 PDF 변환, ODT PDF 변환, RTF PDF 변환은 브라우저가 흉내 낸 레이아웃이 아니라 완전한 워드프로세서 레이아웃에서 페이지 나눔을 가져오므로, 텍스트 상자, 도형, 머리글과 바닥글이 작성자가 둔 자리에 그대로 놓입니다.
잃는 것은 편집 가능성과 리플로우입니다. 스타일은 시각적인 서식이 되고, 개요는 책갈피가 되며, 텍스트는 더 이상 휴대폰 화면에 맞춰 다시 줄바꿈되지 않습니다. 문서에 포함된 글꼴은 그대로 쓰입니다. 포함되지도 않았고 변환기에도 없는 글꼴은 글자 폭이 호환되는 가장 가까운 글꼴로 대체되므로, 글자 모양은 달라져도 줄은 같은 위치에서 바뀝니다.
전자책에는 보존할 페이지가 없습니다. EPUB, MOBI, AZW3는 리플로우 형식이라 사용자가 고른 글자 크기에 맞춰 리더 앱이 각 페이지가 어디서 끝날지 정합니다. 그래서 “40페이지”은 책의 속성이 아니며, PDF의 페이지 나눔은 변환할 때 사용자가 고른 페이지 크기와 여백으로 새로 만들어집니다. 파일에 들어 있는 것은 장 구조와 목차이며, 이것들은 실제 PDF 링크와 책갈피가 됩니다. AZW3에는 스타일시트와 대개 포함된 글꼴이 있어서 출판사가 디자인한 모습 그대로 나옵니다. 오래된 MOBI 파일에는 스타일시트가 아예 없어서, 변환한 MOBI가 Kindle 앱에서 보던 같은 책보다 밋밋해 보입니다. 파일에 없던 타이포그래피를 앱이 더해 주고 있었던 것입니다.
RTF는 처음부터 끝까지 텍스트입니다. 그래서 수십 년 동안 소프트웨어가 바뀌어도 살아남았습니다. 걸림돌은 문자 인코딩입니다. RTF는 유니코드보다 먼저 나와서 중부 유럽어, 키릴 문자, 그리스어, 일본어 같은 옛 코드 페이지로 텍스트를 저장하며, 잘못 변환한 RTF의 깨진 글자는 여기서 생깁니다. 이 도구는 최신 유니코드 텍스트와 함께 각 코드 페이지를 제대로 디코딩합니다.
브라우저가 정말 알맞지 않은 경우
이 도구 중 일부는 파일을 완전히 기기 안에서만 처리하고, 일부는 서버로 보냅니다. 어느 쪽인지 정확히 밝혀 둘 필요가 있습니다. PDF 텍스트 추출, TXT PDF 변환, DOCX TXT 변환, HTML DOCX 변환, 마크다운 HTML 변환은 아무것도 전송하지 않습니다. 파일은 바로 여기서 읽고, 변환하고, 저장되며, 밖으로 나가는 것은 없습니다. 워드 PDF 변환, ODT PDF 변환, RTF PDF 변환, HTML PDF 변환, 마크다운 PDF 변환, 그리고 전자책 변환 도구 세 가지는 저희 서버에서 변환합니다. 워드프로세서의 페이지 레이아웃을 재현하거나 책의 페이지를 제대로 나누는 것은 웹 페이지가 흉내 낼 수 있는 일이 아니기 때문입니다. 전송되는 것은 도구마다 다릅니다. 워드, ODT, RTF 문서는 그대로 보내고, 마크다운 파일과 전자책은 먼저 풀어서 웹 페이지로 조립한 뒤 그 조립된 페이지를 보냅니다. 어느 쪽이든 암호화된 연결로 전송되어 변환되고, 다운로드가 준비되는 즉시 삭제됩니다. 아무것도 저장, 기록, 공유되지 않습니다. 또한 서버에 연결할 수 없으면 각 도구가 자체 변환기로 대신 처리하며, 그렇게 했다는 사실과 대체 변환에서 유지하지 못한 것을 알려 드립니다.
열 수 없는 형식. Word 97–2003의 오래된 바이너리 .doc 파일은 서버가 직접 읽으므로 워드 PDF 변환에서는 잘 변환됩니다. 하지만 브라우저에서 처리하는 DOCX TXT 변환은 읽을 수 없어 .docx가 필요합니다. 비밀번호가 걸린 문서는 비밀번호를 설정한 프로그램에서 먼저 해제해야 합니다. DRM으로 보호된 Kindle 책은 세상 어떤 변환기로도 열 수 없으며, 그것이 보호의 목적입니다. Kindle 앱만 읽을 수 있는 Amazon의 새 KFX 형식도 열 수 없습니다.
긴 문서 작업. 마스터 문서, 상호 참조 필드, 색인, 자동 생성되는 인용 목록, 편지 병합, 인용 관리 프로그램은 워드프로세서의 기능이며, 변환기는 워드프로세서가 아닙니다. LibreOffice를 설치하세요. 무료이고, 이 페이지의 모든 형식을 읽으며, 이런 작업에는 그야말로 알맞은 프로그램입니다.
일괄 처리와 자동화. 이 도구들은 사람이 클릭할 때 실행됩니다. 파일 천 개를 정해진 일정에 따라 변환하는 것은 명령줄이 할 일이며, 무료 도구도 훌륭합니다. 헤드리스 모드의 LibreOffice는 Writer로 열 수 있는 것이면 무엇이든 변환하고, Pandoc은 마크다운, HTML, DOCX, LaTeX를 비롯한 십여 가지 형식을 어떤 웹 양식보다 세밀하게 오가며, Calibre는 전자책을 대량으로 처리하고 보호되지 않은 모든 전자책 형식 간에 변환합니다.
반대 방향으로 레이아웃을 충실히 재현하는 것. 디자인이 많이 들어간 PDF를 다시 편집 가능한 문서로 되돌리는 것은 변환이 아니라 추론의 문제이며, 무엇도 완벽하게 해내지 못합니다. 저희도, 비싼 데스크톱 제품도 마찬가지입니다. 원본 문서가 아직 있다면 그것을 편집하세요.
비슷해 보이는 도구 중 고르기
마크다운 PDF 변환과 마크다운 HTML 변환. 파서는 같고 목적지가 다릅니다. 마크다운 PDF 변환은 글꼴, 페이지 크기, 여백을 직접 고른 페이지 단위 문서를 만들며, 제목은 PDF 책갈피가 되고 목차를 누르면 해당 페이지로 이동합니다. 인쇄, 첨부, 보관용입니다. 마크다운 HTML 변환은 스타일이 적용된 독립 페이지나 CMS에 붙여 넣을 수 있는 순수 조각을 만듭니다. 게시용입니다. 마크다운을 워드로 옮기고 싶다면 마크다운 HTML 변환을 거친 뒤 HTML DOCX 변환을 쓰세요.
워드 PDF 변환, ODT PDF 변환, RTF PDF 변환. 내부 변환은 같고, 넣는 파일만 다릅니다. .docx는 워드 PDF 변환, LibreOffice, OpenOffice, Google Docs의 “OpenDocument 형식으로 다운로드”로 만든 파일은 ODT PDF 변환, WordPad, TextEdit, 그리고 업무 시스템이 아직도 내놓는 편지와 보고서는 RTF PDF 변환을 쓰세요. 확장자에 맞는 페이지를 고르는 것은 생각보다 중요하지 않습니다. 중요한 것은 이 중 어느 것도 TXT PDF 변환이 아니라는 점입니다. TXT에는 애초에 보존할 서식이 없으니까요.
TXT PDF 변환과 마크다운 PDF 변환. TXT PDF 변환은 텍스트를 텍스트 그대로 조판합니다. 글꼴 하나, 지정한 여백, 해석은 없습니다. 마크다운 PDF 변환은 #과 *를 명령으로 읽어 제목, 목록, 표, 강조 표시된 코드, 책갈피 개요를 만듭니다. 마크다운 파일을 TXT PDF 변환에 넣으면 별표가 그대로 찍힌 PDF가 나옵니다.
EPUB, MOBI, AZW3 PDF 변환. 세 가지 모두 이름보다 더 많은 형식을 받으므로 어느 것으로도 파일을 열 수 있습니다. 결과 페이지가 다른 것은 책이 다르기 때문입니다. EPUB와 AZW3(KF8)에는 스타일시트와 대개 포함된 글꼴이 있어 디자인된 모습으로 나옵니다. MOBI는 서식이 최소한인 옛 컨테이너라서, 변환된 PDF도 의도적으로 단순합니다. Kindle 파일에 두 레이아웃이 모두 들어 있다면 새 쪽을 사용합니다.
HTML DOCX 변환과 마크다운 HTML 변환. HTML DOCX 변환은 먼저 마크업의 레이아웃을 잡기 때문에, 계산된 CSS(글꼴, 크기, 색, 간격, 테두리)가 실제 Word 서식으로 문서에 기록됩니다. 제자리에 고정된 상자가 아니라 Word 제목 스타일, 진짜 목록, 진짜 표가 됩니다. 마크다운 HTML 변환은 그 마크업을 처음 만드는 도구입니다. 둘 다 JavaScript는 절대 실행하지 않습니다.
DOCX TXT 변환과 PDF 텍스트 추출. 둘 다 일반 텍스트를 주지만, 읽는 대상이 전혀 다릅니다. .docx는 문단, 목록, 표가 무엇인지 여전히 알고 있으므로 DOCX TXT 변환은 목록 번호를 다시 만들고 표의 행을 온전히 유지할 수 있습니다. PDF는 각 글자가 어디에 그려졌는지만 알기 때문에 PDF 텍스트 추출은 위치로 줄과 문단을 추론합니다. 결과는 좋지만 구조적으로 원본만큼 충실할 수는 없습니다. 원본 문서와 그 PDF가 모두 있다면 문서에서 추출하세요.
DOCX TXT 변환과 Word에서 .txt로 저장하기. Word 자체의 일반 텍스트 내보내기는 목록 번호를 빠뜨리고, 표를 망가뜨리고, 인코딩을 제멋대로 정합니다. DOCX TXT 변환은 번호를 다시 만들고, 표를 스프레드시트에 붙여 넣을 수 있는 탭 구분 행이나 중국어·일본어에서도 정렬이 유지되는 맞춤 열로 쓰며, 원하는 줄 끝 형식의 UTF-8로 저장합니다.