Windowsの下でPythonはpdfファイルをpngフォーマットのピクチャーに変換する方法を実現します

6340 ワード

この例ではwindowsの下でPythonがpdfファイルをpng形式の画像に変換する方法を実装する方法を説明した.皆さんの参考にしてください.具体的には以下の通りです.
最近仕事の中でpdfファイルをピクチャーに転化する必要があって、Pythonで実現したいと思って、そこでネット上で探して探して探して探して、半日探して、いくつかのコードを見つけました.
1、最初に見つけたコードは、逆のように試してみましたが、画像をpdfに変換するしかなく、pdfを画像に変換することはできません.の
参照リンク:https://zhidao.baidu.com/question/745221795058982452.html
コードは次のとおりです.

#!/usr/bin/env python
import os
import sys
from reportlab.lib.pagesizes import A4, landscape
from reportlab.pdfgen import canvas
f = sys.argv[1]
filename = ''.join(f.split('/')[-1:])[:-4]
f_jpg = filename+'.jpg'
print f_jpg
def conpdf(f_jpg):
 f_pdf = filename+'.pdf'
 (w, h) = landscape(A4)
 c = canvas.Canvas(f_pdf, pagesize = landscape(A4))
 c.drawImage(f, 0, 0, w, h)
 c.save()
 print "okkkkkkkk."
conpdf(f_jpg)


2、2つ目は文章が詳しく書かれていて、残念ながらlinuxの下のコードなので、まだ役に立たない.
3、第三の文章は1つのライブラリPythonMagickがこの機能を実現できることを指摘して、1つのライブラリPythonMagick-0.9.10-cp 27-none-win_をダウンロードする必要があるamd64.whlこれは64ビットです.
ここでは、python公式サイトからpython 2.7をダウンロードし、64ビットのバージョンだと思っていたが、実際には32ビットのバージョンだったため、pythonのバージョン(32ビット)とダウンロードしたPythonMagickのバージョン(64ビット)が一致せず、夜12時過ぎになってようやくこの問題を発見したと言わざるを得ない.
4、それから検索エンジンで検索を続け、stackoverflowの問題投稿をたくさん見つけ、2つのコードを見つけたが、PyPDF 2とghostscriptモジュールをダウンロードしなければならない.
まずpipでPyPDF 2、PythonMagick、ghostscriptモジュールをインストールします.

C:\Users\Administrator>pip install PyPDF2
Collecting PyPDF2
 Using cached PyPDF2-1.25.1.tar.gz
Installing collected packages: PyPDF2
 Running setup.py install for PyPDF2
Successfully installed PyPDF2-1.25.1
You are using pip version 7.1.2, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
C:\Users\Administrator>pip install C:\PythonMagick-0.9.10-cp27-none-win_amd64.whl
Processing c:\pythonmagick-0.9.10-cp27-none-win_amd64.whl
Installing collected packages: PythonMagick
Successfully installed PythonMagick-0.9.10
You are using pip version 7.1.2, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
C:\Users\Administrator>pip install ghostscript
Collecting ghostscript
 Downloading ghostscript-0.4.1.tar.bz2
Requirement already satisfied (use --upgrade to upgrade): setuptools in c:\python27\lib\site-packages (from ghostscript)
Installing collected packages: ghostscript
 Running setup.py install for ghostscript
Successfully installed ghostscript-0.4.1
You are using pip version 7.1.2, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.


次はコードです
コード1:

import os
import ghostscript
from PyPDF2 import PdfFileReader, PdfFileWriter
from tempfile import NamedTemporaryFile
from PythonMagick import Image
reader = PdfFileReader(open("C:/deep.pdf", "rb"))
for page_num in xrange(reader.getNumPages()):
 writer = PdfFileWriter()
 writer.addPage(reader.getPage(page_num))
 temp = NamedTemporaryFile(prefix=str(page_num), suffix=".pdf", delete=False)
 writer.write(temp)
 print temp.name
 tempname = temp.name
 temp.close()
 im = Image(tempname)
 #im.density("3000") # DPI, for better quality
 #im.read(tempname)
 im.write("some_%d.png" % (page_num))
 os.remove(tempname)


コード2:

import sys
import PyPDF2
import PythonMagick
import ghostscript
pdffilename = "C:\deep.pdf"
pdf_im = PyPDF2.PdfFileReader(file(pdffilename, "rb"))
print '1'
npage = pdf_im.getNumPages()
print('Converting %d pages.' % npage)
for p in range(npage):
 im = PythonMagick.Image()
 im.density('300')
 im.read(pdffilename + '[' + str(p) +']')
 im.write('file_out-' + str(p)+ '.png')
 #print pdffilename + '[' + str(p) +']','file_out-' + str(p)+ '.png'


コード2のエラーメッセージです.

Traceback (most recent call last):
 File "C:\c.py", line 15, in 
 im.read(pdffilename + '[' + str(p) +']')
RuntimeError: pythonw.exe: PostscriptDelegateFailed `C:\DEEP.pdf': No such file or directory @ error/pdf.c/ReadPDFImage/713


いつも上にいるim.read(pdffilename+'['+str(p)+'])の行が間違っています.
そこで、間違えた情報に基づいてネットで調べましたが、何の役に立つ情報も見つかりませんでしたが、GhostScriptと関係があるような気がして、ネットでインストールパッケージを調べてgithubでのダウンロード接続を見つけましたが、クリックするとダウンロードできないと表示されました.
最後に、csdnのダウンロードでこのファイルを見つけました:GhostScript_Windows_9.15_win32_win 64は、64ビットバージョンがインストールされ、その後、上のコードを再度実行して、すべて使用できます.
ただし、コード2は以下のように修正する必要があります.そうでなければ、No such file or directory@error/pdfを報告します.c/ReadPDFImage/713エラー:

#  2
import sys
import PyPDF2
import PythonMagick
import ghostscript
pdffilename = "C:\deep.pdf"
pdf_im = PyPDF2.PdfFileReader(file(pdffilename, "rb"))
print '1'
npage = pdf_im.getNumPages()
print('Converting %d pages.' % npage)
for p in range(npage):
 im = PythonMagick.Image(pdffilename + '[' + str(p) +']')
 im.density('300')
 #im.read(pdffilename + '[' + str(p) +']')
 im.write('file_out-' + str(p)+ '.png')
 #print pdffilename + '[' + str(p) +']','file_out-' + str(p)+ '.png'


今回、この問題を解決する過程で、ほとんどの時間が資料を調べたり、資格資料が役に立つかどうかを検証したりするのに使われていることを深く体得しました.資料を検索する能力が重要です.
実际に资料を検索する过程の中で、国内のPythonMagickについての文章は少なすぎて、検索した大部分の役に立つ文章はすべて国外で、しかしこれらの国外の招待状の文章、私の问题を解决していないであるいは役に立つ手がかりを出して、最后にやはり自分の思考を通じて、问题を解决しました.
Pythonに関する詳細について興味のある読者は、「Python画像操作テクニックまとめ」、「Pythonデータ構造とアルゴリズムチュートリアル」、「Python Socketプログラミングテクニックまとめ」、「Python関数使用テクニックまとめ」、「Python文字列操作テクニックまとめ」、『Python入門と進級経典教程』及び『Pythonファイルとディレクトリ操作技術要約』
ここではPythonプログラムの設計に役立つことを願っています.