Super seguro, o Python sintetiza várias imagens para o formato PDF

No nosso dia a dia, muitas vezes nos deparamos com situações em que precisamos enviar materiais de prova na frente e no verso da carteira de identidade, e a maioria desses sites aceita apenas o formato pdf. Neste momento, precisamos combinar as duas fotos da frente e verso do cartão de identificação em um arquivo pdf.

No sistema macOS, o software de visualização pode fazer isso facilmente. Ao mesmo tempo, abra a imagem em uma janela de visualização e clique em Exportar PDF para exportar com sucesso. No entanto, não existe um software tão conveniente para o sistema Windows para conseguir isso. Existem muitos sites que sintetizam PDF na Internet, mas esses sites, sem exceção, precisam fazer upload de PDF para síntese, o que pessoalmente acho muito inseguro.

Portanto, a maneira mais segura é escrever um script Python por nós mesmos para implementar a função de síntese.

1. Preparar

Escolha uma das seguintes maneiras de inserir o comando para instalar as dependências :
1. Abra o Cmd no ambiente Windows (Start-Run-CMD).
2. Abra o Terminal no ambiente MacOS (comando+espaço para entrar no Terminal).
3. Se você estiver usando o editor VSCode ou o Pycharm, poderá usar diretamente o Terminal na parte inferior da interface.

pip install pillow

2. Princípio de síntese

O módulo Pillow, PIL: Python Imaging Library, já é a biblioteca padrão de fato para processamento de imagens na plataforma Python. PIL é muito poderoso, mas a API é muito simples e fácil de usar. Com ele, podemos facilmente manipular imagens e exportar para diferentes formatos.

Para começar com um exemplo simples, vamos abrir uma imagem e salvá-la em formato pdf:

from PIL import Image
import os


def convert_img_pdf(filepath, output_path):
    """
    转换图片为pdf格式

    Args:
        filepath (str): 文件路径
        output_path (str): 输出路径
    """
    output = Image.open(filepath)
    output.save(output_path, "pdf", save_all=True)
    
    
if __name__ == "__main__":
    convert_img_pdf("1.jpeg", "./test.pdf")

Teste com uma imagem aleatória:

Depois de executar o código, ele foi convertido com sucesso em um arquivo PDF:

A conversão é feita em poucas linhas de código e é muito mais segura do que sites que fazem upload de fotos para a nuvem.

3. Combine várias fotos em PDF

Com o conhecimento básico de conversão de fotos para PDF, é muito simples entender o código de síntese de várias imagens em PDF abaixo.

Na verdade, ele usa um parâmetro especial append_images de .save:

output.save(pdfFilePath, "pdf", save_all=True, append_images=sources)

Ao armazenar as imagens em uma matriz de "fontes", podemos facilmente compor essas imagens em um PDF.

from PIL import Image
import os

def combine_imgs_pdf(folder_path, pdf_file_path):
    """
    合成文件夹下的所有图片为pdf

    Args:
        folder_path (str): 源文件夹
        pdf_file_path (str): 输出路径
    """
    files = os.listdir(folder_path)
    png_files = []
    sources = []
    for file in files:
        if 'png' in file or 'jpg' in file:
            png_files.append(folder_path + file)
    png_files.sort()

    output = Image.open(png_files[0])
    png_files.pop(0)
    for file in png_files:
        png_file = Image.open(file)
        if png_file.mode == "RGB":
            png_file = png_file.convert("RGB")
        sources.append(png_file)
    output.save(pdf_file_path, "pdf", save_all=True, append_images=sources)

if __name__ == "__main__":
    folder = r"G:\证件\\"
    pdfFile = r"G:\证件\身份证.pdf"
    combine_imgs_pdf(folder, pdfFile)

Dessa forma, contanto que você coloque suas fotos de identificação em uma pasta e execute esse código Python, ele poderá sintetizar automaticamente essas identificações em um PDF e enviá-lo para o caminho que você especificar. Muito simples e conveniente.

 

Se você precisar, você pode digitar este código para experimentá-lo!

[aprendizagem python]
Parceiros de aprendizado Python, bem-vindos ao novo intercâmbio [Jun Yang]: 1020465983
para discutir conhecimento de programação juntos, torne-se um grande deus, existem pacotes de instalação de software, casos práticos, materiais de aprendizado no grupo

Acho que você gosta

Origin blog.csdn.net/weixin_56659172/article/details/124400509
Recomendado
Clasificación