Commit b5bd873f authored by lujunye's avatar lujunye

阿斯顿发送到发333

parent a87a2bec
......@@ -8,8 +8,9 @@
import UIKit
import LGButton
import WebKit
class NewCKVc: BaseViewController,UITableViewDelegate,UITableViewDataSource,CKNonGmCellDelegate,CKGmCellDelegate, PiCiXuanZeViewControllerDelegate,GLAlertSelectViewDelegate,NewSelectItemVcDelegate,GeliAlertTextViewDelegate, Print_Gprinter_View_Delegate{
class NewCKVc: BaseViewController,UITableViewDelegate,UITableViewDataSource,CKNonGmCellDelegate,CKGmCellDelegate, PiCiXuanZeViewControllerDelegate,GLAlertSelectViewDelegate,NewSelectItemVcDelegate,GeliAlertTextViewDelegate, Print_Gprinter_View_Delegate,WKNavigationDelegate{
func NewSelectItemVcSelect(datas: Array<InputInitInfoGoodsInfoModel>, pici: Array<Array<GetGoodBatchDataModel>>,select:Array<Int>,str:Array<String>,typeArr:Array<Int>,imgArr:Array<String>) {
rkSelectArr.removeAll()
datas.forEach { (item) in
......@@ -198,8 +199,15 @@ class NewCKVc: BaseViewController,UITableViewDelegate,UITableViewDataSource,CKNo
}
var goodsInfoArr:Array<Any> = []
@IBOutlet weak var gm_view: UIView!
let wkWebView = WKWebView()
// 页面加载完成之后调用
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!){
print("页面加载完成...")
webView.takeScreenshotOfFullContent { (img) in
@IBAction func ck_action(_ sender: UIButton) {
let command = TscCommand()
command.addSize(40, 30)
command.addGap(withM: 2, withN: 0)
......@@ -207,11 +215,22 @@ class NewCKVc: BaseViewController,UITableViewDelegate,UITableViewDataSource,CKNo
command.addTear("ON")
command.addQueryPrinterStatus(Response(rawValue: 1)!)
command.addCls()
let image = UIImage(named: "3.png")
command.addBitmapwithX(0, withY: 0, withMode: 0, withWidth: 400, with: image)
command.addBitmapwithX(0, withY: 0, withMode: 0, withWidth: 400, with: img)
command.addPrint(1, 1)
ConnecterManager.sharedInstance()?.write(command.getCommand())
}
}
@IBAction func ck_action(_ sender: UIButton) {
let urlStr = "https://c.gelifood.com/market/src/views/Order/codeDetail.html?order_id=12767"
let urlString = urlStr.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
let url = URL(string: urlString)
let request = URLRequest.init(url: url!, cachePolicy: .reloadRevalidatingCacheData, timeoutInterval: 10)
wkWebView.navigationDelegate = self
wkWebView.load(request)
return
if isGm {
......@@ -643,3 +662,103 @@ class NewCKVc: BaseViewController,UITableViewDelegate,UITableViewDataSource,CKNo
glSelectView = nil
}
}
/// WebViewPrintPageRenderer: use to print the full content of webview into one image
internal final class WebViewPrintPageRenderer: UIPrintPageRenderer {
private var formatter: UIPrintFormatter
private var contentSize: CGSize
/// 生成PrintPageRenderer实例
///
/// - Parameters:
/// - formatter: WebView的viewPrintFormatter
/// - contentSize: WebView的ContentSize
required init(formatter: UIPrintFormatter, contentSize: CGSize) {
self.formatter = formatter
self.contentSize = contentSize
super.init()
self.addPrintFormatter(formatter, startingAtPageAt: 0)
}
override var paperRect: CGRect {
return CGRect.init(origin: .zero, size: contentSize)
}
override var printableRect: CGRect {
return CGRect.init(origin: .zero, size: contentSize)
}
private func printContentToPDFPage() -> CGPDFPage? {
let data = NSMutableData()
UIGraphicsBeginPDFContextToData(data, self.paperRect, nil)
self.prepare(forDrawingPages: NSMakeRange(0, 1))
let bounds = UIGraphicsGetPDFContextBounds()
UIGraphicsBeginPDFPage()
self.drawPage(at: 0, in: bounds)
UIGraphicsEndPDFContext()
let cfData = data as CFData
guard let provider = CGDataProvider.init(data: cfData) else {
return nil
}
let pdfDocument = CGPDFDocument.init(provider)
let pdfPage = pdfDocument?.page(at: 1)
return pdfPage
}
private func covertPDFPageToImage(_ pdfPage: CGPDFPage) -> UIImage? {
let pageRect = pdfPage.getBoxRect(.trimBox)
let contentSize = CGSize.init(width: floor(pageRect.size.width), height: floor(pageRect.size.height))
// usually you want UIGraphicsBeginImageContextWithOptions last parameter to be 0.0 as this will us the device's scale
UIGraphicsBeginImageContextWithOptions(contentSize, true, 2.0)
guard let context = UIGraphicsGetCurrentContext() else {
return nil
}
context.setFillColor(UIColor.white.cgColor)
context.setStrokeColor(UIColor.white.cgColor)
context.fill(pageRect)
context.saveGState()
context.translateBy(x: 0, y: contentSize.height)
context.scaleBy(x: 1.0, y: -1.0)
context.interpolationQuality = .low
context.setRenderingIntent(.defaultIntent)
context.drawPDFPage(pdfPage)
context.restoreGState()
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
/// print the full content of webview into one image
///
/// - Important: if the size of content is very large, then the size of image will be also very large
/// - Returns: UIImage?
internal func printContentToImage() -> UIImage? {
guard let pdfPage = self.printContentToPDFPage() else {
return nil
}
let image = self.covertPDFPageToImage(pdfPage)
return image
}
}
extension WKWebView {
public func takeScreenshotOfFullContent(_ completion: @escaping ((UIImage?) -> Void)) {
self.scrollView.setContentOffset(CGPoint(x: 0, y: 0), animated: false)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.3) {
let renderer = WebViewPrintPageRenderer.init(formatter: self.viewPrintFormatter(), contentSize: self.scrollView.contentSize)
let image = renderer.printContentToImage()
completion(image)
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment