Я хочу напечатать UIImage на фотобумаге размером ровно 15x10 см (6 "x4") с моим стандартным офисным принтером, который имеет эту конкретную бумагу в лотке.Как напечатать UIImage, который не может быть отрезан?
Что бы я ни делал, изображение обрезается. Что бы не было огромной сделкой, если бы оно не содержало текстовых данных и изображения (оно представляет собой открытку). Поэтому абсолютно необходимо напечатать весь UIImage.
Я пробовал разные способы, в настоящее время я делаю это так:
var printInfo = UIPrintInfo.PrintInfo;
printInfo.OutputType = UIPrintInfoOutputType.Photo;
printInfo.Orientation = UIPrintInfoOrientation.Landscape;
float pageWidth = 5.90551181102362f * 72;
float pageHeight = 3.93700787401575f * 72;
var foo = new UIImageView();
foo.Frame = new RectangleF(0, 0, pageWidth, pageHeight);
foo.ContentMode = UIViewContentMode.ScaleAspectFill;
foo.Image = _postcard;
_printer = UIPrintInteractionController.SharedPrintController;
_printer.PrintInfo = printInfo;
_printer.ShowsPageRange = false;
_printer.PrintFormatter = foo.ViewPrintFormatter;
await _printer.PresentFromRectInViewAsync(_printButton.Frame, View, true);
Как вы можете видеть, что это C#, как я работаю с MonoTouch, однако это та же логика, как это было бы с объективно- C.
Я использую UIImageView с точным размером 15x10 см, в лотке есть бумага размером 15x10 см, но выход вырезается.
К слову, я напечатал (автоматически) выбранную бумагу и ее свойства на консоли, она говорит, что имеется печатный прямоугольник размером 432x288 px/points, который немного больше моего целевого формата (возможно ли это iOS предполагает, что он должен использовать другой формат?).
Это сводит меня с ума ... каждый намек высоко ценится.
Edit: 432x288 точек = 6 * 72 х 4 * 72 = 6 * 4"