質問編集履歴

5

コードの変更

2019/01/08 15:00

投稿

mimamo
mimamo

スコア44

test CHANGED
File without changes
test CHANGED
@@ -84,7 +84,7 @@
84
84
 
85
85
 
86
86
 
87
- createPdfFromView(aView: canvasView, saveToDocumentsWithFileName: "test.pdf")
87
+ createPdfFromView(aView: canvasView, saveToDocumentsWithFileName: "test")
88
88
 
89
89
 
90
90
 
@@ -136,9 +136,9 @@
136
136
 
137
137
  // 読み込み
138
138
 
139
- let filePath0 = UserDefaults.standard.string(forKey:"filePath")
139
+ let Path = UserDefaults.standard.string(forKey:"filePath")
140
140
 
141
- let pdfURL = URL(fileURLWithPath: filePath0!)
141
+ let pdfURL = URL(fileURLWithPath: Path)
142
142
 
143
143
 
144
144
 

4

コードの変更

2019/01/08 15:00

投稿

mimamo
mimamo

スコア44

test CHANGED
File without changes
test CHANGED
@@ -64,9 +64,11 @@
64
64
 
65
65
  print("プレビュー作成おわり")
66
66
 
67
- // UserDefaultsに保存する
67
+ // 保存
68
68
 
69
- userDefaults.set(documentsFileName, forKey: "pdfname")
69
+ UserDefaults.standard.set(documentsFileName, forKey:"filePath")
70
+
71
+
70
72
 
71
73
  }
72
74
 
@@ -82,7 +84,7 @@
82
84
 
83
85
 
84
86
 
85
- createPdfFromView(aView: canvasView, saveToDocumentsWithFileName: "createpdf")
87
+ createPdfFromView(aView: canvasView, saveToDocumentsWithFileName: "test.pdf")
86
88
 
87
89
 
88
90
 
@@ -108,15 +110,11 @@
108
110
 
109
111
 
110
112
 
111
- @IBOutlet weak var pdfView: PDFView!
113
+ @IBOutlet weak var pdfView: PDFView!
112
114
 
113
115
 
114
116
 
115
-
116
117
 
117
- // UserDefaults のインスタンス
118
-
119
- let userDefaults = UserDefaults.standard
120
118
 
121
119
 
122
120
 
@@ -128,27 +126,21 @@
128
126
 
129
127
 
130
128
 
131
- // UserDefaultsから値を読み込む
129
+
132
130
 
133
- let str2:String = userDefaults.string(forKey: "pdfname")!
131
+ let pdfView = PDFView(frame: view.frame)
134
132
 
135
- print(str2)
133
+
136
134
 
137
135
 
138
136
 
139
- //let pdfView = PDFView(frame: view.frame)
137
+ // 読み込み
140
138
 
141
- //保存場所
139
+ let filePath0 = UserDefaults.standard.string(forKey:"filePath")
142
140
 
143
- let thePath = NSHomeDirectory()+str2+".pdf"
141
+ let pdfURL = URL(fileURLWithPath: filePath0!)
144
142
 
145
- // ローカルのPDFの場合
143
+
146
-
147
- let pdfURL = URL(fileURLWithPath : thePath)
148
-
149
-
150
-
151
-
152
144
 
153
145
 
154
146
 
@@ -170,7 +162,7 @@
170
162
 
171
163
 
172
164
 
173
- //view.addSubview(pdfView)
165
+ view.addSubview(pdfView)
174
166
 
175
167
 
176
168
 

3

コードの変更

2019/01/08 14:18

投稿

mimamo
mimamo

スコア44

test CHANGED
File without changes
test CHANGED
@@ -24,56 +24,72 @@
24
24
 
