기타

PDF에 글자가 뒤집혀서 들어가는 이유(Feat: Microsoft Print to PDF)

수수한 인간 2025. 3. 1. 21:02

최근 발생했던 문제에 대해서 회고하기 위해 작성한 글입니다.
pdfBox를 이용하여 PDF에 텍스트나 이미지를 넣는 작업을 진행 중이였는데 특정한 파일에서 글자나 이미지가 180도 뒤집혀서 PDF에 입력되는 현상이 발생했습니다.
MS Office나 한글파일에서 내보내기나 다른 이름으로 작성으로 만든 PDF는 정상적으로 위치가 맞게 입력되었습니다.

해당 이미지의 PDF 생성자에 "Microsoft Print to PDF" 라고 적혀 있는 파일만 pdfBox를 이용한 텍스트 및 이미지 삽입할 때 위치가 이상하고 좌표가 뒤집히는 것을 발견했습니다.
알고보니 Microsoft Print to PDF으로 만드는 이미지는 PDF 좌표계(좌표 원점을 왼쪽 하단(0,0))가 아닌 Windows의 GDI(Graphics Device Interface) 을 사용한 좌표계였습니다.
Windows의 GDI좌표계는 좌표 원점이 왼쪽 상단이 (0,0)이며, Y 값이 증가할수록 아래로 내려갑니다. GDI는 모니터 화면과 프린터 드라이버에 사용되는 좌표계입니다.

해당 문제를 해결하기 위해서는 특정 PDF 생성자일 경우 GDI 좌표계로 계산하여 입력하도록 프로그램을 수정하여야합니다.
확인해보니 다양한 PDF 생성자 종류가 있었고 일부는 GDI좌표계나 글자 크기가 달라지는 현상이 발견되었습니다.
PDF 생성자를 찾아서 해당 좌표계나 특성에 맞게 변환하는 것보다 하나의 포맷으로 입력하는 것이 더 좋다고 판단하였습니다.
그래서 기존에 사용하고 있던 문서변환 솔루션을 이용하여 모든 PDF를 특정 PDF 포맷으로 변환하여 문제를 해결하였습니다.