Я пытался найти эффективный способ преобразования документа, например. doc, docx, ppt, pptx to pdf. До сих пор я пробовал docsplit и oowriter
, но оба заняли> 10 секунд, чтобы завершить работу на pptx file с размером 1.7MB. Может ли кто-нибудь предложить мне лучший способ или предложения улучшить мой подход?Эффективный способ преобразования документа в формат PDF
Что я пробовал:
from subprocess import Popen, PIPE
import time
def convert(src, dst):
d = {'src': src, 'dst': dst}
commands = [
'/usr/bin/docsplit pdf --output %(dst)s %(src)s' % d,
'oowriter --headless -convert-to pdf:writer_pdf_Export %(dst)s %(src)s' % d,
]
for i in range(len(commands)):
command = commands[i]
st = time.time()
process = Popen(command, stdout=PIPE, stderr=PIPE, shell=True) # I am aware of consequences of using `shell=True`
out, err = process.communicate()
errcode = process.returncode
if errcode != 0:
raise Exception(err)
en = time.time() - st
print 'Command %s: Completed in %s seconds' % (str(i+1), str(round(en, 2)))
if __name__ == '__main__':
src = '/path/to/source/file/'
dst = '/path/to/destination/folder/'
convert(src, dst)
Выход:
Command 1: Completed in 11.91 seconds
Command 2: Completed in 11.55 seconds
Окружающая среда:
- Linux - Ubuntu 12,04
- Python 2.7.3
Дополнительные инструменты результат:
- jodconverter занял 11,32 секунды
Обратите внимание, что это не настоящий бенчмарк. Единственный результат не имеет смысла. Результаты должны быть рассчитаны как среднее из многих испытаний, а также должно быть представлено как минимум стандартное отклонение. – BartoszKP
@BartoszKP Спасибо за разъяснение. Я выбрал неправильное слово. –
Ну, так как вы заинтересованы в эффективности, «эталон» - это правильное слово для использования, потому что это инструмент для измерения эффективности.Так что ваш код неправильный, а не слова :) – BartoszKP