25
25
  ```swift
26
26
 
27
- // UserDefaults のインスタンス
27
+ // UserDefaults のインスタンス
28
28
 
29
29
  let userDefaults = UserDefaults.standard
30
30
 
31
31
 
32
32
 
33
+ func createPdfFromView(aView: UIView, saveToDocumentsWithFileName fileName: String)
34
+
35
+ {
36
+
37
+ print("プレビュー画面作成開始")
38
+
39
+ let pdfData = NSMutableData()
40
+
41
+ UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil)
42
+
43
+ UIGraphicsBeginPDFPage()
44
+
45
+
46
+
47
+ guard let pdfContext = UIGraphicsGetCurrentContext() else { return }
48
+
49
+
50
+
51
+ aView.layer.render(in: pdfContext)
52
+
53
+ UIGraphicsEndPDFContext()
54
+
55
+
56
+
57
+ if let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {
58
+
59
+ let documentsFileName = documentDirectories + "/" + fileName
60
+
61
+ debugPrint(documentsFileName)
62
+
63
+ pdfData.write(toFile: documentsFileName, atomically: true)
64
+
65
+ print("プレビュー作成おわり")
66
+
67
+ // UserDefaultsに保存する
68
+
69
+ userDefaults.set(documentsFileName, forKey: "pdfname")
70
+
71
+ }
72
+
73
+ }
74
+
75
+
76
+
77
+
78
+
33
79
 
34
80
 
35
81
  @IBAction func preView(_ sender: UIButton) {
36
82
 
37
- print("プレビュー画面作成開始")
83
+
38
-
39
- let pdfData = NSMutableData()
84
+
40
-
41
- UIGraphicsBeginPDFContextToData(pdfData, canvasView.bounds, nil)
42
-
43
- UIGraphicsBeginPDFPage()
44
-
45
-
46
-
47
- guard let pdfContext = UIGraphicsGetCurrentContext() else { return }
48
-
49
-
50
-
51
- canvasView.layer.render(in: pdfContext)
52
-
53
- UIGraphicsEndPDFContext()
54
-
55
-
56
-
57
- if let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {
58
-
59
- let documentsFileName = documentDirectories + "/" + "createPdf"
85
+ createPdfFromView(aView: canvasView, saveToDocumentsWithFileName: "createpdf")
60
-
61
- debugPrint(documentsFileName)
62
-
63
- pdfData.write(toFile: documentsFileName, atomically: true)
64
-
65
- // UserDefaultsに保存する
66
-
67
- userDefaults.set(documentsFileName, forKey: "setpdf")
68
-
69
- print("プレビュー作成おわり")
70
-
71
- }
72
86
 
73
87
 
74
88
 
75
89
  }
76
90
 
91
+
92
+
77
93
  ```
78
94
 
79
95
 
@@ -82,12 +98,30 @@
82
98
 
83
99
  ```swift
84
100
 
101
+ import UIKit
102
+
103
+ import PDFKit
104
+
105
+
106
+
107
+ class ViewController3: UIViewController {
108
+
109
+
110
+
111
+ @IBOutlet weak var pdfView: PDFView!
112
+
113
+
114
+
115
+
116
+
85
- // UserDefaults のインスタンス
117
+ // UserDefaults のインスタンス
86
118
 
87
119
  let userDefaults = UserDefaults.standard
88
120
 
89
121
 
90
122
 
123
+
124
+
91
125
  override func viewDidLoad() {
92
126
 
93
127
  super.viewDidLoad()
@@ -96,17 +130,25 @@
96
130
 
97
131
  // UserDefaultsから値を読み込む
98
132
 
99
- let str2:String = userDefaults.string(forKey: "setpdf")!
133
+ let str2:String = userDefaults.string(forKey: "pdfname")!
134
+
100
-
135
+ print(str2)
101
-
102
-
136
+
137
+
138
+
103
- let pdfView = PDFView(frame: view.frame)
139
+ //let pdfView = PDFView(frame: view.frame)
140
+
104
-
141
+ //保存場所
142
+
105
-
143
+ let thePath = NSHomeDirectory()+str2+".pdf"
106
144
 
107
145
  // ローカルのPDFの場合
108
146
 
109
- let pdfURL = URL(fileURLWithPath: Bundle.main.path(forResource: "str2", ofType: "pdf")!)
147
+ let pdfURL = URL(fileURLWithPath : thePath)
148
+
149
+
150
+
151
+
110
152
 
111
153
 
112
154
 
@@ -128,7 +170,9 @@
128
170
 
129
171
 
130
172
 
131
- view.addSubview(pdfView)
173
+ //view.addSubview(pdfView)
174
+
175
+
132
176
 
133
177
  }
134
178
 
@@ -144,15 +188,13 @@
144
188
 
145
189
  ```
146
190
 
