有没有实用的方法可以使用Python从图像文件列表中创建PDF?
在Perl我知道那个模块.有了它,我可以只用3行创建一个PDF:
use PDF::FromImage;
...
my $pdf = PDF::FromImage->new;
$pdf->load_images(@allPagesDir);
$pdf->write_file($bookName . '.pdf');
Run Code Online (Sandbox Code Playgroud)
我需要做一些与此类似的事情,但是在Python中.我知道pyPdf模块,但我想要一些简单的东西.
@编辑
如果您通过Google访问,请输入以下代码:
from fpdf import FPDF
from PIL import Image
def makePdf(pdfFileName, listPages, dir = ''):
if (dir):
dir += "/"
cover = Image.open(dir + str(listPages[0]) + ".jpg")
width, height = cover.size
pdf = FPDF(unit = "pt", format = [width, height])
for page in listPages:
pdf.add_page()
pdf.image(dir + str(page) + ".jpg", 0, 0)
pdf.output(dir + pdfFileName + ".pdf", "F")
Run Code Online (Sandbox Code Playgroud) 我正在尝试将带有200 dpi的JPEG文件转换为PDF文件,但是,当我将文件另存为PDF时,我认为它将dpi更改为72,从而使图像更大.我最初尝试将JPEG图像缩放到较小的尺寸时遇到了类似的问题,并且能够通过在保存图像时指定dpi来解决这个问题.
im = Image.open("Image.jpg")
dpi=im.info['dpi']
if im.size == (2592, 1728):
out = im.resize((1188,792), Image.ANTIALIAS)
elif im.size == (1728,2592):
out = im.resize((792,1188), Image.ANTIALIAS)
out.save(project, dpi=dpi)
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试将此JPEG保存为PDF时,指定dpi似乎没有任何区别,我得到的图像比我原来的图像看起来像dpi更低.使用PIL从JPEG转换为PDF时,有没有办法保持一致的分辨率?或者我有更好的方法来做这件事吗?
这就是我将文件目录从JPEG转换为PDF的方法:
for infile in listing:
outfile = destpath + os.path.splitext(infile)[0] + ".pdf"
current = path + infile
if infile != outfile:
im = Image.open(current)
dpi=im.info['dpi']
im.save(outfile, "PDF", Quality = 100)
Run Code Online (Sandbox Code Playgroud) python pdf resolution image-processing python-imaging-library