Задать вопрос
Ответы пользователя по тегу Python
  • Как правильно конвертировать .pdf -> .png -> .pdf?

    @glu-dimaz Автор вопроса
    def pdf_to_png(pdf_path, poppler_path, dpi=300):
        images = convert_from_path(pdf_path, dpi=dpi, poppler_path=poppler_path)
        image_paths = []
        
        for i, image in enumerate(images):
            image_path = f"page_{i+1}.png"
            image.save(image_path, "PNG")
            image_paths.append(image_path)
        
        return image_paths
    
    def png_to_pdf(image_paths, output_pdf, dpi=300):
        pdf = None
        
        for image_path in image_paths:
            image = Image.open(image_path)
            width, height = image.size
            width_pt = width * 72 / dpi  
            height_pt = height * 72 / dpi
            
            if pdf is None:
                pdf = FPDF(unit="pt", format=[width_pt, height_pt])
            pdf.add_page()
            pdf.image(image_path, 0, 0, width_pt, height_pt)
        
        pdf.output(output_pdf, "F")
    
    def convert_pdf_to_pdf(pdf_path, output_pdf, poppler_path, dpi=300):
        image_paths = pdf_to_png(pdf_path, poppler_path, dpi)
        png_to_pdf(image_paths, output_pdf, dpi)
    
    pdf_path = "form.pdf"  # Path to the input PDF
    output_pdf = "output.pdf"  # Path to the final PDF
    poppler_path = r"C:\\poppler-24.08.0\\Library\\bin" 
    
    convert_pdf_to_pdf(pdf_path, output_pdf, poppler_path)
    print("Conversion complete!")
    Ответ написан
    Комментировать
  • Как исправить ошибку при выполнении кода с Tesseract-OCR (не видит русский язык)?

    @glu-dimaz
    C:\\Program Files\\Tesseract-OCR/rus.traineddata
    Указано в ошибке, а у вас в проводнике:
    C:\\Program Files\\Tesseract-OCR/tessdata/rus.traineddata

    Лучше ипользовать EasyOCR, куда более эффективен при машинном зрении, но требует значительной обработки изображения перед чтением и не любит шумы. Писал ПО для чтения вин-номеров авто с японских сертификатов на экспорт. Сначала пользовался Tesseract, потом перешел на EasyOCR:
    Вот последние результаты чтения:
    [03.02.2025 / 16:31:55] Task " is completed. Result: 31/35. User is: 1369
    [03.02.2025 / 14:14:47] Task " is completed. Result: 14/17. User is: 1322
    [31.01.2025 / 16:27:18] Task " is completed. Result: 22/25. User is: 1322
    [31.01.2025 / 16:01:32] Task " is completed. Result: 9/9. User is: 1369
    [30.01.2025 / 15:52:53] Task " is completed. Result: 45/58. User is: 1369
    [29.01.2025 / 15:12:49] Task " is completed. Result: 40/44. User is: 1369

    70%+ точного определения текста с изображений
    Ответ написан