конвертирование файлов epub в формат PDF

Итак, вы подключаетесь из своего домашнего компьютера (давайте назовем его вашей машиной) на сервер (давайте назовем его сервером) через ssh? Вы хотите запустить программу с графическим окном на сервере через ваш компьютер? Если это правильно, чем во что бы то ни стало, прочитайте.

Давайте запустим программу для запуска gedit, но процесс будет одинаковым для всех.

Окно на экране вашего компьютера

Если вы хотите увидеть и использовать окно gedit на своем удаленном компьютере, но запустите на сервере, вы захотите, чтобы ваш сеанс оболочки выглядел так:

user@remote-machine:~$ ssh -X user@server
Last login: Tue Aug 14 13:47:04 2012 from clientXX
*******************************************************************************
M O T D (Message Of The Day)
*******************************************************************************
user@server:~$ gedit .bash_aliases 

** (gedit:7851): WARNING **: Could not load theme icon gtk-home: Icon 'gtk-home' not present in theme

(gedit:7851): Gtk-WARNING **: Attempting to store changes 

Не обращайте внимания на предупреждения, они нормальные - окно gedit появится на экране вашей удаленной машины, как это будет выглядеть на сервере. Хитрость заключается в использовании «-X» -описания, как в ssh -X, которая позволяет X-туннелировать и устанавливает правую DISPLAY вправо.

Предполагается, что вы используете SSH-клиент, который поддерживает X11 и что на вашем сервере работает X-сервер (некоторые из них без необходимости использования GUI не запускают X-сервер). Особенно в окнах это может быть проблемой, поскольку большинство оконных программ терминалов не имеют X. Как заявил izx, MobaXTerm является одним из многих клиентов SSH для Windows с X-сервером.

Для сервер отсутствует X11, вам придется его установить.

На экране сервера

Вы также можете запустить экземпляр на экране вашего сервера, вызвав gedit следующим образом: [ ! d13]

ssh user@server
DISPLAY=:0.0 gedit

Вы должны подставить правильное значение вместо :0.0, хотя для его получения на правом X-экране (важно только, если к вашему серверу подключено несколько экранов или если оно несколько своеобразно в своей конфигурации ).

Здесь наиболее распространенным сценарием для этого не было бы, если бы серверу не хватало X11-Server, но он не имел бы подключенного к нему монитора или не имел графического интерфейса пользователя, d Не читайте это: D.

Немного теории

Я не эксперт в этом, но, как я думаю, это работает, каждый физический экран, то есть каждый монитор подключен для отдельного компьютера получает номер пробега в виде 0.0, 1.0, 2.0, ...

Этот номер присваивается X-Window-System aka X11. Это слой, обеспечивающий сетевой и базовый графический интерфейс, на которые могут работать Unity, Gnome, KDE и т. Д.

Вы можете видеть, сколько отображаемых данных у данного компьютера и какие числа используются при запуске for x in /tmp/.X11-unix/X*; do echo ":${x##*X}"; done на рассматриваемой машине. * Затем каждый компьютер, который настроен для обеспечения доступности своих экранов и запускает X-сервер, имеет имя хоста. Вы можете использовать экраны хостов с любого компьютера в той же сети, установив свою переменную DISPLAY в соответствии с DISPLAY=hostname:0.0. Ssh делает это для вас разумным способом, если вы предоставите опцию -X.

* Примечание: я полагаю, что есть лучший способ, чем этот цикл for.

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

Используйте текстовый редактор оболочки. vi, vim, nano и emacs являются наиболее распространенными, и по крайней мере один из них будет установлен и функционален. Из них nano является самым простым и самоочевидным.

1
задан 18 August 2014 в 11:17

5 ответов

Установите Calibre из Ubuntu Software Center. Откройте «Калибр» и нажмите значок «Добавить книги» в меню «Калибр». Откроется окно выбора файла. Перейдите к файлам epub, которые вы хотите добавить, и выберите один или несколько файлов epub для добавления в Caliber. Выберите один или несколько файлов epub из библиотеки Caliber в центральной панели. Или введите formats:"=EPUB" в поле поиска для поиска только файлов формата EPUB и выберите один или несколько файлов epub из списка фильтрованных библиотек в центральной панели. Нажмите значок «Конвертировать книги» в меню «Калибр». Откроется новое окно Convert. В окне преобразования для формата ввода выберите EPUB. Для формата вывода выберите PDF. Нажмите кнопку «ОК», чтобы начать преобразование файла (ов). Чтобы найти файлы PDF, щелкните файл, который вы конвертировали в PDF. На панели справа от Caliber вы увидите запись под названием Path: Нажмите, чтобы открыть. Нажмите ссылку «Открыть для открытия», чтобы открыть окно браузера нового файла в каталоге файла PDF.
9
ответ дан 24 May 2018 в 21:49

