147 lines
4.6 KiB
Swift
147 lines
4.6 KiB
Swift
|
//
|
||
|
// PDFViewController.swift
|
||
|
// Befund
|
||
|
//
|
||
|
// Created by Irakli Abetschkhrischwili on 28.05.22.
|
||
|
// Copyright © 2022 MVZ Dr. Stein und Kollegen. All rights reserved.
|
||
|
|
||
|
import UIKit
|
||
|
import PDFKit
|
||
|
|
||
|
class PDFViewController: UIViewController, PDFViewDelegate
|
||
|
{
|
||
|
@IBOutlet weak var LBL_MY_RESULTS: UILabel!
|
||
|
@IBOutlet weak var PDFViewerArea: UIView!
|
||
|
private var PDFViewer: PDFView!
|
||
|
private var PDFData: Data? = nil
|
||
|
private var currentPdfDoc: PDFDocument? = nil
|
||
|
|
||
|
@IBOutlet weak var mainBtnBack: UIButton!
|
||
|
@IBOutlet weak var mainBtnMenu: UIButton!
|
||
|
|
||
|
@IBOutlet weak var popupOverlay: UIView!
|
||
|
@IBOutlet weak var popupContent: UIView!
|
||
|
|
||
|
@IBOutlet weak var popupBtnPrint: UIButton!
|
||
|
@IBOutlet weak var popupBtnShare: UIButton!
|
||
|
@IBOutlet weak var popupBtnBack: UIButton!
|
||
|
|
||
|
override func viewDidLoad()
|
||
|
{
|
||
|
super.viewDidLoad()
|
||
|
|
||
|
self.PDFViewer = PDFView(frame: self.PDFViewerArea.bounds)
|
||
|
self.PDFViewerArea.addSubview(self.PDFViewer)
|
||
|
self.PDFViewer.sizeToFit()
|
||
|
self.PDFViewer.autoScales = true
|
||
|
self.PDFViewer.displayDirection = .horizontal
|
||
|
|
||
|
self.PDFViewer.delegate = self
|
||
|
//self.LBL_BACK.text = Core.Lang.Get(key: "BTN_BACK")
|
||
|
self.LBL_MY_RESULTS.text = Core.Lang.Get(key: "BTN_MY_RESULT")
|
||
|
|
||
|
if(self.PDFData != nil)
|
||
|
{
|
||
|
self.currentPdfDoc = PDFDocument(data: self.PDFData!)
|
||
|
self.PDFViewer.document = self.currentPdfDoc
|
||
|
|
||
|
}
|
||
|
|
||
|
self.popupOverlay.frame = self.view.frame
|
||
|
self.view.addSubview(self.popupOverlay)
|
||
|
self.popupOverlay.isHidden = true
|
||
|
}
|
||
|
|
||
|
override func viewDidAppear(_ animated: Bool) {
|
||
|
super.viewDidAppear(animated)
|
||
|
self.InitLabels()
|
||
|
}
|
||
|
|
||
|
private func InitLabels()
|
||
|
{
|
||
|
self.LBL_MY_RESULTS.text = Core.Lang.Get(key: "BTN_MY_RESULT")
|
||
|
//self.LBL_BACK.text = Core.Lang.Get(key: "BTN_BACK")
|
||
|
|
||
|
self.popupBtnPrint.setTitle(Core.Lang.Get(key: "BTN_PRINT"), for: .normal)
|
||
|
self.popupBtnShare.setTitle(Core.Lang.Get(key: "BTN_FILE_SHARE"), for: .normal)
|
||
|
self.popupBtnBack.setTitle(Core.Lang.Get(key: "BTN_BACK"), for: .normal)
|
||
|
}
|
||
|
|
||
|
public func setContent(data: Data)
|
||
|
{
|
||
|
self.PDFData = data
|
||
|
}
|
||
|
|
||
|
@IBAction func goBack(_ sender: Any)
|
||
|
{
|
||
|
let transition = CATransition()
|
||
|
transition.duration = 0.25
|
||
|
transition.type = .push
|
||
|
transition.subtype = .fromLeft
|
||
|
self.view.window!.layer.add(transition, forKey: kCATransition)
|
||
|
self.dismiss(animated: false)
|
||
|
}
|
||
|
|
||
|
@IBAction func PopupMenuShow(_ sender: Any)
|
||
|
{
|
||
|
self.popupContent.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
|
||
|
self.popupOverlay.alpha = 0.0
|
||
|
self.popupOverlay.isHidden = false
|
||
|
|
||
|
UIView.animate(withDuration: 0.24) {
|
||
|
self.popupContent.transform = CGAffineTransform.identity
|
||
|
self.popupOverlay.alpha = 70.0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@IBAction func PopupMenuHide(_ sender: Any)
|
||
|
{
|
||
|
|
||
|
UIView.animate(withDuration: 0.24, animations: {
|
||
|
self.popupOverlay.alpha = 0.0
|
||
|
self.popupContent.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
|
||
|
}) {_ in
|
||
|
self.popupOverlay.isHidden = true
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
@IBAction func PrintButtonClick(_ sender: Any)
|
||
|
{
|
||
|
if(self.PDFViewer != nil)
|
||
|
{
|
||
|
let printController = UIPrintInteractionController.shared
|
||
|
let printInfo = UIPrintInfo(dictionary: nil)
|
||
|
printInfo.jobName = "Befunddruck"
|
||
|
printInfo.outputType = .photo
|
||
|
printController.printInfo = printInfo
|
||
|
printController.printingItem = self.PDFData
|
||
|
printController.present(animated: true)
|
||
|
{
|
||
|
(_, isPrinted, error) in
|
||
|
|
||
|
if(error != nil)
|
||
|
{
|
||
|
Core.Log.Error(err: error!, namespace: "PDFViewController", method: "PrintButtonClick")
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@IBAction func ShareButtonClick(_ sender: Any)
|
||
|
{
|
||
|
//var filesToShare = [Any]()
|
||
|
//filesToShare.append(self.currentPdfDoc)
|
||
|
|
||
|
if let pdfData = self.currentPdfDoc?.dataRepresentation()
|
||
|
{
|
||
|
let objectsToShare = [pdfData]
|
||
|
|
||
|
let activityViewController = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
|
||
|
activityViewController.popoverPresentationController?.sourceView = self.view
|
||
|
present(activityViewController, animated: true, completion: nil)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|