PDF 또는 이미지(JPG/PNG)를 여기로 끌어다 놓거나 클릭해서 선택하세요
여러 파일을 한 번에 올리면 업로드한 순서대로 페이지가 추가됩니다
카드를 드래그하거나 ▲▼ 버튼을 눌러 페이지 순서를 바꿀 수 있어요
업로드한 페이지가 없습니다. 위에서 파일을 추가해 주세요.
지난번에 이미지 변환 도구를 만들고 나니, 문득 PDF도 브라우저 안에서 다 처리할 수 있지 않을까 하는 생각이 들었습니다. 회사 컴퓨터에는 프로그램이 깔려 있어서 PDF 페이지를 나누거나 합치는 게 별로 어렵지 않은데, 집에서 개인 노트북으로 서류 파일 하나를 급하게 정리해야 할 때는 그런 프로그램이 없어서 매번 아쉬웠습니다. 이미지 도구를 만들면서 이번엔 PDF 쪽도 직접 만들어보기로 했습니다.
업로드한 PDF나 이미지는 서버로 전송되지 않습니다. 합치기, 페이지 삭제, 회전, 이미지 변환까지 전부 방문하신 분의 브라우저 안에서 처리되고, 결과물만 다운로드로 받아가는 구조예요. 계속 써보면서 고치고 있는 개인 프로젝트라 아직 어색한 부분이 있을 수 있습니다.
사용하는 방법
업로드 → 순서 변경·회전·삭제 → PDF 저장 또는 이미지로 내보내기
맨 위 업로드 영역에 PDF나 이미지(JPG, PNG)를 끌어다 놓거나 클릭해서 올리면 됩니다. 파일을 여러 개 한꺼번에 올리면 올린 순서대로 페이지가 죽 쌓이는데, 이 방식 덕분에 PDF 여러 개를 합치는 것도, PDF와 사진을 섞어서 하나로 만드는 것도 그냥 한 번에 업로드하는 것만으로 끝납니다.
- 페이지가 쌓이면 카드 형태로 미리보기가 뜹니다. 카드를 마우스로 드래그하거나 카드에 있는 ▲▼ 버튼을 눌러서 순서를 바꿀 수 있어요. 드래그가 익숙하지 않으면 버튼만 눌러도 충분합니다.
- 회전 아이콘을 누르면 그 페이지만 90도씩 돌아가고, 체크박스로 여러 장을 고른 뒤 위쪽 "선택 회전" 버튼을 누르면 한 번에 여러 장을 같이 돌릴 수 있습니다. 필요 없는 페이지는 체크 후 "선택 삭제"로 지우면 됩니다.
- 정리가 끝나면 아래 버튼 중 하나를 고르면 됩니다. "전체를 PDF로 저장"은 지금 보이는 순서·회전 상태 그대로 새 PDF 한 개로 묶어주고, "선택한 페이지만 새 PDF로 추출"은 체크한 페이지만 골라서 별도 PDF로 뽑아줍니다. "이미지로 내보내기"는 페이지를 PNG나 JPG로 바꿔주는데, 여러 장을 골랐으면 zip 파일 하나로 묶여서 내려받아집니다.
이미지를 페이지로 올린 경우엔 "전체를 PDF로 저장"을 눌렀을 때 A4 용지 가운데에 맞춰서 자동으로 배치됩니다. 사진 한 장을 PDF로 뽑아서 인쇄하거나 제출해야 할 때 쓰기 좋더라고요.
회전은 왜 페이지를 다시 그리지 않고 처리할까
처음에는 페이지를 회전시키려면 그 페이지를 이미지로 한 번 렌더링한 다음 돌려서 다시
PDF에 끼워 넣어야 하는 줄 알았습니다. 그런데 그렇게 하면 텍스트가 있는 PDF는 화질이
떨어지고, 나중에 텍스트를 복사하거나 검색하는 것도 안 되게 됩니다. 알고 보니 PDF 페이지에는
/Rotate라는 속성이 원래부터 있어서, 이 값만 90도 단위로 바꿔주면 뷰어가 알아서
그 각도로 돌려서 보여줍니다. 그래서 이 도구도 회전 버튼을 누르면 페이지 내용은 그대로 두고
이 값만 바꾸는 방식으로 처리했어요. 화질 손실도 없고 속도도 훨씬 빠릅니다.
반대로 사진을 페이지로 넣을 때는 이 방법을 못 씁니다. 사진은 그 자체로 회전 정보가 따로 없어서, 캔버스에 그린 다음 실제로 픽셀을 돌려서 저장해야 하거든요. 이 과정에서 좌표를 맞추다가 좀 헤맸는데, 화면에서 쓰는 캔버스는 왼쪽 위가 기준점(0,0)인 반면 PDF 내부 좌표는 왼쪽 아래가 기준점이라 방향이 반대입니다. 회전 각도를 계산할 때 이 차이를 깜빡하면 이미지가 엉뚱한 방향으로 돌아가거나 페이지 밖으로 밀려나 버려서, 결국 두 좌표계를 표로 그려가며 하나씩 맞춰봤습니다.

0 댓글