Intereting Posts
Отправка электронной почты с PHP с помощью SMTP и электронной почты идет на спам. Какой будет самый простой способ отправить электронную почту во входящие? Эффективное объединение 3 таблиц в MYSQL Как проанализировать facebook api XML онлайн, чтобы получить «понравившийся» счет? Как запросить базу данных с помощью javascript? Как использовать Wine из Apache / Php? – '/ var / www' не принадлежит вам Удалить данные EXIF ​​из JPG с помощью PHP file_get_contents () / curl получает неожиданную страницу Значения флажка в запросе mysql В чем смысл имени маркера PHP T_PAAMAYIM_NEKUDOTAYIM? Плагин проверки jQuery с обработчиком ajax submit не работает Неожиданный конец ввода JSON при отправке данных tinyMCE с использованием Ajax Как трюк XOR для замены двух переменных действительно работает на строке? Маршрут Laravel – многократный маршрут Запись в электронную таблицу Документов Google с использованием PHP Как отсортировать массив на основе определенного поля в массиве?

Команда `libreoffice –headless –convert-to pdf test.docx –outdir / pdf` не работает

Я должен ждать долго после использования этой команды LibreOffice, которая предназначена для преобразования DOCX в PDF:

libreoffice --headless --convert-to pdf test.docx --outdir /pdf

Но я не получаю ответа и никаких ошибок. Никакой файл не конвертируется. Похоже, терминал висит.

