2012-01-17 13 views
5

Sto costruendo una stampante per etichette. Consiste in un logo e un testo, non è difficile. Ho già trascorso 3 giorni a cercare di ottenere il logo SVG originale per disegnare sullo schermo ma l'SVG è troppo complesso, utilizzando troppe sfumature, ecc.Come posso migliorare la qualità dell'immagine di ReportLab?

Quindi ho un logo bitmap di alta qualità (come JPG o PNG) e lo sto disegnando su una tela di ReportLab. L'immagine in questione è molto più grande di 85 * 123 px. Ho fatto questo sperando che ReportLab avrebbe incorporato tutto e adattato di conseguenza. Ecco come lo sto facendo:

canvas.drawImage('logo.jpg', 22+xoffset, 460, 85, 123) 

Il problema è che la mia ipotesi non era corretta. Sembra ridimensionarlo a 85 * 123 px a risoluzione dello schermo e ciò significa che quando viene stampato, non sembra fantastico.

ReportLab dispone di comandi DPI per tele o documenti in modo da poter mantenere la qualità sana?

risposta

1

Un'opzione che ho pensato mentre scrivevo la domanda è: aumentare le dimensioni del PDF e lasciare che la stampante risolva le cose.

Se ho solo moltiplicato tutti i miei numeri per 5 e la stampante è riuscita a capire le cose, sarei vicino a 350 dpi ... Ma sto facendo una ipotesi.

8

Avendo già lavorato presso la società ReportLab, posso dire che le immagini raster non passano attraverso il resampling/downscaling automatico pur essendo incluse nel PDF. Le dimensioni 85 * 123 che stai utilizzando non sono pixel, ma punti (pt) che sono unità fisiche come millimetri o pollici.

Vorrei suggerire di stampare il PDF con immagini di qualità diversa per confermare questo o altrimenti lo zoom molto, molto lontano utilizzando il visualizzatore di PDF. Apparirà sempre un po 'sfocato in un visualizzatore PDF poiché l'immagine viene ricampionata due volte (una volta nel software di imaging e poi di nuovo nei pixel disponibili per il visualizzatore PDF).

Questo è come vorrei calcolare quale dimensione in pixel per rendere un'immagine raster per poter stampare bene ad una data dimensione fisica:

Si supponga che voglio l'immagine da 2 pollici di larghezza, ci sono 72 punti in un pollice quindi la larghezza nel mio codice sarebbe 144. So che una buona risoluzione nitida da stampare è di 300 dpi (punti per pollice), quindi l'immagine raster viene salvata a 600px di larghezza.

Problemi correlati