블로그 이미지
잡다한 취미 생활 및 일상에 대한 소소한 이야기를 적어나가는 블로그입니다.
붉은kkk

공지사항

최근에 올라온 글

최근에 달린 댓글

글 보관함

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

- HTML to PDF -


웹에 있는 HTML을 PDF로 변환해야될 일이 생겨서 파이썬으로 구현해보았습니다.


PDF관련 라이브러리들이 동작안되는 것들이 꽤 있어서 현시점 기준 작동하는 라이브러리로 설명 드리겠습니다.


필요한 준비물

1. PDFkit (https://pypi.org/project/pdfkit/)

2. WKHTMLTOPDF (https://wkhtmltopdf.org/downloads.html)


PDFkit은 pip으로 install 해 줍니다.

 

 pip install PDFkit



WKHTMLTOPDF는 다운로드 페이지에서 사용하고 있는 OS에 맞는 버전을 선택하여 설치해 주시면 됩니다.




[예제 Sample]

import pdfkit

pdfkit.from_url('http://google.com', 'out.pdf')
pdfkit.from_file('test.html', 'out.pdf')
pdfkit.from_string('hello!', 'out.pdf)



...


분명 에제를 따라 했는데...

안되더군요. 에러가 딱!!!


...


네, 처음 보이던 샘플코드로 끝이 아니었습니다. 조금 더 설정해 줘야될 부분이 남아있었습니다.





같이 기재해두면 되지, 이렇게 띄엄띄엄 분리를 해놔서 잠시 헤맸네요.


...블라블라... path설정을 해줘라! 라는 내용이네요.

다시 적용해서 예제 코드를 변경하면



[예제 Sample]

import pdfkit config = pdfkit.configuration(wkhtmltopdf='C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe')
pdfkit.from_url('http://google.com', 'out.pdf', configuration=config)


잘 됩니다!!! 



휴~ HTML to PDF도 이제 완료!


고민하는 만큼 늘어나는 코딩실력, 프로그래밍이 점점 재밌어 지고 있습니다.

ㅎㅎ 즐거운 파이썬 되세요^^








이번엔 PDF파일에서 텍스트 내용을 발췌하는 방법에 대해서 연습을 해볼게요.


회사 업무를 하다 보면 종종 PDF로 되어 있는 문서에서 텍스트를 가져오고 싶은데, 

원활하게 복사가 되지 않았던 경험이 다들 한번 씩은 있을 거에요.


그 불편함을 해소하고자, 전체 텍스트 부분을 뽑아내서 텍스트 파일로 저장하는 프로그램을 만들어 볼 겁니다.

(PDF파일에서 내용을 보고 정리하는 작업이 많을 때는 유용할 거 같네요^^)



1. 준비물

   - JDK (JAVA Development Kit) 

    - Tika 

      : PDF에서 텍스트를 뽑아낼 수 있게 해주는 라이브러리 

        (자바로 작성된 거 같네요, 이 라이브러리를 사용하기 위해서 JDK가 필요하답니다.)

    - 텍스트 추출할 PDF파일 (sample.pdf)

   → JDK 설치 과정은 생략할게요. 



2. Tika 라이브러리 설치

   - pip install tika 

     : 이걸 먼저 해주시고... 이것만 하면 끝이날 것 같았는데, 피곤한 과정이 남아 있네요. 

      (제 PC에서만 그런걸 수 도 있는데, 우선은 다 알려드리겠습니다.)


    - Source code 작성

     

      #-*- encoding:utf-8

      from tika import parser

      print("텍스트 파일을 추출할 PDF파일명을 입력하세요.")

      PDFfileName = input()


      print("텍스트 파일은 다음 폴더에 저장됩니다.")
      print("D:\data")

      inputpath = PDFfileName


     parsed = parser.from_file(PDFfileName)
     print(parsed["content"])

     fileOut = open('fileOut.txt', 'w', encoding='utf-8')

     print(parsed['content'], file=fileOut)

     fileOut.close()

   

     Source code는 본인이 직접 타이핑 해보면서, 한줄 한줄 왜 이렇게 작성되어 있는지 

         고민해보시면 될 거  같습니다. 어렵지 않으니 따로 설명은 하지 않을게요.

         (보시면 필요없는 라인도 있고 하니까, 자기 입맛에 맞춰서 만들어 주시면되요, 

          중간 중간 보이는 인자들은 어떤건지 궁금하다면 그 해당 명령어 or 함수에 대한 내용을 검색하면

          친절한 설명을 찾아볼 수 있답니다.

          영어 검색을 추천드려요^^)

      

음... 문제가 있네요. 


에러내용

1) Retriving http://search....\tika-server-1.19.jar to ...\temp\tika-server.jar.md5

2) Retriving http://search....\tika-server-1.19.jar to ...\temp\tika-server.jar


3. 문제 해결

    - 2개의 에러가 발생했어요. 

       느낌적으로 tika-server-1.19.jar파일을 복사하려는거 같은데 뭔가 잘 되지 않은거 같네요.

       제가 해결한 방법은 직접 서버로 찾아가서 (http:// 주소를 입력) tika-server-1.19.jar 파일을 다운로드

       했습니다.

       그 후에 복사하려던 폴더에 복사를 하고 이름도 똑같이 바꿔줬어요.

       tika-server-1.19.jar → tika-server.jar

       (tika-server.jar.md5는 생략했습니다. jar파일만 복사시 작동이 되서 굳이 하지 않았어요)


4. 프로그램 수행

    - 이제 미리 준비해 둔 sample.pdf의 텍스트 내용을 추출해서 파일로 만들어 볼게요.

    - Sample.pdf의 내용은 아래와 같습니다.

 

[Sample.pdf 내용]

    


    - 프로그램 수행 결과 : 에러가 사라지고 동작이 잘 됩니다.


[프로그램 수행결과]


    - 추출한 내용이 쉘에서 보이지 않는 것 같았으나, 스크롤바를 내려보니 잘 추출된 걸 확인 할 수 있었습니다.

     (성공입니다^^)

    

 

    - 파일도 만들라고 프로그래밍을 했었으니까, 잘 만들어졌는지 확인 해 볼게요.


(폴더에 fileOut.txt가 생성되어 있네요, 이것도 성공^^)


파일내용도 문제가 없는 것을 확인했습니다.  성공적이네요^^


다음에 또 재미난 내용으로 찾아올게요.


이전 1 다음