Итак, есть ли способ отслеживать ошибку?

  1. Прежде всего, я попытаюсь использовать абсолютные пути к команде.

  2. Я подозреваю, что libreoffice файл libreoffice не работает – вам нужно найти двоичный файл soffice и посмотреть, работает ли это.

  3. Тогда вашего --convert-to pdf недостаточно. Это должно быть:

     --convert-to pdf:writer_pdf_Export 

    Обязательно следуйте именно этой капитализации!

  4. Затем команда не будет работать, если в вашей системе уже запущен и запущен графический интерфейс LibreOffice. Это вызвано ошибкой, известной с 2011 года . Добавьте этот дополнительный параметр в свою команду:

      "-env:UserInstallation=file:///tmp/LibreOffice_Conversion_${USER}" 

    Это создаст новую отдельную среду, которая может быть использована вторым безгласным LO-экземпляром без вмешательства в возможный запуск первого экземпляра GUI LO, запущенного одним и тем же пользователем.

  5. Кроме того, убедитесь, что указанный --outdir /pdf существует, и что у вас есть разрешение на запись на него. Или, скорее, используйте другой выходной каталог. Даже если это только для первого тестирования и этого отладочного раунда:

     $ mkdir ${HOME}/lo_pdfs 
  6. Следовательно:

     /path/to/soffice \ --headless \ "-env:UserInstallation=file:///tmp/LibreOffice_Conversion_${USER}" \ --convert-to pdf:writer_pdf_Export \ --outdir ${HOME}/lo_pdfs \ /path/to/test.docx 

    Это работает для меня в Mac OS X Mavericks 10.9.5 с LibreOffice v4.4.3.2 (используя мой конкретный путь для двоичного soffice который будет по-другому для вас …).

    Если все это не работает:

  7. Это может быть проблема с конкретным файлом DOCX, с которым вы пытаетесь выполнить команду … Итак, создайте очень простой документ DOCX. Для этого используйте LibreOffice. Напишите «Привет, мир!» на другой пустой странице. Сохраните его как DOCX.

  8. Попробуй еще раз. Работает ли он с простым DOCX?

  9. Если он снова не работает, повторите шаг 7, но на этот раз сохраните его как ODT.

  10. Повторите шаг 8, но не забудьте указать ODT на этот раз.

  11. Последнее: используйте полный путь к soffice , к soffice.bin и к libreoffice и запускайте каждый с параметром -h :

     $ /path/to/libreoffice -h $ /path/to/soffice -h $ /path/to/soffice.bin -h 
    • Вы даже получаете выход здесь?
    • Для какого из трех бинарных / символических ссылок?
    • Запишите выходы.
    • Расскажите нам свои результаты !!!

    Сравните их с используемой командной строкой:

    Есть ли какие-либо изменения в именах параметров, капитализации, количестве используемых тире и т. Д.?

    Для сравнения, мой собственный результат здесь:

     $ /Applications/LibreOffice.app/Contents/MacOS/soffice -h LibreOffice 4.4.3.2 88805f81e9fe61362df02b9941de8e38a9b5fd16 Usage: soffice [options] [documents...] Options: --minimized keep startup bitmap minimized. --invisible no startup screen, no default document and no UI. --norestore suppress restart/restore after fatal errors. --quickstart starts the quickstart service --nologo don't show startup screen. --nolockcheck don't check for remote instances using the installation --nodefault don't start with an empty document --headless like invisible but no userinteraction at all. --help/-h/-? show this message and exit. --version display the version information. --writer create new text document. --calc create new spreadsheet document. --draw create new drawing. --impress create new presentation. --base create new database. --math create new formula. --global create new global document. --web create new HTML document. -o open documents regardless whether they are templates or not. -n always open documents as new files (use as template). --display <display> Specify X-Display to use in Unix/X11 versions. -p <documents...> print the specified documents on the default printer. --pt <printer> <documents...> print the specified documents on the specified printer. --view <documents...> open the specified documents in viewer-(readonly-)mode. --show <presentation> open the specified presentation and start it immediately --accept=<accept-string> Specify an UNO connect-string to create an UNO acceptor through which other programs can connect to access the API --unaccept=<accept-string> Close an acceptor that was created with --accept=<accept-string> Use --unnaccept=all to close all open acceptors --infilter=<filter>[:filter_options] Force an input filter type if possible Eg. --infilter="Calc Office Open XML" --infilter="Text (encoded):UTF8,LF,,," --convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files Batch convert files. If --outdir is not specified then current working dir is used as output_dir. Eg. --convert-to pdf *.doc --convert-to pdf:writer_pdf_Export --outdir /home/user *.doc --convert-to "html:XHTML Writer File:UTF8" *.doc --convert-to "txt:Text (encoded):UTF8" *.doc --print-to-file [-printer-name printer_name] [--outdir output_dir] files Batch print files to file. If --outdir is not specified then current working dir is used as output_dir. Eg. --print-to-file *.doc --print-to-file --printer-name nasty_lowres_printer --outdir /home/user *.doc --cat files Dump text content of the files to console Eg. --cat *.odt --pidfile file Store soffice.bin pid to file. -env:<VAR>[=<VALUE>] Set a bootstrap variable. Eg. -env:UserInstallation=file:///tmp/test to set a non-default user profile path. Remaining arguments will be treated as filenames or URLs of documents to open. 
  12. Добавьте еще один аргумент в свою командную строку, чтобы обеспечить применение фильтра ввода, когда soffice открывает ваш файл DOCX:

     --infilter="Microsoft Word 2007/2010/2013 XML" 

    или

     --infilter="Microsoft Word 2007/2010/2013 XML" --infilter="Microsoft Word 2007-2013 XML" --infilter="Microsoft Word 2007-2013 XML Template" --infilter="Microsoft Word 95 Template" --infilter="MS Word 95 Vorlage" --infilter="Microsoft Word 97/2000/XP Template" --infilter="MS Word 97 Vorlage" --infilter="Microsoft Word 2003 XML" --infilter="MS Word 2003 XML" --infilter="Microsoft Word 2007 XML Template" --infilter="MS Word 2007 XML Template" --infilter="Microsoft Word 6.0" --infilter="MS WinWord 6.0" --infilter="Microsoft Word 95" --infilter="MS Word 95" --infilter="Microsoft Word 97/2000/XP" --infilter="MS Word 97" --infilter="Microsoft Word 2007 XML" --infilter="MS Word 2007 XML" --infilter="Microsoft WinWord 5" --infilter="MS WinWord 5" 

Обновить

LibreOffice может не только конвертировать DOCX в PDF в командной строке:

  • Он может обрабатывать любой формат ввода, который он может открыть и «читать»: DOC, XLS, XLSX, PPT, PPTX, …
  • Он может конвертировать в любой выходной формат, который он может «писать»: DOC, XLS, XLSX, PPT, PPTX, …

Конечно, результаты никогда не будут идеальными, и иногда они даже будут неприемлемы для вас.

Число рейнольдса выход в формате PDF :

Чтобы контролировать, какой компонент LibreOffice генерирует PDF-выход, вы можете использовать эти варианты:

 --convert-to pdf:writer_pdf_Export --convert-to pdf:calc_pdf_Export --convert-to pdf:draw_pdf_Export --convert-to pdf:impress_pdf_Export --convert-to pdf:writer_web_pdf_Export 

