1

として保存された画像を含む書式設定されたテキストを読み取る 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"

ファイル名にアクセスするにはどうすればよいですか? (デバッグの説明を解析せずに;)

4

2 に答える 2