Swift
PDF url
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func extractText(_ sender: Any) {
guard let url = URL(string: "https://v1.mlapi.co/pdf/pdf-to-text") else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"
let body = "pdf_url=https://example.com/your-pdf.pdf&api_key=your_api_key"
request.httpBody = body.data(using: .utf8)
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print("Error:", error ?? "Unknown error")
return
}
let responseString = String(data: data, encoding: .utf8)
DispatchQueue.main.async {
self.textView.text = responseString
}
}
task.resume()
}
}
Upload PDF file
import UIKit
class ViewController: UIViewController, UIDocumentPickerDelegate {
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func pickFile(_ sender: Any) {
let documentPicker = UIDocumentPickerViewController(documentTypes: ["com.adobe.pdf"], in: .import)
documentPicker.delegate = self
present(documentPicker, animated: true, completion: nil)
}
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
guard let url = urls.first else { return }
uploadFile(url: url)
}
func uploadFile(url: URL) {
guard let requestUrl = URL(string: "https://v1.mlapi.co/pdf/pdf-to-text") else { return }
var request = URLRequest(url: requestUrl)
request.httpMethod = "POST"
let boundary = UUID().uuidString
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
var data = Data()
data.append("--\(boundary)\r\n".data(using: .utf8)!)
data.append("Content-Disposition: form-data; name=\"file\"; filename=\"\(url.lastPathComponent)\"\r\n".data(using: .utf8)!)
data.append("Content-Type: application/pdf\r\n\r\n".data(using: .utf8)!)
data.append(try! Data(contentsOf: url))
data.append("\r\n".data(using: .utf8)!)
data.append("--\(boundary)\r\n".data(using: .utf8)!)
data.append("Content-Disposition: form-data; name=\"api_key\"\r\n\r\n".data(using: .utf8)!)
data.append("your_api_key\r\n".data(using: .utf8)!)
data.append("--\(boundary)--\r\n".data(using: .utf8)!)
let task = URLSession.shared.uploadTask(with: request, from: data) { data, response, error in
guard let data = data, error == nil else {
print("Error:", error ?? "Unknown error")
return
}
let responseString = String(data: data, encoding: .utf8)
DispatchQueue.main.async {
self.textView.text = responseString
}
}
task.resume()
}
}
Last updated