如何为 PDF 数据指定一个文件名,以便用户在 Swift 中保存

2024-02-20

我将我的 pdfData 交给用户保存。他可以保存到文件并制作文件,但pdf文件的默认名称是:PDF document.pdf。如果可能的话,我想要我自己的文件名。也许我可以在将 pdfData 提供给之前更改 pdfData 中的文件名UIActivityViewController?

这是我的代码:

// Create page rect
let pageRect = CGRect(x: 0, y: 0, width: 595.28, height: 841.89) // A4, 72 dpi

// Create PDF context and draw
let pdfData = NSMutableData()

UIGraphicsBeginPDFContextToData(pdfData, pageRect, nil)
UIGraphicsBeginPDFPage()

// From here you can draw page, best make it in a function
PdfErstellung.PdfErstellen(auswahlZeilen, vitalstoffWerteListe, heuteString)

UIGraphicsEndPDFContext()

// Save pdf DATA through user
let activityViewController = UIActivityViewController(activityItems: [pdfData], applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view // für IPAD nötig
self.present(activityViewController, animated: true, completion: nil)
   

- 更新 -

我的新想法是,首先尝试保存文件并尝试 URL,如果失败,则直接使用 pdfData,因为在某些模拟器中使用 URL 不会给出错误,而在其他模拟器中会给出错误。

更多这里:https://stackoverflow.com/a/52499637/10392572 https://stackoverflow.com/a/52499637/10392572


您只需将 pdfData 保存到临时 fileURL 并共享该 URL。

let temporaryFolder = FileManager.default.temporaryDirectory
let fileName = "document.pdf"
let temporaryFileURL = temporaryFolder.appendingPathComponent(fileName)
print(temporaryFileURL.path)  // /Users/lsd/Library/Developer/XCPGDevices/E2003834-07AB-4833-B206-843DC0A52967/data/Containers/Data/Application/322D1F1D-4C97-474C-9040-FE5E740D38CF/tmp/document.pdf
do {
    try pdfData.write(to: temporaryFileURL)
    // your code
    let activityViewController = UIActivityViewController(activityItems: [temporaryFileURL], applicationActivities: nil)
} catch {
    print(error)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 PDF 数据指定一个文件名,以便用户在 Swift 中保存 的相关文章

  • 在 Python 中静默打印 PDF

    我正在尝试使用 Python 打印 PDF 而不打开 PDF 查看器应用程序 Adobe Foxit 等 我还需要知道打印何时完成 以删除文件 Here http permalink gmane org gmane comp python
  • 在 Swift 中将半精度浮点数(字节)转换为浮点数

    我希望能够从二进制文件中读取半浮点数并将它们转换为 Swift 中的浮点数 我查看了来自其他语言 例如 Java 和 C 的几种转换 但是我无法获得与半浮点相对应的正确值 如果有人可以帮助我实施 我将不胜感激 从 Float 到 Half
  • 如何使用 swift 在 UITabBarController 中以编程方式添加选项卡?

    如何以编程方式从 UIViewController 扩展的任何类创建选项卡 class DashboardTabBarController UITabBarController override func viewDidLoad here
  • CloudKit 和 Core 在设备之间同步数据

    我创建了一个简单的Notes应用程序基于Core data 现在我想在用户设备之间添加同步 以及我读过的所有文章 this https www raywenderlich com 134694 cloudkit tutorial getti
  • Swift 结构类型集

    说我有一个struct 可以是任何东西 struct Cube var x Int var y Int var z Int var width Int 然后我该如何创建一个Set这些点中 是否存在两个具有相同属性的对象 let points
  • 解析迁移到 mLabs 和 Heroku 的错误

    我至少一年前将解析数据库迁移到 Mlabs 从那时起我就一直在开发该应用程序 解析仪表板表示我已成功迁移 Mlab 和 Parse 都收到了数据库的更新 然而 在过去一两周内 该应用程序不再经过登录页面 没有调整代码 这是服务器问题 以下是
  • UINavigationBar 滑开而不是留在原处

    我创建了演示项目来展示问题 我们在 UINavigationController 中有两个视图控制器 MainViewController这是根 class MainViewController UIViewController lazy
  • 如何将 SCNPlane 颜色更改为透明颜色

    我正在开发一个 ARKit 项目 在水平面上点击时需要波纹动画效果 为此 我采用了 UIView 对象并将其作为 SCNPlane 对象材料的内容传递 我已将波纹动画添加到 UIView 对象 一切正常 但我无法将 SCNPlane 颜色更
  • Swift UIImage 转换为 PDF

    在我的应用程序中 必须从 iPad Gallery 出售 UIImage 并将其转换为 PDF 并保存在服务器端 我可以选择图像并将其发送到服务器端 但后端说 pdf 为空 空数据 我还在控制台中看到警告 错误 发现扩展时遇到 发现 错误
  • 实例化 UISegementedControl 的子类时,对类使用未实现的初始化程序“init(frame:)”

    当我尝试使用以下实例时 出现以下错误MySegmentControl在下面的代码中 该错误发生在应用程序启动后 知道我错过了什么吗 致命错误 对类 TestingSubclassing MySegmentControl 使用未实现的初始化程
  • Powershell:当文件名包含字符 [ ] 时,移动项目不起作用

    关于使用 PowerShell 移动项目的简单问题 有谁知道为什么当文件名包含 或 字符时以下脚本不起作用 前任 文件1 VT txt ls j foreach itemName Name Replace destination ls wh
  • Swift 中的 preg_match 等效项

    我尝试将 PHP 函数转换为 Swift 该函数用于根据 my 正则表达式将字符串格式化为另一个字符串 这就是我在 PHP 中所做的 preg match P 0 9 Y 0 9 M 0 9 D T 0 9 H 0 9 M 0 9 0 9
  • 比较两个 CGPoint 是否相等:对于输出相同点的两个对象返回不相等?

    根据这个问题 https stackoverflow com questions 26335052 how to compare cgpoints in swift 使用 和 应该可以让你检查两个之间是否相等CGPoint对象 然而 下面的
  • 使用 PDFSharp 打印 PDF

    我有以下代码 using System using System Diagnostics using System IO using PdfSharp Pdf Printing namespace PrintPdfFile class Pr
  • 如何找到安全区域的高度和宽度?

    我正在尝试以编程方式为某些标签 按钮和文本字段设置相对于安全区域的高度和宽度的约束 例如 我希望将标签到安全区域顶部的距离设置为安全区域高度的 10 如何检索安全区域的高度和宽度 这是一个合理的方法吗 我的想法是 无论 iOS 设备如何 我
  • 以编程方式在网站上输入字符串

    我想知道如何或是否可以通过 iPhone 应用程序代码在网站的文本字段中输入内容 所以我想去一个网站 中间有一个文本字段 我想在那里输入一个特定的字符串 我怎样才能在 Swift 中做到这一点 或 Objective C 然后我会弄清楚它在
  • 使用 Spring MVC 返回 PDF 文件

    实际上 我有这个功能 我有一个框架 可以在其中设置 URL ip port birt preview report report rptdesign format pdf parameters 并且该框架呈现 PDF 文件 但我想隐藏该网址
  • 如何实现pickerView类的didSelectRow方法?

    我以前从未使用过选择器视图 我认为它类似于表视图类的 func tableView tableView UITableView didDeselectRowAtIndexPath indexPath NSIndexPath 方法 但是我无法
  • ipa 应用程序无法添加到我们的 itunes 库,它不是有效的应用程序

    我使用 xcode 6 和 swift 语言制作了一个未签名的 IPA 应用程序 我已压缩 app 文件并将其扩展名更改为 ipa 当我想在越狱的iPhone上安装这个 ipa文件时 出现以下错误 无法将应用程序 youtapp ipa 添
  • 立即调用 Swift UIView animateWithDuration 完成闭包

    我期望在指定的持续时间后调用此 UIView 动画的完成闭包 但它似乎立即触发 UIView animateWithDuration Double 0 2 animations self frame CGRectMake 0 self bo

随机推荐

  • Scala 宏:类型化(又名类型检查)树和非类型化树之间有什么区别

    我正在开始使用 scala 宏 它们非常棒 但是我遇到了类型化 又名类型检查 和非类型化之间的区别Trees 例如 您不能调用c eval由于某种原因使用类型检查的树 我在 scala 宏文档中找不到关于此 类型检查 的文档 我知道他们仍在
  • Angularjs如何在切换路由时取消资源承诺

    我刚刚接触 Angularjs 我有一个问题 我认为与承诺有关 假设我加载路由 A 它通过其控制器发出多个 ajax 请求 allSites AllSites query id categoryID allSites promise the
  • 如何在没有映射到 web.xml 的情况下调用 servlet?

    如何使用以下 URL 调用简单的 servlet http localhost 8080 servlet MyServlet http localhost 8080 servlet MyServlet 我把它放在文件夹中 tomcat we
  • 获取系统插入的正确方法

    我一直在使用view rootWindowInsets stableInsetTop和 Bottom 来获取状态栏和导航栏的高度 但是现在已弃用 并且文档建议使用 https developer android com reference
  • 将数据从 C# 传递到 jQuery

    我是一名独立程序员 正在寻求如何最好地处理以下情况的建议 我目前正在开发一个 C Winforms 应用程序 我正在编写的新功能允许用户创建Processing js 草图以进行数据分析 我构建了一个Processing js IDE 正在
  • 使用包含 NSDictionary 的 NSMutableArray 进行快速枚举

    是否可以对包含 NSDictionary 的 NSArray 使用快速枚举 我正在运行一些 Objective C 教程 以下代码将控制台踢入 GDB 模式 NSMutableArray myObjects NSMutableArray a
  • GIT_MERGE_AUTOEDIT=默认为否

    在我的 git v 1 7 10 2 中 我必须在终端中执行以下操作 GIT MERGE AUTOEDIT no export GIT MERGE AUTOEDIT 所以 每次合并时 我都不会强制发布消息 我应该把它放在哪里 这样默认情况下
  • C++ 流作为成员变量

    我有一个 C 类 我想保存一个用于日志记录的流 在构造对象之后应该能够设置 并且可能重置 流 应该可以将流设置为std cout 或者作为记录到文件的文件流 或者作为字符串流 它只是忽略数据 a dev null各种各样的 无论如何 它应该
  • 如何创建更复杂的 Lucene 查询字符串?

    这个问题是从this https stackoverflow com questions 532365 how to get more out of lucene net问题 我的询问有两个方面 但因为两者都是相关的 所以我认为将它们放在一
  • 为什么 python 在 time.sleep() 之后不打印? [复制]

    这个问题在这里已经有答案了 我用 python 编程已经快两年了 当我看一些旧代码时 我发现了一件非常奇怪的事情 import random sys time try while True print str random randint
  • 在 ajax 请求完成之前,react.js 不会渲染

    我有一个非常简单的React js我需要制作一个组件isomorphic 在服务器上呈现 问题是组件仅在之后才呈现有用的信息ajax请求完成 如下所示 export default React createClass getInitialS
  • 将列表转换为 json 格式 - 快速且简单的方法

    假设我有一个如下所示的对象 MyObject public class MyObject int ObjectID get set string ObjectString get set 我有一个 MyObject 列表 我希望使用 str
  • 同一个表之间多对多的级联删除

    我正在尝试在 SQL Server 中的同一个表之间创建多对多关系 我有一张桌子Object有柱子ObjectId and Name 该关系遵循以下规则 一个孩子可以有多个父母 一个父母可以有很多孩子 ObjectA 可以是 Object
  • Bootstrap 模式 - 隐藏一个然后显示另一个

    我已经使用 jQueryUI 很长时间了 但最近出于美观原因切换到 Bootstrap 我现在正在努力解决我认为是一个简单的问题 并想知道其他更熟悉 Bootstrap 的人是否可以帮助我解决这个问题 我有一个用于动态创建对话框的通用函数
  • 恢复PDF中的图形状态后是否可以绘制路径的笔划?

    我在 PDF 中绘制线条 并希望以 1 1 以外的比例缩放 问题是我得到的笔划看起来像是用书法笔绘制的 在PDF中是否可以以某种方式调整路径大小 恢复图形状态 然后绘制上一个路径的笔划 这就是我在 PDF 中获得书法线条的方法 5 w wi
  • 具有 128 位键的基于时间的字典/哈希表,即超时字典中的值

    我需要制作一个基于时间的字典哈希表 其大小不会无限增长 我所说的 基于时间 具体是指 如果我要在 X 时间添加字典 我希望该项目在 X Y 时间不存在 Y 是超时时间 我愿意将时间存储在字典中或作为键或值的结构 CONTEXT 我收到我们正
  • R:获取给定函数内所有变量和函数的列表和环境(用于并行处理)

    我使用 foreach 进行并行处理 这需要通过列表手动将函数传递到寻址核心的环境 我想自动化这个过程并涵盖所有用例 对于仅使用封闭变量的简单函数来说很容易 然而 一旦要并行处理的函数使用在另一个环境中定义的参数和变量 就会出现问题 考虑以
  • 为什么 IE9 需要元标记来渲染圆角?

    在刚刚发布的IE9中 需要提供meta标签允许CSSborder radius渲染 Why 这个链接 http blogs msdn com b ie archive 2010 06 16 ie s compatibility featur
  • Java process.getInputStream() 没有任何内容可读取,子进程死锁

    我在某些进程包装方面遇到问题 并且该问题仅发生在 Windows XP 中 这段代码在 Windows 7 中完美运行 我真的很困惑为什么 XP 中的流是空的 我也尝试过使用 Process Exec 的 String 版本 但没有什么区别
  • 如何为 PDF 数据指定一个文件名,以便用户在 Swift 中保存

    我将我的 pdfData 交给用户保存 他可以保存到文件并制作文件 但pdf文件的默认名称是 PDF document pdf 如果可能的话 我想要我自己的文件名 也许我可以在将 pdfData 提供给之前更改 pdfData 中的文件名U