python - pdf24 - Una forma eficiente de convertir documentos a formato pdf.
leer pdf en python (4)
He estado tratando de encontrar la manera eficiente de convertir documentos, por ejemplo, doc, docx, ppt, pptx a pdf. Hasta ahora he probado docsplit y oowriter
, pero ambos tardaron más de 10 segundos en completar el trabajo en un archivo pptx con un tamaño de 1.7 MB. ¿Puede alguien sugerirme una mejor manera o sugerencias para mejorar mi enfoque?
Lo que he intentado:
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)
Salida:
Command 1: Completed in 11.91 seconds
Command 2: Completed in 11.55 seconds
Ambiente:
- Linux - Ubuntu 12.04
- Python 2.7.3
Más herramientas resultan:
- jodconverter tomó 11.32 segundos
Desafortunadamente, no tengo tiempo para hacer una prueba completa, pero es posible que desee revisar xtopdf, mi kit de herramientas de Python para la creación de PDF. No hace el rango completo de conversiones que desea, y algunas de las conversiones tienen limitaciones, pero pueden ser de utilidad. enlaces xtopdf:
Presentación en línea sobre xtopdf: un buen resumen de lo que es, lo que hace, plataformas, funciones, usuarios, usos, etc .: http://slid.es/vasudevram/xtopdf
xtopdf en Bitbucket: https://bitbucket.org/vasudevram/xtopdf
Muchas publicaciones de blog que muestran cómo usar xtopdf para varios propósitos, incluyendo muchas que muestran cómo usarlo para convertir diferentes formatos de entrada a PDF: http://jugad2.blogspot.com/search/label/xtopdf
HTH, Vasudev Ram
Intente llamar a unoconv desde su código Python, tardó 8 segundos en mi máquina local, no sé si es lo suficientemente rápido para usted:
time unoconv 15./ Text-Files.pptx
real 0m8.604s
Para doc y docx (pero no ppt / pptx), puede probar nuestro motor de renderización de alta fidelidad independiente (pero comercial) en línea en OnlineDemo/docx_to_pdf
Por "alta fidelidad", quiero decir que está diseñado desde cero para tener los mismos saltos de línea y párrafo, tabulaciones, etc., como Microsoft Word.
Pandoc es una herramienta maravillosa capaz de hacer lo que quieras rápidamente. Ya que estás usando Popen para desembolsar efectivamente el comando de la herramienta, no importa en qué idioma está escrita la herramienta (Pandoc está escrito en Haskell).