Je rencontre des problèmes avec la bibliothèque .net (légèrement dépassée) appelée sharpPDF. Nous générons quelques images de notre application web gis et avons besoin de référencer les images dans cette bibliothèque. Le seul problème semble être la compression que la bibliothèque utilise (ou n'utilise pas). Les images sont PNG32.sharpPDF - aide pour la qualité d'image - spécification pdf
Le résultat est assez fortement compressé lorsque je compare les résultats avec pdf créé via iTextSharp (ce qui est malheureusement un pas pour nous, ne me demandez pas pourquoi).
J'ai remarqué que, dans le code source, il y a quelque chose comme ce qui suit:
// Images de PDF
foreach (pdfImageReference image in _images.Values)
{
_trailer.addObject(_bufferLength.ToString());
_bufferLength += writeToBuffer(_myBuffer, image.getText());
_bufferLength += writeToBuffer(_myBuffer, "stream" + Convert.ToChar(13) + Convert.ToChar(10));
_bufferLength += writeToBuffer(_myBuffer, image.content);
_bufferLength += writeToBuffer(_myBuffer, Convert.ToChar(13).ToString());
_bufferLength += writeToBuffer(_myBuffer, Convert.ToChar(10).ToString());
_bufferLength += writeToBuffer(_myBuffer, "endstream" + Convert.ToChar(13) + Convert.ToChar(10));
_bufferLength += writeToBuffer(_myBuffer, "endobj" + Convert.ToChar(13) + Convert.ToChar(10));
currentStep++;
}
qui regarde dans le temps d'exécution comme celui-ci
> 60517 0 obj << /Type /XObject /Subtype
> /Image /Name /I60517 /Filter
> /DCTDecode /Width 830 /Height 1300
> /BitsPerComponent 8 /ColorSpace
> /DeviceRGB /Length 77076
> >> stream
> -here goes some bytes- endstream endobj
quelqu'un peut-il, qui a une certaine connaissance de la spécification pdf, m'aider à comprendre les problèmes possibles avec la compression ici?
Tas merci ...
J'ai utilisé FlateDecode et le pdf dit: données insuffisantes pour une image. des idées? merci beaucoup – belzebu
Cela sonne comme si vous venez de changer les paramètres du dictionnaire sans altérer image.content. vous devez décoder et recompresser les données d'image aussi. –
Comment générez-vous cet objet stream? D'où viennent les données? Il est très probable que vous deviez définir le mécanisme de compression comme point de création de ce flux/dictionnaire d'images. – plinth