【问题标题】:How to page break a PDF in swift如何快速分页PDF
【发布时间】:2020-09-01 21:20:01
【问题描述】:

我不知道如何为我正在创建的 PDF 创建分页符,我尝试了几种不同的创建 PDF 的方法,结果都一样。我正在尝试为长的多行标签创建 PDF。

当我尝试通过 UIActivityView 仅打印一个字符串时,它可以完美地处理分页符,正如您所期望的那样。但是,当我尝试保存或打印 PDF 时,它在打印预览或保存 PDF 时仅显示一页。

如何在 PDF 中包含所有文本?

这是我现在只为 UIActivityView 调用 PDF 的共享函数

 // Share function for share button
@objc func shareTapped() {
    
    // Create printable string
    let printableString = "Line measurement: \(sizeTransfer.text ?? "No data")\nCalculated size: \(heightSizeTransfer.text ?? "No data")\nHeight: \(heightTransfer.text ?? "No data")\n \nCoursing results:\n \n \(calcOutput.text ?? "No data")"
    
    // String print formatting
    let attrs = [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 12), NSAttributedString.Key.foregroundColor: UIColor.black]
    let str = NSAttributedString(string: printableString, attributes: attrs)
    let print = (UISimpleTextPrintFormatter(attributedText: str))
    
    // Saving string file
    let tempDir = FileManager.default.temporaryDirectory
    let stringFileName = "Coursing Printout"
    let tempStringDir = tempDir.appendingPathComponent(stringFileName)
    try? printableString.write(to: tempDir, atomically: true, encoding: String.Encoding.utf8)
    
    // Create PDF
    let pageRect = CGRect(x: 0, y: 0, width: 612, height: 792)
    let renderer = UIGraphicsPDFRenderer(bounds: pageRect)
    let text = printableString
    let textAttributes = [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 12)]
    let formattedText = NSAttributedString(string: text, attributes: textAttributes)
    let data = renderer.pdfData { ctx in
        ctx.beginPage()
        formattedText.draw(in: pageRect.insetBy(dx: 50, dy: 50))
    }
    
    // Give sharing functionality
    let vc = UIActivityViewController(activityItems: [data], applicationActivities: [])
    present(vc, animated: true)
    vc.excludedActivityTypes = [.assignToContact, .addToReadingList]
    
}

【问题讨论】:

  • 我该怎么做?我已经阅读了很多文档并搜索了高低,但找不到简单的解决方案。请记住,我对编码还是很陌生...

标签: swift pdf


【解决方案1】:

经过一周的搜索,我终于找到了这个!

这是拆分 PDF 最简单、最权威的方法!

https://pspdfkit.com/blog/2019/converting-attributed-string-to-pdf/

【讨论】:

  • 请把相关信息写在这里。仅链接的答案是无用的。
  • 这不是一种抄袭,我不承认来源吗?
  • 不。抄袭就是将帖子复制粘贴到此处而无需更改。理想情况下,用自己的话写一个简短的答案。您可以保留链接以获取详细信息。
  • 是的,这不是学校作业。它的真实生活。只写答案
  • 哎呀,我忘了解决这个问题,我明天会完成它
猜你喜欢
  • 2010-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
  • 2017-05-17
  • 2011-07-10
相关资源
最近更新 更多