147
- // ローカルのPDFの場合
148
-
149
- let pdfURL = URL(fileURLWithPath: Bundle.main.path(forResource: "str2", ofType: "pdf")!)
191
+ class AppDelegate: UIResponder, UIApplicationDelegate{
150
-
151
-
152
-
192
+
193
+
194
+
153
- ```
195
+ ```
154
-
196
+
155
- Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
197
+ Thread 1: signal SIGABRT
156
198
 
157
199
 
158
200
 

2

コードの変更

2019/01/08 06:43

投稿

mimamo
mimamo

スコア44

test CHANGED
File without changes
test CHANGED
@@ -24,45 +24,55 @@
24
24
 
25
25
  ```swift
26
26
 
27
- @IBAction func preView(_ sender: UIButton) {
27
+ // UserDefaults のインスタンス
28
28
 
29
+ let userDefaults = UserDefaults.standard
29
30
 
31
+
30
32
 
31
- print("プレビュー画面作成開始")
33
+
32
34
 
35
+ @IBAction func preView(_ sender: UIButton) {
33
36
 
37
+ print("プレビュー画面作成開始")
34
38
 
35
- let pdfData = NSMutableData()
39
+ let pdfData = NSMutableData()
36
40
 
37
- UIGraphicsBeginPDFContextToData(pdfData, getphoto.bounds, nil)
41
+ UIGraphicsBeginPDFContextToData(pdfData, canvasView.bounds, nil)
38
42
 
39
- UIGraphicsBeginPDFPage()
43
+ UIGraphicsBeginPDFPage()
40
44
 
45
+
41
46
 
47
+ guard let pdfContext = UIGraphicsGetCurrentContext() else { return }
42
48
 
43
- guard let pdfContext = UIGraphicsGetCurrentContext() else { return }
49
+
44
50
 
51
+ canvasView.layer.render(in: pdfContext)
45
52
 
53
+ UIGraphicsEndPDFContext()
46
54
 
47
- getphoto.layer.render(in: pdfContext)
55
+
48
56
 
49
- UIGraphicsEndPDFContext()
57
+ if let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {
50
58
 
59
+ let documentsFileName = documentDirectories + "/" + "createPdf"
51
60
 
61
+ debugPrint(documentsFileName)
52
62
 
53
- if let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {
63
+ pdfData.write(toFile: documentsFileName, atomically: true)
54
64
 
55
- let documentsFileName = documentDirectories + "/" + "/preview.pdf"
65
+ // UserDefaultsに保存する
56
66
 
57
- debugPrint(documentsFileName)
67
+ userDefaults.set(documentsFileName, forKey: "setpdf")
58
68
 
59
- pdfData.write(toFile: documentsFileName, atomically: true)
69
+ print("プレビュー作成おわり")
60
70
 
61
- }
71
+ }
62
72
 
63
- print("プレビュー作成おわり")
73
+
64
74
 
65
- }
75
+ }
66
76
 
67
77
  ```
68
78
 
@@ -72,61 +82,31 @@
72
82
 
73
83
  ```swift
74
84
 
85
+ // UserDefaults のインスタンス
86
+
87
+ let userDefaults = UserDefaults.standard
88
+
89
+
90
+
75
91
  override func viewDidLoad() {
76
92
 
77
93
  super.viewDidLoad()
78
94
 
79
95
 
80
96
 
97
+ // UserDefaultsから値を読み込む
98
+
81
- let documentPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
99
+ let str2:String = userDefaults.string(forKey: "setpdf")!
82
100
 
83
101
 
84
102
 
85
- var fileNames: [String] {
103
+ let pdfView = PDFView(frame: view.frame)
86
-
87
- do {
88
-
89
- return try FileManager.default.contentsOfDirectory(atPath: documentPath)
90
-
91
- } catch {
92
-
93
- return []
94
-
95
- }
96
-
97
- }
98
104
 
99
105
 
100
106
 
101
- return fileNames.flatMap { fileName in
102
-
103
- do {
104
-
105
- var texts: [String] = try String(contentsOfFile: documentPath + "/" + fileName, encoding: String.Encoding(rawValue: String.Encoding.utf8.rawValue)).lines
106
-
107
- texts = texts.deleteSpaceOnly(texts: texts)
108
-
109
- return texts
110
-
111
- } catch {
112
-
113
- return nil
114
-
115
- }
116
-
117
-
118
-
119
- }
120
-
121
-
122
-
123
- //PDFの表示
124
-
125
- let pdfView = PDFView(frame: view.frame)
126
-
127
107
  // ローカルのPDFの場合
128
108
 
129
- let pdfURL = URL(fileURLWithPath: Bundle.main.path(forResource: "metronetwork", ofType: "pdf")!)
109
+ let pdfURL = URL(fileURLWithPath: Bundle.main.path(forResource: "str2", ofType: "pdf")!)
130
110
 
131
111
 
132
112
 
@@ -150,11 +130,9 @@
150
130
 
151
131
  view.addSubview(pdfView)
152
132
 
153
-
154
-
155
133
  }
156
134
 
157
-
135
+ }
158
136
 
159
137
  ```
160
138
 
@@ -162,17 +140,19 @@
162
140
 
163
141
 
164
142
 
165
- ###エラー、警告(3つ)
143
+ ###エラー該当箇所
166
144
 
167
145
  ```
168
146
 
169
- 1、Unexpected non-void return value in void function
147
+ // ローカルのPDFの場合
170
148
 
171
- 2、No calls to throwing functions occur within 'try' expression
149
+ let pdfURL = URL(fileURLWithPath: Bundle.main.path(forResource: "str2", ofType: "pdf")!)
172
150
 
173
- 3、'catch' block is unreachable because no errors are thrown in 'do' block
151
+
174
152
 
175
153
  ```
154
+
155
+ Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
176
156
 
177
157
 
178
158
 

1

コードの変更

2019/01/07 01:37

投稿

mimamo
mimamo

スコア44

test CHANGED
File without changes
test CHANGED
@@ -20,6 +20,162 @@
20
20
 
21
21
 
22
22
 
23
+ pdfを作成するVC↓
24
+
25
+ ```swift
26
+
27
+ @IBAction func preView(_ sender: UIButton) {
28
+
29
+
30
+
31
+ print("プレビュー画面作成開始")
32
+
33
+
34
+
35
+ let pdfData = NSMutableData()
36
+
37
+ UIGraphicsBeginPDFContextToData(pdfData, getphoto.bounds, nil)
38
+
39
+ UIGraphicsBeginPDFPage()
40
+
41
+
42
+
43
+ guard let pdfContext = UIGraphicsGetCurrentContext() else { return }
44
+
45
+
46
+
47
+ getphoto.layer.render(in: pdfContext)
48
+
49
+ UIGraphicsEndPDFContext()
50
+
51
+
52
+
53
+ if let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {
54
+
55
+ let documentsFileName = documentDirectories + "/" + "/preview.pdf"
56
+
57
+ debugPrint(documentsFileName)
58
+
59
+ pdfData.write(toFile: documentsFileName, atomically: true)
60
+
61
+ }
62
+
63
+ print("プレビュー作成おわり")
64
+
65
+ }
66
+
67
+ ```
68
+
69
+
70
+
71
+ pdfを表示するVC
72
+
73
+ ```swift
74
+
75
+ override func viewDidLoad() {
76
+
77
+ super.viewDidLoad()
78
+
79
+
80
+
81
+ let documentPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
82
+
83
+
84
+
85
+ var fileNames: [String] {
86
+
87
+ do {
88
+
89
+ return try FileManager.default.contentsOfDirectory(atPath: documentPath)
90
+
91
+ } catch {
92
+
93
+ return []
94
+
95
+ }
96
+
97
+ }
98
+
99
+
100
+
101
+ return fileNames.flatMap { fileName in
102
+
103
+ do {
104
+
105
+ var texts: [String] = try String(contentsOfFile: documentPath + "/" + fileName, encoding: String.Encoding(rawValue: String.Encoding.utf8.rawValue)).lines
106
+
107
+ texts = texts.deleteSpaceOnly(texts: texts)
108
+
109
+ return texts
110
+
111
+ } catch {
112
+
113
+ return nil
114
+
115
+ }
116
+
117
+
118
+
119
+ }
120
+
121
+
122
+
123
+ //PDFの表示
124
+
125
+ let pdfView = PDFView(frame: view.frame)
126
+
127
+ // ローカルのPDFの場合
128
+
129
+ let pdfURL = URL(fileURLWithPath: Bundle.main.path(forResource: "metronetwork", ofType: "pdf")!)
130
+
131
+
132
+
133
+ let document = PDFDocument(url: pdfURL)
134
+
135
+ pdfView.document = document
136
+
137
+ pdfView.backgroundColor = .lightGray
138
+
139
+
140
+
141
+ // PDFの拡大率を調整する
142
+
143
+ pdfView.autoScales = true
144
+
145
+ // 表示モード
146
+
147
+ pdfView.displayMode = .singlePageContinuous
148
+
149
+
150
+
151
+ view.addSubview(pdfView)
152
+
153
+
154
+
155
+ }
156
+
157
+
158
+
159
+ ```
160
+
161
+
162
+
163
+
164
+
165
+ ###エラー、警告(3つ)
166
+
167
+ ```
168
+
169
+ 1、Unexpected non-void return value in void function
170
+
171
+ 2、No calls to throwing functions occur within 'try' expression
172
+
173
+ 3、'catch' block is unreachable because no errors are thrown in 'do' block
174
+
175
+ ```
176
+
177
+
178
+
23
179
  ### 補足情報(FW/ツールのバージョンなど)
24
180
 
25
181