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.
Il a été facilement réalisé en utilisant Python3.
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.
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