우당탕탕 개발일기
PDF 파일에 있는 메타데이터 없애기 본문
기본으로 나오는 크롬 뷰어를 사용하고 있는데 간간히 파일명에 설정한 적 없는 정보가 노출될 때가 있었다.
파일명인 줄 알았지만 단순 파일명이 아니었다.
찾아보니, pdf에 있는 메타데이터가 있을 경우 뷰어에 우선적으로 노출된다고 했다.
따라서 해당 부분을 없애려면 PDF에 설정되어있는 메타데이터를 없애야하는 것.
하지만 이미 수십개의 파일이 메타데이터가 설정된 채 pdf가 만들어져있어 해당 파일들의 메타데이터 제거 방법이 필요했다.
다행히(?)도 관련 라이브러리가 있어서 활용했다!💡
https://www.npmjs.com/package/exiftool-vendored
exiftool-vendored
Efficient, cross-platform access to ExifTool. Latest version: 30.3.0, last published: 2 months ago. Start using exiftool-vendored in your project by running `npm i exiftool-vendored`. There are 72 other projects in the npm registry using exiftool-vendored.
www.npmjs.com
해당 파일을 우리에게 업로드 할 때 업로드하는 파일의 메타데이터의 여부를 확인한 후 메타데이터가 있으면 삭제하게끔 작성했다.
// @15를 사용하고 있어 require 사용
const { exiftool } = require("exiftool-vendored");
...
const pdfMetaData = await exiftool.read(파일경로);
// 위에서 async 있음
if (pdfMetaData.Title) {
await exiftool.write(파일경로, {Title: null});
}
...
나는 Title이 노출되는게 문제였어서 Title만 null로 만들어주었다.
그랬더니 크롬 뷰어에 나오던 메타데이터 Title이 깔끔하게 사라진 것을 확인!
(📑참고. 메타데이터 없으면 '파일명'을 사용한다!)
'What I Learned > etc.' 카테고리의 다른 글
[git] 내 레포에 다른 레포 코드 클론하기 (0) | 2025.07.15 |
---|---|
[리눅스/puTTY] 리눅스에서 파일 복사 붙여넣기 (0) | 2025.01.14 |
[VSCode] Delete `␍`eslint 해결 방법(feat. CRLF와 LF) (1) | 2024.12.23 |
ESLint 설정 가능한 규칙들 (0) | 2023.09.18 |
npm run dev 에러도 없고, 실행도 되지 않을 때 (0) | 2023.09.12 |