iTextSharp rend l'image de mauvaise qualité en PDF

Je suis en utilisant iTextSharp pour imprimer un document PDF. Tout ce passe bien jusqu'à ce que je imprimer le logo de l'entreprise.

D'abord, j'ai remarqué que le logo de mauvaise qualité, mais après des tests avec plusieurs images, je me rends compte que c'était la iTextSharp rendu mal.
Le test que j'ai fait pour dire que c'est d'imprimer le fichier PDF à l'aide de mon code, puis sur modifier le document avec Acrobat 8.0, et j'ai dessiné une image. Ensuite imprimé les deux documents, et vu la différence notable.
Ma question est que si quelqu'un sait si cela peut être dû à un problème de montée en charge où je ne suis pas pour dire iTextSharp la façon dont il doit rendre l'image ou est un iTextSharp limitation.

Le code pour rendre l'image est la suivante:

            Dim para As Paragraph = New Paragraph
            para.Alignment = Image.RIGHT_ALIGN
            para.Add(text)

            Dim imageFile As String = String.Format("{0}{1}", GetAppSetting("UploadDirectory"), myCompany.LogoUrl)

            Dim thisImage As Image = Image.GetInstance(imageFile)
            thisImage.Alignment = Image.LEFT_ALIGN

            para.Add(thisImage)

Les images imprimées sont les suivantes:
le texte d'alt http://img710.imageshack.us/img710/4199/sshot2y.png

Image imprimée directement avec iTextSharp

le texte d'alt http://img231.imageshack.us/img231/3610/sshot1z.png

Image éditée et imprimée avec Acrobat 8

EDIT:
Ces images de logo sont chargées à partir d'une page de Téléchargement où l'utilisateur uploades quel que soit le logo de l'image qu'il veut, et j'ai été mise à l'échelle de l'image en utilisant le code suivant:

            Dim graph As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(newImage)

            graph.CompositingMode = Drawing.Drawing2D.CompositingMode.SourceOver
            graph.CompositingQuality = Drawing.Drawing2D.CompositingQuality.HighQuality
            graph.InterpolationMode = Drawing.Drawing2D.InterpolationMode.Bicubic
            graph.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality
            graph.PixelOffsetMode = Drawing.Drawing2D.PixelOffsetMode.HighQuality

            graph.DrawImage(newImage, 0, 0, newWidth, newHeight)

            graph.Dispose()
            graph = Nothing

C'était à l'origine de perdre des informations à partir de l'image d'origine, de sorte que lors de l'impression du fichier pdf, que de perdre de l'info a été très sensible parce que, en quelque sorte, iTextSharp était le dessin plus grand qu'il était, peu importe la mise à l'échelle, j'ai mis dans.
J'ai donc essayé de stocker l'image telle qu'elle était à l'origine, la prévention de l'utilisateur à ne pas télécharger des images plus grandes que 200K et le redimensionnement de l'image afin que je puisse mantain le ratio d'aspect, et à l'aide que le redimensionnement avec la iTextSharp Image de l'objet avant qu'il a été imprimé.
Cela a résolu mon problème de l'image imprimée à la mauvaise qualité de ces images plus grandes, mais il a causé le document pdf pour avoir un saut de page ou tout simplement pas de place dans la page, chose bizarre, parce que l'apparence de l'image de bonne taille, mais il se comporte comme s'il était plus grand.
C'est une capture d'écran de la nouvelle image:
le texte d'alt http://img38.imageshack.us/img38/5756/sshot3tc.png

EDIT 2:

Lors de l'inspection du iTextSharp Image qui est renvoyée à être imprimé, il ne montre pas de modifications après la mise à l'échelle à l'aide de ScaleAbsolute, c'est pourquoi les sauts de page. Mais s'affiche correctement, comme l'image a bien été mis à l'échelle, mais l'arrière-plan "papier" ne l'était pas.
Le code utilisé est le suivant:

                Dim imageFile As String = String.Format("{0}{1}", GetAppSetting("UploadDirectory"), myCompany.LogoUrl)

Dim thisImage Comme Image = Image.GetInstance(imageFile)
thisImage.L'Alignement = Image.LEFT_ALIGN

            Dim newWidth As Integer = myCompany.LogoWidth
            Dim newHeight As Integer = myCompany.LogoHeight
            ResizeImageToMaxValues(newWidth, newHeight)
            thisImage.ScaleAbsolute(newWidth, newHeight)

            para.Add(thisImage)

            pdf.PdfDocument.Add(para)

La méthode ResizeImage() ne le redimensionnement de la largeur et la hauteur en respectant le ratio d'aspect et de garder un max de largeur et une hauteur max de limites.

S'il vous plaît laissez-moi savoir si j'ai besoin de fournir plus d'informations. Grâce

Ma première pensée serait que c'est un problème de résolution, que lorsque je crée une image à partir du fichier et de définir sa taille, je suis en train de faire mal tellement il est créé avec moins de résolution que la itextSharp besoins à rendre avec la bonne qualité, mais j'aimerais savoir ce que vous pensez.

OriginalL'auteur Sebastian | 2010-03-26