Question

J'essaie de créer des documents PDF à la volée dans une application, c'est-à-dire qu'un utilisateur clique sur un lien et un document PDF s'affiche avec du texte et des images.

J'utilise actuellement FPDF v1.6 (http://www.fpdf.org/) qui prend en charge les PNG 24 bits (vraie couleur), mais le problème que j'ai est qu'il s'agit d'une application héritée et qu'il y a des milliers de PNG qui sont de la profondeur de couleur 16 bits que FPDF ne prend pas en charge et je ne peux pas simplement convertir en raison des autres parties de la application en utilisant ces images.

Les seules solutions que je vois sont:

  1. Convertissez l'image PNG 16 bits à la volée et intégrez-la en PDF.
  2. Trouvez une nouvelle classe PDF de classe qui acceptera les PNG de profondeur de couleur 16 bits.

Quelqu'un a-t-il des idées?

Était-ce utile?

La solution

Peut-être que vous pourriez essayer d'utiliser TCPDF (Je ne l'ai jamais utilisé avec des PNG 16 bits mais il devrait être facile de le tester).

Autres conseils

Corrigé avec cela dans Python:

def fix_16_bit_depth_not_supported(raw_image_path):
    """
    fix
    RuntimeError: FPDF error: 16-bit depth not supported: test.png
    """
    new_file, filename = tempfile.mkstemp(suffix='.png')
    os.close(new_file)
    i = cv2.imread(raw_image_path, cv2.IMREAD_UNCHANGED)
    img = np.array(i, dtype=np.float32)
    convert = img / 255.
    cv2.imwrite(filename, convert)
    return filename
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top