[解決済み] iOSでUIViewをPDFに変換するには?
2023-04-04 11:42:07
質問
PDFをアプリのUIView
. 私が今取り組んでいるのは、PDFを
UIViews
.
例えば、私の場合は
UIView
のように、Textviewsのようなサブビューを持つ。
UILabels
,
UIImages
を変換するにはどうすればよいのでしょうか?
ビッグ
UIView
を、そのすべてのサブビューとサブサブビューを含む全体として、PDFに変換しますか?
私が確認したのは Apple の iOS リファレンス . しかし、それはPDFファイルへのテキスト/画像の断片の書き込みについてだけ述べています。
私が直面している問題は、PDFとしてファイルに書き込みたいコンテンツがたくさんあることです。もし私がそれらをひとつひとつ PDF に書き込むとしたら、それは膨大な作業になりそうです。
そのため、次のような書き方を探しています。
UIViews
をPDFに書き込んだり、ビットマップに書き込んだりする方法を探しています。
私は、Stack Overflow内の他のQ/Aからコピーしたソースコードを試しました。しかし、それは私に空の PDF を
UIView
の境界サイズを持つ空白のPDFが得られるだけです。
-(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
{
// Creates a mutable data object for updating with binary data, like a byte array
NSMutableData *pdfData = [NSMutableData data];
// Points the pdf converter to the mutable data object and to the UIView to be converted
UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
UIGraphicsBeginPDFPage();
// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
[aView drawRect:aView.bounds];
// remove PDF rendering context
UIGraphicsEndPDFContext();
// Retrieves the document directories from the iOS device
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];
// instructs the mutable data object to write its context to a file on disk
[pdfData writeToFile:documentDirectoryFilename atomically:YES];
NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);
}
どのように解決するのですか?
なお、以下の方法では 単なるビットマップ を作成するだけで、実際のタイポグラフィを作成するわけではありません。
(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
{
// Creates a mutable data object for updating with binary data, like a byte array
NSMutableData *pdfData = [NSMutableData data];
// Points the pdf converter to the mutable data object and to the UIView to be converted
UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();
// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
[aView.layer renderInContext:pdfContext];
// remove PDF rendering context
UIGraphicsEndPDFContext();
// Retrieves the document directories from the iOS device
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];
// instructs the mutable data object to write its context to a file on disk
[pdfData writeToFile:documentDirectoryFilename atomically:YES];
NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);
}
また、インポートしていることを確認します。 QuartzCore/QuartzCore.hをインポートしてください。
関連
-
[解決済み] UILabel 内のテキストを縦に上部に揃える
-
[解決済み] PDFファイルの適切なMIMEメディアタイプ
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] HTMLにPDFを埋め込むおすすめの方法とは?
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] UIViewに角丸をつける
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] Swiftのプロトコルでオプションのメソッドを定義するには?
-
[解決済み】iOSアプリの名前を変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] iOSシミュレータでスクリーンショットを撮る
-
[解決済み] UITextFieldの最大文字数を設定します。
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み] NSNotificationCenterのaddObserver in Swift
-
[解決済み] Swiftの配列を文字列に変換するには?
-
[解決済み] UITableView - トップにスクロールする
-
[解決済み] Swiftのプロトコルでオプションのメソッドを定義するには?
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?