gpt4 book ai didi

ios - 将图像转换为 pdf 但不保存在文件中

转载 作者:可可西里 更新时间:2023-11-01 01:50:27 27 4
gpt4 key购买 nike

你好,我正在从文件打开 pdf 到 ImageView ,然后在 ImageView 上我正在删除图钉,之后我想再次保存为 pdf,但它没有保存在 iphone 上的文件中

我也尝试了下面的解决方案

https://stackoverflow.com/a/45001576/10804348

这是我的代码

import UIKit
import PDFKit

class PreviewViewController: UIViewController {

@IBOutlet private weak var imageView: UIImageView!

var image: UIImage?

override func viewDidLoad() {
super.viewDidLoad()
let longP = UILongPressGestureRecognizer(target: self, action: #selector(longPressed(sender:)))
self.imageView.addGestureRecognizer(longP)
imageView.isUserInteractionEnabled = true

imageView.image = image
}
@objc func longPressed(sender: UILongPressGestureRecognizer) {
print("longpressed")
let touchPoint = sender.location(in: self.imageView)
let xPOint = touchPoint.x
let yPoint = touchPoint.y
let buble = UIImageView(frame: CGRect(x: xPOint, y: yPoint, width: 20, height: 20))
buble.image = UIImage(named: "Pin")
imageView.addSubview(buble)
}
func createPDF(image: UIImage) -> NSData? {

let pdfData = NSMutableData()
let pdfConsumer = CGDataConsumer(data: pdfData as CFMutableData)!

var mediaBox = CGRect.init(x: 0, y: 0, width: image.size.width, height: image.size.height)

let pdfContext = CGContext(consumer: pdfConsumer, mediaBox: &mediaBox, nil)!

pdfContext.beginPage(mediaBox: &mediaBox)
pdfContext.draw(image.cgImage!, in: mediaBox)
pdfContext.endPage()

return pdfData
}
@IBAction func btnSaveTapped(_ sender: UIButton) {
let documentDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let docURL = documentDirectory.appendingPathComponent("myFileName.pdf")

createPDF(image: image!)?.write(to: docURL, atomically: true)
print("Saved")
}
}

但我仍然无法在设备文件中另存为 pdf,这里我附上屏幕截图以便您轻松理解 Here Is my OutPut and now i want to save as pdf with this pin

所以请告诉我这是正确的方法或者我哪里做错了请告诉我

最佳答案

使用此代码在 FileManager 中成功保存 pdf 文件。

@IBAction func btnSaveTapped(_ sender: UIButton) {
let fileManager = FileManager.default
do {
let documentDirectory = try fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor:nil, create:false)
let docURL = documentDirectory.appendingPathComponent("myFileName.pdf")
let myImage = UIImage(named: "Screen1")
print(docURL)
createPDF(image: myImage!)?.write(to: docURL, atomically: true)
} catch {
print(error)
}
}

在文件管理器中查看保存的文件

enter image description here

按照此步骤在路径中显示文件(使用模拟器运行时)

输出路径打印成

file:///Users/atulparmar/Library/Developer/CoreSimulator/Devices/D8012A46-71C3-4A99-8D81-31890208EF03/data/Containers/Data/Application/506B9D5A-9FB0-4865-8F14-D2DB27495B05/Documents/myFileName.pdf

打开 Finder -> Go -> Go to Folder.. 路径如下(快捷键 ⇧⌘G)

~/Library/Developer/CoreSimulator/Devices/D8012A46-71C3-4A99-8D81-31890208EF03/data/Containers/Data/Application/506B9D5A-9FB0-4865-8F14-D2DB27495B05/Documents/myFileName.pdf

如果您使用真实设备运行,那么您可以使用代码进行检查,请参阅此帖子以检查文件是否存在于设备中 How to check if a file exists in the Documents directory in Swift?

关于ios - 将图像转换为 pdf 但不保存在文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54821554/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com