-
[chatGPT] chatGPT를 이용한 pdf 워터마크 씌우기개발공부/ETC 2023. 2. 9. 23:10
chatGPT가 장안의 화제이다
마침 내부적으로 pdf 기능 테스트를 해야할 일이 있어 이참에 한번 경험해 볼 겸 구글링 대신 chatGPT에게 물어봐서 테스트를 해보았다
구현하는 방법 뿐만 아니라 코드를 어떻게 짜야하는지 물어보니 코드까지 작성해주는 수준이라니..
실행시키면 정상동작하는걸 보니 AI 기술이 정말 많이 발전했음을 느끼고 있다
#01. pom.xml에 필요한 라이브러리 추가
<!-- pdf watermark --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13.1</version> </dependency>
#02. 테스트 코드
import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.BaseColor; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Font; import com.itextpdf.text.pdf.*; public class pdftest { public static void main(String[] args) { String dataDir = "파일경로"; try { // PDF 문서 읽어들이기 PdfReader reader = new PdfReader(dataDir + "inputTmp.pdf"); int n = reader.getNumberOfPages(); // PDF 문서 새로 생성하기 PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dataDir + "output.pdf")); // 글꼴 설정 BaseFont baseFont = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, true); //GrayColor의 생성자에서 0f~1f 사이의 값을 전달할 수 있으며, 0f는 투명하게, 1f는 불투명하게 렌더링 Font font = new Font(baseFont, 12, Font.NORMAL, BaseColor.GRAY); //색상 흐리게 PdfGState gstate = new PdfGState(); gstate.setFillOpacity(0.3f); // Watermark 생성 PdfContentByte watermark; for (int i = 1; i <= n; i++) { watermark = stamper.getOverContent(i); watermark.saveState(); watermark.setGState(gstate); watermark.beginText(); watermark.setFontAndSize(font.getBaseFont(), 42); watermark.showTextAligned(PdfContentByte.ALIGN_CENTER, "WATERMARK TEST", 297, 230, 45); watermark.endText(); watermark.restoreState(); } stamper.close(); reader.close(); } catch (IOException | DocumentException e) { e.printStackTrace(); } } }
#03. 결과
원본 pdf 워터마크 적용 pdf '개발공부 > ETC' 카테고리의 다른 글
.NET 프로젝트 실행하기 (0) 2022.12.12