Showing
3 changed files
with
15 additions
and
1 deletions
| @@ -5,6 +5,7 @@ | @@ -5,6 +5,7 @@ | ||
| 5 | - Remove deprecated methods | 5 | - Remove deprecated methods |
| 6 | - Document.save() now returns a Future | 6 | - Document.save() now returns a Future |
| 7 | - Implement pan and zoom on PdfPreview widget | 7 | - Implement pan and zoom on PdfPreview widget |
| 8 | +- Improve orientation handling | ||
| 8 | 9 | ||
| 9 | ## 3.7.2 | 10 | ## 3.7.2 |
| 10 | 11 |
| @@ -27,6 +27,7 @@ public class PrintJob: UIPrintPageRenderer, UIPrintInteractionControllerDelegate | @@ -27,6 +27,7 @@ public class PrintJob: UIPrintPageRenderer, UIPrintInteractionControllerDelegate | ||
| 27 | private var pdfDocument: CGPDFDocument? | 27 | private var pdfDocument: CGPDFDocument? |
| 28 | private var urlObservation: NSKeyValueObservation? | 28 | private var urlObservation: NSKeyValueObservation? |
| 29 | private var jobName: String? | 29 | private var jobName: String? |
| 30 | + private var orientation: UIPrintInfo.Orientation? | ||
| 30 | 31 | ||
| 31 | public init(printing: PrintingPlugin, index: Int) { | 32 | public init(printing: PrintingPlugin, index: Int) { |
| 32 | self.printing = printing | 33 | self.printing = printing |
| @@ -62,6 +63,10 @@ public class PrintJob: UIPrintPageRenderer, UIPrintInteractionControllerDelegate | @@ -62,6 +63,10 @@ public class PrintJob: UIPrintPageRenderer, UIPrintInteractionControllerDelegate | ||
| 62 | let printInfo = UIPrintInfo.printInfo() | 63 | let printInfo = UIPrintInfo.printInfo() |
| 63 | printInfo.jobName = jobName! | 64 | printInfo.jobName = jobName! |
| 64 | printInfo.outputType = .general | 65 | printInfo.outputType = .general |
| 66 | + if orientation != nil { | ||
| 67 | + printInfo.orientation = orientation! | ||
| 68 | + orientation = nil | ||
| 69 | + } | ||
| 65 | controller.printInfo = printInfo | 70 | controller.printInfo = printInfo |
| 66 | controller.printPageRenderer = self | 71 | controller.printPageRenderer = self |
| 67 | controller.present(animated: true, completionHandler: completionHandler) | 72 | controller.present(animated: true, completionHandler: completionHandler) |
| @@ -112,6 +117,10 @@ public class PrintJob: UIPrintPageRenderer, UIPrintInteractionControllerDelegate | @@ -112,6 +117,10 @@ public class PrintJob: UIPrintPageRenderer, UIPrintInteractionControllerDelegate | ||
| 112 | return | 117 | return |
| 113 | } | 118 | } |
| 114 | 119 | ||
| 120 | + if size.width > size.height { | ||
| 121 | + orientation = UIPrintInfo.Orientation.landscape | ||
| 122 | + } | ||
| 123 | + | ||
| 115 | jobName = name | 124 | jobName = name |
| 116 | 125 | ||
| 117 | self.printing.onLayout( | 126 | self.printing.onLayout( |
| @@ -80,12 +80,16 @@ public class PrintJob: NSView, NSSharingServicePickerDelegate { | @@ -80,12 +80,16 @@ public class PrintJob: NSView, NSSharingServicePickerDelegate { | ||
| 80 | 80 | ||
| 81 | public func directPrintPdf(name _: String, data _: Data, withPrinter _: String) {} | 81 | public func directPrintPdf(name _: String, data _: Data, withPrinter _: String) {} |
| 82 | 82 | ||
| 83 | - public func printPdf(name: String, withPageSize _: CGSize, andMargin _: CGRect) { | 83 | + public func printPdf(name: String, withPageSize size: CGSize, andMargin _: CGRect) { |
| 84 | let sharedInfo = NSPrintInfo.shared | 84 | let sharedInfo = NSPrintInfo.shared |
| 85 | let sharedDict = sharedInfo.dictionary() | 85 | let sharedDict = sharedInfo.dictionary() |
| 86 | let printInfoDict = NSMutableDictionary(dictionary: sharedDict) | 86 | let printInfoDict = NSMutableDictionary(dictionary: sharedDict) |
| 87 | let printInfo = NSPrintInfo(dictionary: printInfoDict as! [NSPrintInfo.AttributeKey: Any]) | 87 | let printInfo = NSPrintInfo(dictionary: printInfoDict as! [NSPrintInfo.AttributeKey: Any]) |
| 88 | 88 | ||
| 89 | + if size.width > size.height { | ||
| 90 | + printInfo.orientation = NSPrintInfo.PaperOrientation.landscape | ||
| 91 | + } | ||
| 92 | + | ||
| 89 | // Print the custom view | 93 | // Print the custom view |
| 90 | printOperation = NSPrintOperation(view: self, printInfo: printInfo) | 94 | printOperation = NSPrintOperation(view: self, printInfo: printInfo) |
| 91 | printOperation!.jobTitle = name | 95 | printOperation!.jobTitle = name |
-
Please register or login to post a comment