Проверка файла перед вставкой в Richtext-поле

Тема в разделе "Lotus - Программирование", создана пользователем San40S, 19 ноя 2009.

  1. San40S

    San40S Well-Known Member

    Регистрация:
    15 апр 2009
    Сообщения:
    69
    Симпатии:
    0
    Доброго времени суток!
    Значит есть такая задачка... на форме есть два RichText-поля (SFile и SSample). в SFile будет вставляться файл картинки, а в SSample - типа превью этой картинки.
    Так вот, как вставить саму картинку в поле - проблем вроде нет, но необходимо еще, перед тем как вставить эту картинку, сделать проверочку, а именно:
    - чтобы файл был в формате *.jpg;
    - чтобы он был с разрешением в 200 dpi;
    - чтобы он был в оттенках серого (типа ч/б).

    Кто подскажет как такое можно организовать??

    З.Ы. Код самой вставки рисунка:
    Код (Text):
        Dim session As New NotesSession
    Dim ws As New NotesUIWorkspace
    Dim db As NotesDatabase
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Dim mFile As Variant
    Set db = session.CurrentDatabase
    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document   
    Set rtitem = doc.GetFirstItem("SFile")
    If Not rtitem Is Nothing Then Call rtitem.Remove
    Set rtitem = New NotesRichTextItem( doc, "SFile" )

    mFile = ws.OpenFileDialog(False, "Choose your file", "JPG|*.jpg|JPEG|*.jpeg", "C:\")
    If Not Isempty (mFile) Then
    Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", mFile(0))

    uidoc.Document.saveOptions = "0"
    Call uidoc.Close
    uidoc.Document.Form = "Sign"
    Set uidoc = ws.EditDocument(True, uidoc.Document, False)
    Call uidoc.Document.RemoveItem("SaveOptions")

    Call uidoc.GotoField("SSample")
    Call uidoc.Import ("JPEG Image", Cstr(mFile(0)))
    Else
    Exit Sub
    End If
    З.З.Ы. В ws.OpenFileDialog можно и нужно указать фильтр по JPEG, но если в поле имени файла ввести, например, С:\1.txt (предварительно, чтобы этот файл был на создан), то несмотря ни на какие фильтры - наш файлик 1.txt - будет успешно открыт! :)

    В общем нужно организовать проверку перед вставкой... как?
    Профи, прошу Ваших советов и рекомендаций!!
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    У тебя сразу после OpenFileDialog есть только имя файла, никто его еще не открывает.
    Если хочешь ограничить расширение файла, воспользуйся проверкой расширения StrRightBack(mFile(0), ".")
    Если именно на формат, как я поняла - ищи описание формата и читай нужную инфу из файла
    ( http://www.google.com.ua/search?q=jpeg+header
    пример http://forums.cnet.com/5208-6637_102-0.html?threadID=175401)
    Может, кто попроще посоветует варианты, полностью готовые к употреблению :)
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    как отсекать левые названия - это ваще из "дошкольной практики програмения"
    судя по вопросу как анализировать файлы - вы не знаете ;)

    гуглевание не модно, у поколения пепси, дайте фсё и сра :)

    терь про контент файла

    сначала теория...
    нек. файлы (графич.) имеют сигнатуру, а нек. - нет...
    и анализровать над хедером - задача для истинных индейцев :)

    путей у вас несколько:
    -использовать консольную утилиту (работает везде)
    -использовать java (работает везде)
    -использовать КОМу (работает в уиндоуз онли)

    терь практика...

    консольная утиль (ваще их много)
    за вас уже всё сделали, например:
    identify test1.jpeg
    выдаст
    test1.jpeg JPEG 260x151 260x151+0+0 8-bit DirectClass 10.3kb

    identify - это утиль из бесплатного пакета imagemagick
    под виндоуз (почему-то я не сомневаюсь, что у вас именно оно ;) ) есть её реализация
    http://imagemagick.linux-mirror.org/script...ses.php#windows

    java
    как заюзать java (через бридж): http://www.nsftools.com/tips/NotesTips.htm#ls2jexamples

    вот так определить формат:
    http://www.exampledepot.com/egs/javax.imageio/DiscType.html

    или вот (от настоящих индейцев):
    http://kickjava.com/src/imageinfo/ImageInfo.java.htm

    и наконец, КОМа
    что щас актуально в вянде и какая её версия какой компонент поставляет - не подскажу (где-то есть проги дефолтные, типа имеджвуер от МС, где-то нет)
    есть вот такие:
    http://forum.script-coding.info/viewtopic.php?id=2846

    задейстование из ЛС - подобно васику
     
  4. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    это всем клиентам ставить еще какую-то утилитку?
    Тут, наверно, без холивара - выбирайте уже тогда java :)
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Не, ну можно утилитку кинуть на расшаренный сетевой диск — одну на всех. Это если лень с джавой разбираться. Но я вообще-то за джаву.
     
  6. San40S

    San40S Well-Known Member

    Регистрация:
    15 апр 2009
    Сообщения:
    69
    Симпатии:
    0
    Проверка расширения это понятно.., меня в большей степени интересует разрешение (я о 200dpi) и "цветность" - оттенки серого.

    А вообще мне нравится идея с Java, но я не так уж силен в ней :(
    З.Ы. Спасибо за участие в решении вопроса :)
     
  7. San40S

    San40S Well-Known Member

    Регистрация:
    15 апр 2009
    Сообщения:
    69
    Симпатии:
    0
    А можно поподробней? :)
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    а какие подробности нужны - код по ссылке
    подключение java кода в LS - тоже...
    можно и просто на java написать весь агент с передачей ему пути файла (через энвайромент или в доке)
    вы начните тему изучать...
    выж не предлвагаете мне весь код за вас писать?... :)
     
  9. San40S

    San40S Well-Known Member

    Регистрация:
    15 апр 2009
    Сообщения:
    69
    Симпатии:
    0
    Ни в коем случаи ;)

    Что есть - "от настоящих индейцев" ??
    индейцев - американцев??
    индейцев - ну, тип "тупых", что ли?? ))

    А теперь ближе к теме..:
    Вот по ссылке: http://kickjava.com/src/imageinfo/ImageInfo.java.htm
    есть много всякого-такого.. но пока я не совсем въезжаю в букаффки что там написаны :)
    Вижу проверки на форматы, на "цветность" и т.д. ... но хотелось бы "вырвать" оттуда только то, что нужно мне, а не все..
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    вы читать сначала пробывали ;)
    там в коментах всё написано - что вызывать и как...
    начиная со строки
    31 * Use the class like this:
    индейцы - терпиливые, пытливые и мудрые :)
     
Загрузка...

Поделиться этой страницей