Pixelliser un PDF avec Python

Contexte

Dans certains environnements, le dessin de fichiers PDF vectoriels ne fonctionnait pas toujours. Pour éviter ce problème, je souhaite convertir et enregistrer en tant que PDF pixellisé tel que JPEG au lieu de vecteur.

Méthode

Il a été facilement réalisé en utilisant Python3.

Préparation préalable

code

main.py


import pdf2image as p
from PIL import Image
import sys

#Résolution lors de la pixellisation
#Plus la valeur est élevée, plus elle est belle, mais cela prend du temps (la beauté est meilleure à une certaine valeur)
DPI = 300

#Hauteur de l'image du PDF de sortie final
HEIGHT = 1200

pdfpath = sys.argv[1]
images = p.convert_from_path(pdfpath, dpi=DPI)

def resize(image):
    r = HEIGHT / image.height
    width = int(image.width * r)
    return image.resize((width, HEIGHT), Image.LANCZOS)

images = list(map(resize, images))
images = list(map(lambda image: image.convert('RGB'), images))

images[0].save('output.pdf',save_all=True, append_images=images[1:])

Tout d'abord, pixellisez à une résolution plus élevée, puis réduisez l'image avec la résolution souhaitée pour améliorer la qualité de l'image.

Comment utiliser

Supposons que le fichier PDF que vous souhaitez convertir (hoge.pdf) se trouve dans le dossier d'exécution.

$ python main.py hoge.pdf

Lorsque la commande ci-dessus est exécutée, ʻoutput.pdf` est généré dans le répertoire exécuté.

Achevée

Recommended Posts

Pixelliser un PDF avec Python
OCR à partir de PDF en Python
Convertir Markdown en PDF en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Liste triée en Python
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Modifier les polices en Python
Motif singleton en Python
Opérations sur les fichiers en Python
Lire DXF avec python
Daily AtCoder # 53 en Python
Séquence de touches en Python
Utilisez config.ini avec Python