枕头模块和cx_Freeze的“ PDF”异常

时间:2018-07-26 12:52:23

标签: python python-3.x pdf-generation python-imaging-library cx-freeze

我正在将Python 3.6与Pycharm和虚拟环境一起使用。我正在尝试使用cx_Freeze制作一个独立的应用程序,但是当我尝试使用我的应用程序(仅称为“ PDF”)时却遇到了异常。请注意,当我使用Pycharm运行脚本时,脚本运行良好。

我的应用程序应该做什么:

  • 获取多页PDF
  • 将每个页面转换为JPG
  • 将它们组装成一个 面板(例如:如果我有12页,则它的尺寸为3x4) 图片)
  • 使用枕头将结果另存为PDF

问题就在这最后一点。看来cx_Freeze并未从枕头导入所有必要的模块。经过一番研究,我认为我必须在setup.py中添加“选项”行,但是我不确定要添加什么。

这是我的setup.py中的代码:

from cx_Freeze import setup, Executable
import sys

build_exe_options = {"includes": ["PIL"],
                     "path": sys.path
                     }

setup(name = "Make_multislides" ,
      version = "0.1" ,
      description = "" ,
      options = {"build_exe": build_exe_options},
      executables = [Executable("make_multi_v3.py")]
      )

有人知道我能做什么吗? 谢谢

更新: 这是功能:

def createBigImage(x, y, imgs, width, height, files_in_folder, file_name):
try:
    new_img = Img.new('RGB', (x * width, y * height), color=background_color(imgs[0]))
    i = 0
    for j in range(y):
        for k in range(x):
            if len(files_in_folder) == i:
                pass
            else:
                new_img.paste(im=imgs[i], box=(k * width, j * height))
                i += 1
    new_img.save(os.path.join('Multislides', file_name + '.pdf'), format='pdf')
    print("\t Multislide done")
except Exception as e:
    print(e)

这是cmd中的痕迹:

Création du fichier 245501_12345
         Extraction de la page 245501_12345-page01.pdf
         Conversion de la page JPG
         Extraction de la page 245501_12345-page02.pdf
         Conversion de la page JPG
         Extraction de la page 245501_12345-page03.pdf
         Conversion de la page JPG
         Extraction de la page 245501_12345-page04.pdf
         Conversion de la page JPG
         Extraction de la page 245501_12345-page05.pdf
         Conversion de la page JPG
         Extraction de la page 245501_12345-page06.pdf
         Conversion de la page JPG
         Extraction de la page 245501_12345-page07.pdf
         Conversion de la page JPG
         Extraction de la page 245501_12345-page08.pdf
         Conversion de la page JPG
         Extraction de la page 245501_12345-page09.pdf
         Conversion de la page JPG
         Extraction de la page 245501_12345-page10.pdf
         Conversion de la page JPG
'PDF'
         Suppression des fichiers temporaires

很抱歉,如果它是法文,但上面写着:“正在提取页号#”和“正在转换页JPG”。 正如我告诉您的那样,问题位于显示为“ PUB”的地方,这是错误的名称,在此位置,您应该看到“ Multislide done”(多幻灯片完成),它引用了函数new_img.save(os.path.join('Multislides', file_name + '.pdf'), format='pdf')

更新2: 我试图从PIL库中找到处理PDF文件的python文件,其中有两个,一个叫做“ PdfImagePlugin.py ”,另一个叫做“ PdfParser.py ”。我认为问题出在第一个,但我将它们都放在了lib \ PIL文件夹中,现在看来可以了。问题是此文件夹中的其他文件是.pyc文件,我不知道它是否可能导致另一台计算机出现问题。我请一些朋友对其进行测试,现在我正在等待查看它是否有效。我会让你们保持联系!

0 个答案:

没有答案