使用 swift iOS 重命名下载的 pdf 文件
Rename the download pdf file using swift iOS
我正在从 api 端点成功下载 PDF。下载 pdf 后,pdf 的标题为:PDF document.pdf。
如何更改PDF的标题?
我尝试使用 PDFDocumentAttribute
(见下文)更新 metadata
的 PDF,但它不起作用。
var metadata = pdfDocument.documentAttributes!
metadata[PDFDocumentAttribute.subjectAttribute] = "subject attribute"
metadata[PDFDocumentAttribute. titleAttribute] = "title attribute"
pdfDocument.documentAttributes = metadata
注意:我没有使用 FileManager
我如何获取 PDF:-
let task = session.dataTask(with: urlRequest) { (data, _, error) in
DispatchQueue.main.async {
guard let unwrappedData = data, error == nil else {
completion(.failure(error ?? Constants.dummyError))
return
}
guard let pdfDocument = PDFDocument(data: unwrappedData) else {
completion(.failure(error ?? Constants.dummyError))
return
}
completion(.success(pdfDocument))
}
}
试试这个:
pdfDocument.documentAttributes?["Title"] = "my title attribute"
或
pdfDocument.documentAttributes?[PDFDocumentAttribute.titleAttribute] = "my title attribute"
与 PDFDocumentAttribute.subjectAttribute
类似。
以上将设置您文档的 Title
,当您保存它时,file
名称将是您给它的任何 file name
。
EDIT-1:将 pdfDocument
保存到具有所选 file name
的文件中。
DispatchQueue.main.async {
guard let unwrappedData = data, error == nil else {
completion(.failure(error ?? Constants.dummyError))
return
}
guard let pdfDocument = PDFDocument(data: unwrappedData) else {
completion(.failure(error ?? Constants.dummyError))
return
}
// set the Title
pdfDocument.documentAttributes?[PDFDocumentAttribute.titleAttribute] = "my title attribute"
do {
// save the document to the given file name ("mydoc.pdf")
let docURL = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent("mydoc.pdf") // <-- here file name
pdfDocument.write(to: docURL)
print("\n docUrl: \(docURL.absoluteString)\n")
}
catch {
print("Error \(error)")
}
completion(.success(pdfDocument))
}
我正在从 api 端点成功下载 PDF。下载 pdf 后,pdf 的标题为:PDF document.pdf。 如何更改PDF的标题?
我尝试使用 PDFDocumentAttribute
(见下文)更新 metadata
的 PDF,但它不起作用。
var metadata = pdfDocument.documentAttributes!
metadata[PDFDocumentAttribute.subjectAttribute] = "subject attribute"
metadata[PDFDocumentAttribute. titleAttribute] = "title attribute"
pdfDocument.documentAttributes = metadata
注意:我没有使用 FileManager
我如何获取 PDF:-
let task = session.dataTask(with: urlRequest) { (data, _, error) in
DispatchQueue.main.async {
guard let unwrappedData = data, error == nil else {
completion(.failure(error ?? Constants.dummyError))
return
}
guard let pdfDocument = PDFDocument(data: unwrappedData) else {
completion(.failure(error ?? Constants.dummyError))
return
}
completion(.success(pdfDocument))
}
}
试试这个:
pdfDocument.documentAttributes?["Title"] = "my title attribute"
或
pdfDocument.documentAttributes?[PDFDocumentAttribute.titleAttribute] = "my title attribute"
与 PDFDocumentAttribute.subjectAttribute
类似。
以上将设置您文档的 Title
,当您保存它时,file
名称将是您给它的任何 file name
。
EDIT-1:将 pdfDocument
保存到具有所选 file name
的文件中。
DispatchQueue.main.async {
guard let unwrappedData = data, error == nil else {
completion(.failure(error ?? Constants.dummyError))
return
}
guard let pdfDocument = PDFDocument(data: unwrappedData) else {
completion(.failure(error ?? Constants.dummyError))
return
}
// set the Title
pdfDocument.documentAttributes?[PDFDocumentAttribute.titleAttribute] = "my title attribute"
do {
// save the document to the given file name ("mydoc.pdf")
let docURL = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent("mydoc.pdf") // <-- here file name
pdfDocument.write(to: docURL)
print("\n docUrl: \(docURL.absoluteString)\n")
}
catch {
print("Error \(error)")
}
completion(.success(pdfDocument))
}