Programming

    [openhtmltopdf] HTML을 PDF로 변환하기

    공식 GitHub URL : https://github.com/danfickle/openhtmltopdf 1. Dependency 추가 org.jsoup jsoup 1.13.1 com.openhtmltopdf openhtmltopdf-core 1.0.6 com.openhtmltopdf openhtmltopdf-pdfbox 1.0.6 2. Sample code // html 파일 ClassPathResource resource = new ClassPathResource("pdf/industry-application.html"); String outputFile = "output.pdf"; // HTML 읽기 String html = new String(Files.readAllBytes(Paths.get(r..

    [Apache Tika] 문서파일에서 텍스트 추출하기

    [Apache Tika] 문서파일에서 텍스트 추출하기

    아파치 티카(Apach Tika) 란? 티카(Tika)는 아파치 소프트웨어 재단에서 운영하는 콘텐츠 감지 및 분석 프레임워크입니다. 다양한 유형의 파일(pdf, zip, ppt, csv, Image format, Vidio foramts... 등)에서 메타데이터와 텍스트를 감지하고 추출할 수 있습니다. Maven Dependency 추가 org.apache.tika tika-core 2.6.0 org.apache.tika tika-parsers-standard-package 2.6.0 Example Code public void parse(File file) throws Exception { BodyContentHandler handler = new BodyContentHandler(-1); AutoDe..

    애니메이션 이미지인지 아닌지 체크하는 방법(Check image animated or not in JAVA)

    private boolean isAnimatedImage(String imageFilePath) throws IOException { File f = new File(imageFilePath); ImageInputStream iis = ImageIO.createImageInputStream(f); ImageReader is = ImageIO.getImageReadersBySuffix("GIF").next(); is.setInput(iis); int imageCnt = is.getNumImages(true); // imageCnt가 0보다 크다면 애니메이션 이미지 if(imageCnt > 0) return true; else return false; } 파일이 외부 이미지 링크(URL)라면 private ..

    [BufferedImage] 이미지 이진화(Image Binarize)

    private void binarize(BufferedImage image) { for (int i = 0; i 127 ? Color.white.getRGB() : Color.black.getRGB()); } private int gamma(int rgb) { return (red(rgb) + green(rgb) + blue(rgb)) / 3; } private int red(int rgb) { return (rgb >> 16) & 0x000000FF; } private int green(int rg..

    [Tesseract] 이미지에서 텍스트 추출하기 (OCR)

    OCR 이란? OCR(Optical Character Recognition)은 광학 문자 인식이라는 뜻으로, 텍스트 이미지를 기계가 읽을 수 있는 텍스트 포맷을 변환하는 과정입니다. 테서랙트(Tesseract) 란? 테서랙트(Tesseract)는 OCR 엔진 중 하나로 다양한 운영체제를 위한 광학 문자 인식(OCR) 엔진입니다. 이 소프트웨어는 Apache License, 버전 2.0에 따라 배포되는 무료 소프트웨어이며 Google에서 개발을 후원했습니다. Tesseract 공식 문서 Tesseract documentation Documentation tesseract-ocr.github.io 의존성 추가 net.sourceforge.tess4j tess4j 4.5.2 tessdata 다운로드(LSTM ..

    [HttpClient] 마지막 Redirect URL 구하기

    HttpClient 라이브러리를 이용해 REST API를 호출하거나, HTML 코드를 가져오기도 합니다. 그런데 요청 URL이 리다이렉트(Redirect)가 되어 URL이 바뀌기도 합니다. 이렇게 Redirect 되면서 주소가 바뀌는 URL의 마지막으로 Redirect되는 URL를 구하는 방법을 작성합니다. CloseableHttpClient httpclient = HttpClients.createDefault(); HttpClientContext context = HttpClientContext.create(); HttpGet httpget = new HttpGet(url); CloseableHttpResponse response = httpclient.execute(httpget, context); ..

    [Mybatis] PostgreSQL ilike 구현하기(feat. Criteria 커스텀하기)

    Mybatis Generator를 이용하여 만든 Example에는 원하는 연산자가 없을 수 있습니다. Example클래스 내에 Criteria를 커스텀해서 원하는 연산자를 사용하는 방법을 알아보겠습니다. 사실 Generator를 사용하여 만들어지는 Mapper와 xml등은 mybatis-config.xml에 설정되어 있는대로 만들어지는데, 확실한 방법은 원하는 연산자를 사용할 수 있는 Criteria를 만들어주는 plugin을 구현하 것이 추후에 반복적으로 코딩하지 않아도 될 것입니다.(generator할 때 만든 plugin을 통해서 원하는 메소드를 자동으로 생성 할 수 있기 때문) 그러나 이 포스팅에서는 당장 plugin은 만들기 어렵고, 프로젝트 내에서 간단히 해결하고 싶을 때 어떻게 작업했는지 작..

    [POI] 대용량 엑셀 다운로드 SXSSFWorkbook

    Java에서 엑셀을 다루기 위해서는 POI 라이브러리를 사용합니다. POI에는 HSSF, XSSF, SXSSF 세가지 방식을 지원하는데, 대용량 엑셀 다운로드를 구현하기 위해서는 SXSSF방식으로 구현해야합니다. HSSF : EXCEL 2007 이전 버전(.xls) - 65535 라인까지 사용가능 XSSF : EXCEL 2007 이후 버전(2007포함 .xlsx) - 65535 라인 이상 사용가능 SXSSF : XSSF의 Streaming Version으로 메모리를 적게 사용 - 65535 라인 이상 사용가능 XSSF는 파일을 다운로드 시 메모리에 파일 데이터를 쌓아두었다고 다운로드 받는 방식이면, SXSSF는 임시 파일을 생성해 중간중간 임시파일에 작성하여 메모리를 적게 사용합니다. Dependency..