背景:我目前正在设计一个类似于注册页面的应用程序,它的作用是从UITextField获取用户输入并将其放到PDF文件中。
PDF文件:此PDF文件已生成(我使用pdf制作者创建),正常打开时可编辑(仅使用任何pdf开启工具)。
我的麻烦/疑问:目前在我的视图控制器中,我的代码只生成一个用户文本字段条目的pdf。我想知道我是否想要获得多个文本输入,我应该将其作为数组进行,然后将其传递给.draw CG模型或任何更好的方法。我的第二个问题是有一种方法我不必使用swift绘制这个pdf文件,而是使用我已经创建的.pdf文件作为模板。我看到你可以使用HTML模板,但是如果我不得不重新编写.pdf,而不仅仅是使用HTML代码,我感到很困惑? 这就是我目前的代码:
import UIKit
class ViewController: UIViewController {
var size = CGSize()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBOutlet weak var myTextView: UITextView!
@IBOutlet weak var myview: UITextField!
@IBAction func generatePDFButton(_ sender: Any)
{
size = CGSize(width: 850, height: 1100);
let filename: String = "Good.pdf";
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory,.userDomainMask, true)[0];
let writePath = URL(fileURLWithPath: path).appendingPathComponent(filename).path
print(writePath)
generatepdf(filepath: writePath);
}
func generatepdf(filepath: String)
{
UIGraphicsBeginPDFContextToFile(filepath as String, CGRect.zero, nil);
UIGraphicsBeginPDFPageWithInfo(CGRect(x: 0,y: 0, width: 850, height: 1100), nil);
drawText();
UIGraphicsEndPDFContext();
}
func drawText(){
UIGraphicsGetCurrentContext();
let textRect = CGRect(x: 0, y: 0, width: 850, height: 1100);
let font = UIFont(name: "Courier", size: 14);
let text = myview.text;
let textStyle = NSMutableParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle;
let textColor = UIColor.black;
let textFontAttributes =
[
NSFontAttributeName : font!,
NSForegroundColorAttributeName: textColor,
NSParagraphStyleAttributeName: textStyle
];
text?.draw(in: textRect, withAttributes: textFontAttributes);
}
任何建议,提示和指南都表示赞赏。