epub to pdf converter

Перед тем, как попробовать калибр, я фактически конвертировал свой файл с помощью вышеупомянутой программы, конвертер командной строки в epub в pdf, который действительно хорош с некоторыми удобными опциями.

] Использование:

1) разархивируйте файл в удобное место и перейдите в распакованную папку в терминале

2) сделайте исполняемый файл .sh

 chmod +x ./epub2pdf.sh 

3) запустите файл

 ./epub2pdf.sh <path-to-epub-file>

Выходной каталог по умолчанию - . Использование: папка , но большая часть настроек доступна через файл свойств, где его можно изменить .

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

7
ответ дан 24 May 2018 в 21:49
  • 1
    Хорошая находка! Это удобно для быстрого и грязного конверта – Freedom_Ben 27 May 2013 в 20:20
[F1]
5
ответ дан 24 May 2018 в 21:49

Вот мой рецепт:

pandoc -s -t latex --toc --chapters \
        --latex-engine=lualatex $BOOK.epub -o $BOOK.pdf

, если аддитон --toc и --chapters не дает желаемых результатов, оставьте их. Иногда изображения внутри epub недопустимы для использования с латексом, поэтому вам нужно их преобразовать в процесс:

$ pandoc -s -t latex --toc --chapters \
    --latex-engine=lualatex $BOOK.epub -o $BOOK.pdf
!LuaTeX error (file /tmp/tex2pdf.23440/3f21bef8dd2877aad72f5cddbf00284ca88fa0e7
.jpg): reading JPEG image failed (no marker found)
 ==> Fatal error occurred, no output PDF file produced!

pandoc: Error producing PDF

Вот обходной путь. Проверьте, можно ли создать файл tex:

$ pandoc \
-s -t latex \
--toc --chapters \
--latex-engine=lualatex $BOOK.epub -o $BOOK.tex

Извлеките изображения и другие носители, содержащиеся в контейнере epub, в путь DIR, создав его, если необходимо, и отрегулируйте ссылки на изображения в [LaTeX ], чтобы они указывали на извлеченные файлы, с опцией --extract-media= DIR. Выберите текущий каталог, который также содержит файл ePub. Добавьте --extract-media=. который также является $HOME/Documents

$ cd Documents
$ pandoc \
-s -t latex \
--toc --chapters \
--latex-engine=lualatex \
--extract-media=. $BOOK.epub -o $BOOK.tex
pandoc: extracting ./images/9781501144158.jpg
pandoc: extracting ./images/com-01.jpg
pandoc: extracting ./images/f0003-01.jpg
pandoc: extracting ./images/f0005-01.jpg
[ ----- extract-media logging shortened ---- ]
pandoc: extracting ./images/f0177-01.jpg
pandoc: extracting ./images/f0187-01.jpg
pandoc: extracting ./images/logo.jpg
pandoc: extracting ./images/logo1.jpg
pandoc: extracting ./images/title.jpg

Отмените извлеченные изображения .jpg, создав новые изображения JPEG, совместимые с LaTeX, с помощью утилиты «convert» (из пакета программ imagemagick)

$ cd images
$ convert logo1.jpg logo1.jpeg 

и Заменить ранее с pandoc извлеченными .jpg изображениями с вновь созданными изображениями .jpeg:

$ mv logo1.jpeg logo1.jpg 

Можно сделать это с помощью одного цикла for Командная строка:

$ cd images/
$ for i in *.jpg; do convert $i `echo $i | sed 's/jpg/jpeg/'`; done
$ rm -f *.jpg
$ for i in *.jpeg; do mv $i `echo $i | sed 's/jpeg/jpg/'`; done 
$ cd ..

Запустите первую командную строку еще раз, но на этот раз двигатель LuaTeX ищет свой \includegraphics в том же каталоге, где раньше были извлечены изображения ePub (--data-dir=DIRECTORY Specify the user data directory to search for pandoc data files. If this option is not specified, the default user data directory will be used. This is, in Unix: $HOME/.pandoc), добавив опцию --data-dir=.:

$ pandoc \
-s -t latex \
--toc --chapters \
--latex-engine=lualatex \
--data-dir=. $BOOK.epub -o $BOOK.pdf
3
ответ дан 24 May 2018 в 21:49

Мне очень понравился ответ, который я видел на подобном посту здесь: https://askubuntu.com/a/170119

Особенно следующая команда помогла мне получить лучшее преобразование:

[F1]
1
ответ дан 24 May 2018 в 21:49
  • 1
    Эм, у тебя это не так. Этот вопрос связан с преобразованием из EPub в PDF. – David Foerster 19 March 2015 в 05:02

Другие вопросы по тегам:

Похожие вопросы: