首先把鏈接URL爬取出來,然後get流下載pdf文件,再用pdf模塊來讀取它。
Ⅱ 《html轉pdf-----wkhtmltopdf踩坑總結》
最近公司給了個任務,差不多的流程就是接受json數據,然後最後生成圖片。我想的辦法是根據json數據生成html然後轉成pdf。使用的語言是python。然後具體來說使用的工具就是使用python名為pdfkit的庫去調用基於webkit的wkhtmltopdf。
目前來說html轉pdf最主流的程序就是wkhtmltopdf,但是坑還是挺多的而且網上資源不是很豐富,所以寫一篇踩坑總結。
##1. 無法讀取本地文件
顯示在html上好好的本地圖片,到了pdf上就讀取不出來,但是來源於網路(給一個url)的圖片卻能完美讀出來。
後來發現,原來在上一個版本0.12.5是可以讀取的,到了0.12.6不能讀取了是因為其中的一個參數--enable-local-file-access變為了非默認。在python中改這個參數的方法是
然後再在後續調用wkhtmltopdf中載入這個option(我一開始想的是把value改成True,結果一直報錯,吐了)
##2. 無法解析latex格式的公式
在html使用了MathJax提供的js去解析latex格式的數學公式,在html界面可以完美顯示,但是到了pdf中就解析不了,然後我以為是沒有添加'enable-javascript'的問題。結果加上之後還是不行。然後我發現又有一個參數叫做'no-stop-slow-scripts'的參數,可以等到js運行完畢之後再進行pdf的轉化。結果還是不行。
然後我就在想會不會js在運行的時候出了什麼問題,加上了'debug-javascripts'的參數。果然發現在調用MathJax提供的鏈接的時候發現這個鏈接已經過期了(我也不知道為啥過期了在html界面還能完美展示。。。),把js里的鏈接換成了
https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML
完美解決
##3. 部分css失效
css3中的flex全部失效,所以大家得換一下!
當時遇到了一個講的很好的博客,給大家分享一下,然後再放一個官方文檔的鏈接
博客:https://www.jianshu.com/p/4d65857ffe5e
官方文檔:https://wkhtmltopdf.org/usage/wkhtmltopdf.txt
Ⅲ python自動化-pdf文檔操作
使用第三方庫
官方文檔:pymupdf.readthedocs.io/en/latest/
提取圖片的整體邏輯如下:
將每一頁轉換為一張張圖片
安裝pdf2image, github:github.com/Belval/pdf2…
安裝:
使用庫: github.com/2Dou/waterm…
步驟:
1.獲得一個帶水印pdf文件
1.1在圖片添加水印,圖片插入到word,word保存為pdf
1.2python處理:參考
github.com/2Dou/waterm…
mp.weixin.qq.com/s/_oJA6lbsd…
2.將水印pdf文件合並到源目標pdf文件的每一頁
法1,直接在word,插入文本框,旋轉,設置無邊框,注意設置背景透明,然後復制多個。導出為pdf。
法2,word本身自己的增加水印,設計-水印-自定義文字或圖片。缺點是只能是單個水印。
缺點是水印在內容pdf上方,如果設置過大,顏色不太透明,會遮擋內容。
解密:並不是破解,而是在已知密碼的情況下解密
作者:秦與商
鏈接:https://juejin.cn/post/7069582991982329893
Ⅳ Python可以用來自動化辦公 實現批量Word轉pdf嗎
這里需要導入幾個模塊
from win32com.client import Dispatch # 沒有的話輸入pip install pywin32命令 即可安裝
from os import walk
import os
os是用於文件處理常用的模塊,至於Dispatch,它是提供了一個介面, win32提供了多種word轉換為其他文件的介面,其中FileFormat=17是轉換為pdf格式.
之後轉換文件邏輯也很簡單,首先需要提取出文件名,word文件的後綴是doc或docx,那麼將後綴名替換為pdf即可轉換,這里用到replace方法,即replace(『docx』,『pdf』).replace(『doc』,『pdf』)因為有可能後綴是doc,所以需要2次判斷。
值得注意的是,轉換的文件夾事先要存在,否則會報錯誤。
下面是項目的源代碼
復制代碼
from win32com.client import Dispatch # pip install pywin32
from os import walk
import os
wdFormatPDF = 17 # win32提供了多種word轉換為其他文件的介面,其中FileFormat=17是轉換為pdf
def doc2pdf(input_file, input_file_name, output_dir):
try:
word = Dispatch('Word.Application')
doc = word.Documents.Open(input_file)
except Exception as e:
print("word無法打開, 發生如下錯誤:\n{}".format(e))
try:
pdf_file_name = input_file_name.replace(".docx", ".pdf").replace(".doc", ".pdf")
pdf_file = os.path.join(output_dir, pdf_file_name)
doc.SaveAs(pdf_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
print("成功轉換\"{}\"".format(input_file_name))
print()
except Exception as e:
print("文件保存失敗, 發生如下錯誤:\n{}".format(e))
if __name__ == "__main__":
path_in=input("請輸入word文件夾的路徑(絕對路徑) 要保證存在 建議復制粘貼")
path_out=input("請輸入pdf文件夾的路徑(絕對路徑) 要保證存在 建議復制粘貼")
doc_files = []
directory = path_in# word文件夾
output_dir =path_out # pdf文件夾
for root, _, filenames in walk(directory): # 第2個返回值是dirs, 用不上使用_佔位
for file in filenames:
if file.endswith(".doc") or file.endswith(".docx"):
print("轉換{}中......".format(file))
doc2pdf(os.path.join(root, file), file, output_dir)
復制代碼
Ⅳ py vsd 轉pdf
vsd轉pdf需要使用到的庫是comtypes。
這里藉助Python的docx2pdf去完成轉換操作,該庫的安裝命令,目標:讀取文件夾下的全部word文件,然後進行轉換,最後保存到對應的文件夾中。
裡面不僅有文字,同時包含有圖片,其中word_path是存放word文件的文件夾,word_to_pdf是轉換後的pdf存放文件夾,這樣就可以完成轉化了。
Ⅵ Python 操作PDF庫介紹之PDFMiner
Python 操作PDF庫介紹之PDFMiner
PDFMiner是一種從PDF文檔中提取信息的工具。與其他PDF相關工具不同,它完全專注於獲取和分析文本數據。
PDFMiner允許人們獲取頁面中文本的確切位置,以及字體或線條等其他信息。
它包括一個PDF轉換器,可以將PDF文件轉換為其他文本格式(如HTML)。它具有可擴展的PDF解析器,可用於除文本分析之外的其他目的。
github:
https://github.com/euske/pdfminer/
Ⅶ python如何檢測是不是需要旋轉pdf
是的,1.導入PyPDF2模塊之後使用open()方法打開pdf文件並且調用Reader方法直接將這個pdf文件之中的所有頁面都給讀取出來,讀取出來之後返回的是一個可迭代對象。然後使用getPage()方法獲取其中的某一個頁面,代碼如下所示:
import PyPDF2
reader = PyPDF2.PdfFileReader(open('a.pdf','rb'))
page = reader.getPage(0)
2.以上代碼之中的page所返回的就是pdf文件第一頁,使用它去調用rotateClockwise()方法就能夠將其90度旋轉,示例如下:
page.rotateClockwise(180)
這個方法一次只能夠對一個頁面進行修改操作,並且參數必須為90度及其倍數。也就是只能選擇90、180、270、360這四個度數,而且選擇是順時針選擇的,旋轉之後的頁面會自動調整格式。
3.頁面旋轉完畢之後還需要實例化出來一個文件寫入對象,然後使用這個對象將修改旋轉後的頁面添加到原pdf文件之中。再打開一個新的pdf文件用來保存,然後使用write()方法將頁面寫入之後將其關閉掉就好了,代碼示例如下:
output = PyPDF2.PdfFileWriter()
outputStream = open ("b.pdf","wb")
output.write(outputStream)
outputStream.close()
Ⅷ python在ftp下載文件保存成pdf
1.python圖片保存為pdf格式的功能需要使用到os模塊以及img2pdf模塊,其中img2pdf模塊是第三方的。win+r打開運行窗口之後輸入cmd並回車就能夠啟動命令行提示符,執行如下命令即可安裝:
pip3 install img2pdf
如果是linux系統或者是mac系統的話,就需要打開終端然後在命令前加上sudo參數表示管理員許可權去下載安裝這個庫。
2.安裝完成之後新建一個python腳本來編寫代碼,首先就是將這兩個模塊都給導入進來,示例如下:
import os
import img2pdf
3.然後使用with關鍵字創建出一個上下文管理器結構並且打開一個pdf文件,使用它的原因就在於可以在代碼執行完畢之後自動的釋放資源並關閉文件,示例如下:
with open("Output.pdf", "wb") as file:
有沒有這個pdf文件都可以,如果沒有的話會在文件路徑內自動去創建。
4.最後就是需要調用該文件對象的write()方法來將圖片數據寫入進去了,在這個方法裡面會調用convert()將一個文件路徑內後綴名為jpg的圖片全部以二進制流的方式讀取出來,示例如下:
file.write(img2pdf.convert([i for i in os.listdir('文件路徑') if i.endswith(".jpg")]))
以上就是關於「Python怎麼將圖片保存為pdf格式?Python圖片合成為pdf的代碼如何寫」的全部內容了,希望對你有所幫助。
Ⅸ Python office 文件轉 pdf 有沒有什麼好的方案
用什麼 w32com啊。用python的一個開源包。或者是用apache的tika(java)版本。或者是你用openoffice。
用了python就和winows再見吧。因為只有linux上才是最好用的。然後就和開源結親了。各種包,基本上應有盡有。
你的這個問題其實挺簡單的。很可能是編碼的問題。建議你先將txt轉換成doc,再將doc轉換成pdf。這樣就繞過去了。問題不一定要強行解決。學著繞過去。