Печать UIImage с использованием AirPrint приводит к обрезанию содержимого
Я распечатываю UIImage
используя AirPrint, но поля не верны. Вот как это выглядит при печати:
Есть ли способ, которым я могу идеально разместить его на бумаге?
Вот код в соответствии с просьбой:
UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
//pic.delegate = del;
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = [NSString stringWithFormat:@"New Ticket"];
pic.printInfo = printInfo;
pic.printingItem = [UIImage imageWithContentsOfFile:path];
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
if (!completed && error) {
UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Error."
message:[NSString stringWithFormat:@"An error occured while printing: %@", error]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
[av show];
[av release];
}
};
[pic presentAnimated:YES completionHandler:completionHandler];
1 ответ
Лучше всего, вероятно, уменьшить масштаб изображения до соотношения напечатанного изображения, чтобы вы могли видеть все это на странице.
Есть несколько способов сделать это, поэтому я просто скажу вам, как я это сделаю. Я поддерживаю класс ANImageBitmapRep, который имеет несколько различных типов масштабирования изображения. Требуемый тип масштабирования сохраняет все изображение, но центрирует его внутри прямоугольника определенного размера. Сначала вы должны добавить исходные файлы ANImageBitmapRep в ваш проект и #import ANImageBitmapRep.h:
#import "ANImageBitmapRep.h"
Затем масштабируйте изображение следующим образом:
pic.printingItem = [[UIImage imageWithContentsOfFile:path] imageFittingFrame:CGSizeMake(478, 640)];
Вы можете изменить CGSizeMake(x, y)
на все, что вы хотите, чтобы настроить масштаб и разрешение масштабированного изображения.