问题描述
我想知道在ubuntu中将epub文件转换为pdf的方式。只要我的epub转换为pdf,任何方法,GUI或命令行转换都可以。谢谢。
最佳解决方法
你肯定想要Calibre。您可以使用它将几乎任何文件类型转换为任何其他文件类型,只要源文件没有DRM(如Amazon,Adobe等)。如果它有DRM,请查看Apprentice Alf’s blog以获取有关使用Calibre插件剥离的帮助。请勿使用DRM剥离器盗版书籍或以其他方式违反与供应商的协议。使用它,您可以在任何设备上以任何格式欣赏您的书籍。
Calibre也是一款非常出色的e-book管理程序,几乎可以做任何事情。它可以管理Kindles,Android手机/平板电脑等。如果您愿意,它甚至可以通过电子邮件将您的书籍发送到您的Kindle电子邮件地址。你不会失望的:-)
从终端:
sudo apt-get install calibre
或者在Ubuntu软件中心搜索它
要实际转换EPUB文件,您可以使用以下命令:
ebook-convert file.epub file.pdf
(详情请查看this其他答案)
或者您可以使用Calibre GUI查看the conversion dialog的详细信息。
次佳解决方法
-
从Ubuntu软件中心安装Calibre。
-
打开Calibre,然后单击Calibre菜单中的Add books图标。将打开文件选择窗口。
-
浏览到要添加的epub文件,然后选择一个或多个要添加到Caliber的epub文件。
-
从中心窗格中的Calibre库中选择一个或多个epub文件。或者在搜索框中键入
formats:"=EPUB"
以仅搜索EPUB格式文件,并从中心窗格中的筛选库列表中选择一个或多个epub文件。单击“Calibre”菜单中的“转换书籍”图标。 -
将打开一个新的转换窗口。在输入格式的转换窗口中,选择EPUB。对于输出格式,请选择PDF。单击
OK
按钮开始转换文件。 -
要查找PDF文件,请单击转换为PDF的文件。在Calibre的right-hand侧的窗格中,您将看到一个名为Path的条目:单击打开。单击“单击以打开”链接,在PDF文件的目录中打开新的文件浏览器窗口。
第三种解决方法
在尝试使用caliber之前,我实际上是使用上面的程序转换了我的文件,命令行epub到pdf转换器实际上很好用了一些方便的选项。
用法:
1)将文件解压缩到方便的位置,然后切换到终端中的解压缩文件夹
2)使.sh文件可执行
chmod +x ./epub2pdf.sh
3)运行文件
./epub2pdf.sh <path-to-epub-file>
默认输出目录是主文件夹,但可以通过属性文件进行大量自定义,可以在其中进行更改。
虽然该程序暂时没有更新,但它确实很好用,我认为这可能是人们尝试将其epub转换为pdf的一种选择。
第四种方法
sudo apt install pandoc
pandoc -f epub -t pdf infile.epub -o outfile.pdf
第五种方法
这是我的食谱:
pandoc -s -t latex --toc --chapters \
--latex-engine=lualatex $BOOK.epub -o $BOOK.pdf
如果--toc
和--chapters
的添加剂不能产生预期的结果,请将它们留下。有时,epub中的图片无法与latex一起使用,因此您需要在此过程中转换它们:
$ 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
通过使用`convert’实用程序(来自imagemagick程序套件)创建新的LaTeX兼容JPEG图像,废除提取的.jpg图像
$ cd images
$ convert logo1.jpg logo1.jpeg
并使用新创建的.jpeg图像替换先前使用pandoc提取的.jpg图像:
$ 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引擎通过添加选项--data-dir=.
来寻找与之前提取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
)中的\includegraphics
:
$ pandoc \
-s -t latex \
--toc --chapters \
--latex-engine=lualatex \
--data-dir=. $BOOK.epub -o $BOOK.pdf