Python/2.7 information

python .doc to .pdf, .xls to .pdf

qkqhxla1 2015. 8. 3. 16:37

공부때문에 이것저것 자료를 찾아보고 있는데, 자료가 .doc확장자로 있다. 개인사정으로 doc확장자인 

파일을 열지 못해서, 변환 프로그램을 찾아보려다가 파이썬에 더 간단한 방법이 있음을 알았다. 


http://stackoverflow.com/questions/6011115/doc-to-pdf-using-python


소스 그대로 가져왔다. in_file에는 basic.doc라는 파일이 있을경우 이름인 basic만 넣어주고, 

out_file에도 .pdf는 알아서 붙여서 나오므로 이름만 넣어준다. pdf가 만들어지기 까지 5~10초정도 걸린다.

# -*- encoding: cp949 -*-
import sys
import os
import comtypes.client

wdFormatPDF = 17

in_file = os.path.abspath('basic')
out_file = os.path.abspath('basic_pdf')

word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(in_file)
doc.SaveAs(out_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()

수정가능한 hwp로 변환하려면 https://pypi.python.org/pypi/pyhwp 이 라이브러리를 사용하면 될거같다.




추가.

엑셀파일을 pdf로 변환하는방법.

# -*- encoding: cp949 -*-
import os
from win32com import client
xlApp = client.Dispatch("Excel.Application")
books = xlApp.Workbooks.Open(os.path.abspath(r'C:\Users\Ko\Documents\visual studio 2012\Projects\PythonApplication37\pay.xls'))
ws = books.Worksheets[0]
ws.Visible = 1
ws.ExportAsFixedFormat(0, os.path.abspath(r'C:\Users\Ko\Documents\visual studio 2012\Projects\PythonApplication37\pay.pdf'))

위처럼 하면 된다. 주의점이 있는데, 파일을 열때 반드시 os.path.abspath로 절대경로로 열어줘야 한다. 일반적으로 파이썬에서 파일을 열 경우 현재 실행되는 파이썬 어플리케이션과 같은 파일내에 있으면 그냥 파일 이름만 써줘도 되는데, 저기서는 그냥 파일 이름만 쓸 경우 현재 실행되는 파이썬 어플리케이션이 아닌 엑셀과 같은 파일 내부에서 찾는것 같다. 반드시 파일을 열때에는 절대경로로 써줘야 한다!!.