I have a pdf containing some barcodes. In WKWebView the pdf preview is fine(Barcodes are shown). But in the print Preview barcodes are not coming.
Here is the code I am using.
#define kPrintingPerPageEdgeInsets UIEdgeInsetsMake(60, 40, 60, 40)
- (void)presentPrintInteractionControllerWithFormatter:(UIPrintFormatter *)printFormatter
jobName:(NSString *)jobName
contentType:(PrintingContentType)contentType
actionSheetBarButtonItem:(UIBarButtonItem *)barButtonItem
printInfoOrientation:(UIPrintInfoOrientation) printOrientation
{
UIPrintInteractionController *printInteractionController = [[self class] createPrintInteractionControllerWithJobName:jobName];
printInteractionController.printFormatter = printFormatter;
printInteractionController.printFormatter.perPageContentInsets = kPrintingPerPageEdgeInsets;
printInteractionController.printInfo.orientation = printOrientation;
[self presentPrintInteractionController:printInteractionController
contentType:contentType
barButtonItem:barButtonItem];
}
+ (UIPrintInteractionController *)createPrintInteractionControllerWithJobName:(NSString *)jobName
{
UIPrintInteractionController *printInteractionController = [UIPrintInteractionController sharedPrintController];
printInteractionController.printingItem = nil;
printInteractionController.printFormatter = nil;
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = jobName;
printInteractionController.printInfo = printInfo;
return printInteractionController;
}
I have identified the solution by myself. Instead of using printFormatter we can use PrintingItem property of printInteractionController to print the document.
printInteractionController.printFormatter = nil;
printInteractionController.printingItem = pdfData;
pdfData is the NSData related to the pdf.