Domanda

Sto cercando di creare documenti PDF al volo in un'applicazione, cioè un utente fa clic su un link e un documento PDF viene visualizzato loro con un po 'di testo e alcune immagini.

Attualmente sto usando FPDF v1.6 (http://www.fpdf.org/) che supporta png a 24 bit (colore vero) ma il problema che ho è che questa è un'applicazione legacy e ci sono 1000 di PNG che hanno una profondità del colore a 16 bit che FPDF non supporta e non posso semplicemente convertire a causa di altre parti della Applicazione usando queste immagini.

Le uniche soluzioni che vedo sono:

  1. Converti l'immagine PNG a 16 bit al volo e incorporala nel PDF.
  2. Trova una nuova classe PDF di classe che accetterà PNG di profondità del colore 16 bit.

Qualcuno ha qualche idea?

È stato utile?

Soluzione

Forse potresti provare a usare Tcpdf (Non l'ho mai usato con PNG a 16 bit ma dovrebbe essere facile testarlo).

Altri suggerimenti

Risolto con questo in 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top