J'essaye d'imprimer un fichier JPEG que je référence en utilisant un objet Uri et j'ai quelques difficultés. J'ai trouvé que pendant que l'image était imprimée, elle a été légèrement recadrée et retournée et mise en miroir. Je devine que la récolte a été causée par une taille qui n'a pas été réglée correctement, mais je ne sais pas pourquoi elle est retournée et tournée. En supposant qu'il s'agissait d'une bizarrerie naturelle, j'ai tenté de résoudre le problème en appliquant une transformation à l'objet drawingContext mais cela entraîne l'impression d'une page vierge. Voici mon code:Comment imprimer une image à partir d'un Uri?
public void Print(List<Uri> ListToBePrinted)
{
XpsDocumentWriter writer =
PrintQueue.CreateXpsDocumentWriter(this.SelectedPrinter.PrintQueue);
PrintCapabilities printerCapabilities =
this.SelectedPrinter.PrintQueue.GetPrintCapabilities();
Size PageSize =
new Size(printerCapabilities.PageImageableArea.ExtentWidth,
printerCapabilities.PageImageableArea.ExtentHeight);
foreach (Uri aUri in ListToBePrinted)
{
BitmapImage anImage = new BitmapImage(aUri);
//create new visual which would be initialized by image
DrawingVisual drawingVisual = new DrawingVisual();
//create a drawing context so that image can be rendered to print
DrawingContext drawingContext = drawingVisual.RenderOpen();
// Flips along X and Y axis (flips and mirrors)
drawingContext.PushTransform(new ScaleTransform(-1, -1));
drawingContext.DrawImage(anImage, new Rect(PageSize));
drawingContext.Close();
writer.Write(drawingVisual);
}
}
Toute aide serait grandement appréciée - merci!
J'ai tenté de l'implémenter mais j'ai créé une image vide (avec ou sans image.InvalidateVisual()). – Joel