Число рейнольдса вход, который не является DOCX :

Чтобы внедрить инфильтраты для входных форматов, отличных от DOCX, вы можете использовать (список не заполнен):

 --infilter="HTML Document" # for HTML input --infilter="MediaWiki" # for MediaWiki input --infilter="Text CSV" # for CSV spreadsheet input --infilter="Microsoft PowerPoint 2007/2010 XML" # for PPTX input --infilter="Microsoft PowerPoint 97/2000/XP" # for PPT input --infilter="Windows Metafile" # for WMF input --infilter="Enhanced Metafile" # for EMF input --infilter="Scalable Vector Graphics" # for SVG input --infilter="Microsoft Excel 2007/2010 XML" # for XLSX input --infilter="Microsoft Excel 97/2000/XP" # for XLS input --infilter="Microsoft Excel 95" # for some XLS input --infilter="Microsoft Excel 5.0" # for some XLS input 

Число рейнольдса выход, который не является PDF :

Чтобы преобразовать в определенные выходные форматы, вы можете использовать (list not complete):

 --convert-to html:HTML --convert-to html:draw_html_Export # force "Draw" to generate the HTML --convert-to mediawiki:MediaWiki_Web # generate MediaWiki output --convert-to csv:"Text - txt - csv (StarCalc)" # generate CSV spreadsheet output --convert-to pptx:"Impress MS PowerPoint 2007 XML" # generate PPTX --convert-to ppt:"MS PowerPoint 97" # generate PPT --convert-to wmf:impress_wmf_Export # force "Impress" to generate the WMF --convert-to wmf:draw_wmf_Export # force "Draw" to generate the WMF --convert-to emf:impress_emf_Export # force "Impress" to generate the EMF --convert-to emf:draw_emf_Export # force "Draw" to generate the EMF --convert-to svg:impress_svg_Export # force "Impress" to generate the SVG --convert-to svg:draw_svg_Export # force "Draw" to generate the SVG --convert-to xlsx:"Calc MS Excel 2007 XML" # generate XLSX --convert-to xls:"MS Excel 97" # generate XLS like Excel 97 --convert-to xls:"MS Excel 95" # generate XLS like Excel 95 --convert-to xls:"MS Excel 5.0/95" # generate XLS like Excel 5.0/95 

Может показаться глупым, но я страдал от этого: в Ubuntu 14.04 недостаточно установить только пакет libreoffice-core или -common для преобразования в PDF, но вам нужно установить libreoffice-writer вместо / дополнительно. Важно отметить, что libreoffice-core | common, кажется, приносит некоторую функциональную базу libreoffice, отсюда и имя ;-), которое не выдает ошибку, если выполняется для преобразования некоторого файла, но вместо этого просто кажется, что ждет какой-то сокет или такой для ввода или что-то еще … После того, как я установил libreoffice-writer, который имеет -core | общий как зависимость, преобразование некоторого файла ODT в PDF работало как шарм с той же самой командной строкой, что и раньше.

Кажется немного сумасшедшим, что приложение выглядит так, как будто оно работает как-то, но просто не может быть из-за недостающих пакетов и ничего не говорит об этом.

Обновить

Текущая версия libreoffice работает: v5.2.6.2 (mac)

Я использую следующую команду

 /Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to pdf --outdir . the_file_to_convert 

OLD

Кажется, что преобразование не работает в более новой версии (> 4.2.4.2). Я использую libreoffice 4.2.4.2. Вы можете загрузить более старые версии из http://downloadarchive.documentfoundation.org/libreoffice/old/4.2.4.2/

  • linux (с использованием пакета deb):

     libreoffice4.2 --headless --convert-to pdf myfile.odt 
  • окна:

     swriter.exe --headless --convert-to pdf myfile.odt 

Я тоже использую LibreOffice 4.2.8.2 (в GNU / Linux), но я попытался преобразовать файл DOC в HTML-файл. Я установил libreoffice-headless , но терминал тоже висел. Я пробовал каждую пулю Курта Пфайфле, но он не работал …

Решение было простым: установка libreoffice-writer (возможно, libreoffice-filters тоже в порядке, но это зависит от libreoffice-writer и других больших компонентов LibreOffice).

Надеюсь, это поможет.