patbef-iOS/Befund/Controllers/PDFViewController.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)
}
}
}