として保存された画像を含む書式設定されたテキストを読み取る Mac アプリがありますNSAttributedString
。これを画像を含むHTMLに変換したい。
HTML の取得は正常に機能します。添付された画像を列挙することもできますが、添付された画像の実際のファイル名を取得することはできません。結果のHTMLにはそれらが必要です。
HTML の取得:
let htmlData = try attrString.dataFromRange(NSMakeRange(0, attrString.length),
documentAttributes: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType])
生成:
<p class="p1"><img src="file:///Untitled%202.jpg" alt="Untitled 2.jpg"></p>
添付された画像を列挙する:
attrString.enumerateAttribute(NSAttachmentAttributeName,
inRange: NSMakeRange(0, attrString.length),
options: [],
usingBlock: {attachment, range, _ in
if let attachment = attachment as? NSTextAttachment,
let fileWrapper = attachment.fileWrapper,
let data = fileWrapper.regularFileContents
{
// This prints <NSTextAttachment: 0x7fe68d5304c0> "Untitled 2.jpg"
// But there's no API to get the name?
print(attachment.description)
}
})
そのため、NSTextAttachment
インスタンスが作成されますが、実際のファイル名 ("Untitled 2.jpg") を特定する方法はありません。NSFileWrapper.filename
戻りますがnil
、テキスト添付ファイルから名前を取得するための API が表示されません。
イライラする部分は、情報がテキストの添付ファイルにあることです. デバッグの説明を出力すると、ファイル名が表示されます。
<NSTextAttachment: 0x7fe68d5304c0> "Untitled 2.jpg"
<NSTextAttachment: 0x7fe68d533d60> "Pasted Graphic.tiff"
ファイル名にアクセスするにはどうすればよいですか? (デバッグの説明を解析せずに;)