Ios 创建并保存包含swift格式图像的PDF

Ios 创建并保存包含swift格式图像的PDF,ios,swift,pdf,Ios,Swift,Pdf,我正在尝试在我的应用程序中创建并保存报表的pdf。我搜索并发现非常有用,它可以从html创建pdf,这很好,但它不适用于。我希望徽标出现在我的报告/pdf中 当我在浏览器上尝试它时,它工作了,图像显示了出来,但在我检查文件后,图像并没有保存到pdf中。我已经搜索并尝试执行base64编码图像,但也失败了 或者有没有更好的方法来设计和创建漂亮的pdf报告 提前感谢。我在这方面已经有一段时间了,终于有了一些突破 由于您正在加载html字符串,它对图像不起作用,因此必须在web视图中加载html,然后

我正在尝试在我的应用程序中创建并保存报表的pdf。我搜索并发现非常有用,它可以从html创建pdf,这很好,但它不适用于
。我希望徽标出现在我的报告/pdf中

当我在浏览器上尝试它时,它工作了,图像显示了出来,但在我检查文件后,图像并没有保存到pdf中。我已经搜索并尝试执行base64编码图像,但也失败了

或者有没有更好的方法来设计和创建漂亮的pdf报告


提前感谢。

我在这方面已经有一段时间了,终于有了一些突破

由于您正在加载html字符串,它对图像不起作用,因此必须在web视图中加载html,然后将
UIViewPrintFormatter
格式设置为
\u webvew.viewPrintFormatter()

另外,不要忘记为
UIWebView
设置
baseURL
,否则它不会加载本地图像

请看我的要点以获得更多帮助

我在创建分页符时也遇到了麻烦,所以我也创建了多个html来适应这种情况


希望有帮助,如果您需要更多信息,请告诉我:)

我也有同样的问题,请尝试以下代码:

    let render = UIPrintPageRenderer()
    render.addPrintFormatter(webView.viewPrintFormatter(), startingAtPageAt: 0)

    let paperRect = CGRect(x: 0, y: 0, width: 595.2, height: 841.8)
    let printableRect = paperRect.insetBy(dx: 10, dy: 10)

    render.setValue(NSValue(cgRect: paperRect), forKey: "paperRect")
    render.setValue(NSValue(cgRect: printableRect), forKey: "printableRect")

    let pdfData = NSMutableData()
    UIGraphicsBeginPDFContextToData(pdfData, CGRect.zero, nil)

    for i in 0 ..< render.numberOfPages {
        UIGraphicsBeginPDFPage()
        let bounds = UIGraphicsGetPDFContextBounds()
        render.drawPage(at: i, in: bounds)
    }
    UIGraphicsEndPDFContext()
    let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
    let filePath = "\(documentsPath)/name.pdf"
    pdfData.write(toFile: filePath, atomically: true)

    let url = URL(fileURLWithPath: filePath)
    webView.loadRequest(urlRequest)
let render=UIPrintPageRenderer()
render.addPrintFormatter(webView.viewPrintFormatter(),起始页面:0)
设paperRect=CGRect(x:0,y:0,宽度:595.2,高度:841.8)
让printableRect=paperRect.insetBy(dx:10,dy:10)
render.setValue(NSValue(cgRect:paperRect),forKey:“paperRect”)
render.setValue(NSValue(cgRect:printableRect),forKey:“printableRect”)
设pdfData=NSMutableData()
UIGraphicsBeginPDFDContextToData(pdfData、CGRect.zero、nil)
对于0中的i..
很抱歉回复晚了,我不小心把mac电脑忘在办公室了。我可以知道你说的是什么吗?这是webview的出口吗?我尝试了你的建议,但是webview中的加载会影响字体和大小。对于你的自定义类,我看不到任何东西,除了你的footer\u webview是一个简单的UIWebView,是的,它是一个outlet,请检查tooYes我读过它,但不是真正理解。然而,我确实按照你说的使用webView加载html,它确实显示了图像,尽管它没有正确排列。但是我可以将webview中的图像保存为pdf格式,所以我将尝试一下。我只复制了必要的代码,rest是基于应用程序的,我无法在公共场合显示,如果你还面临任何问题,请告诉我,祝你好运,我花了一段时间才弄清楚以上所有问题。非常乐意帮忙:)