компонент для работы с файлами в БД

  • Автор темы mail-22
  • 1467
  • Обновлено
  • 22, Feb 2017
  • #2
Вообще-то, для ответа на вопрос нужно знать версию Delphi и установлены ли Word и Adobe Acrobat... Например, если установлены и D7, то для Word проще всего использовать OLE.

Что-то типа CreateOleObject('Word.Application') и т.д. А для PDF установить Active-X через Components-Import Active type library. А так вариантов масса - можно целую книгу написать:-)
 

Ivanov-m2


Рег
22 Jan, 2006

Тем
1

Постов
10

Баллов
20
  • 22, Feb 2017
  • #3
mail-22, post: 768735:
подскажите компонент для работы с файлами ворд и пдф в БД - т.е. (предварительный) просмотр на форме файлов из BLOB
Вряд ли найдется единый подобный компонент.

Тебе требуется решить две абсолютно разные задачи - работа с BLOB-данными в таблице и просмотр произвольной информации, вытащенной оттуда.

Для просмотра произвольных файлов был когда-то неплохой компонент ATViewer.

Уж не знаю, актуален ли он сейчас.

Ну а с блобами, думаю, разберешься
 

S_Gur


Рег
26 Feb, 2007

Тем
3

Постов
27

Баллов
57
  • 24, Feb 2017
  • #4
Данные файлы хранишь в BLOB в базе данных, а потом читаешь данные из BLOB в stream, а из stream уже читаешь туда, куда нужно.
 

ziv_2010


Рег
19 May, 2010

Тем
1

Постов
7

Баллов
17
  • 27, Feb 2017
  • #5
А с Word'ом, я считаю, лучше работать через OLE. А у Adobe, вроде бы как, был ActiveX, который можно установить и использовать. Так же у TMS есть NativePDF. Правильно сказал S_Gur - потребуется, как минимум, разбить на две подзадачи.
 

lolosoft


Рег
14 Jan, 2010

Тем
0

Постов
4

Баллов
4
  • 27, Feb 2017
  • #6
lolosoft, post: 768740:
А с Word'ом, я считаю, лучше работать через OLE. А у Adobe, вроде бы как, был ActiveX, который можно установить и использовать. Так же у TMS есть NativePDF.

Правильно сказал S_Gur - потребуется, как минимум, разбить на две подзадачи.
Честно говоря, я в таких случаях действовал втупую - открывал файлы с помощью Windows - обычным ShellExecute.

Принимая за аксиому, что если пользователь программы работает с этими файлами и видит необходимость занести их в базу - значит, у него определенно есть средства для работы с ними.

Если требуется только просмотр - обычно ничего другого и не требуется
 

S_Gur


Рег
26 Feb, 2007

Тем
3

Постов
27

Баллов
57
  • 01, Mar 2017
  • #7
Лучше ShellExecute использовать.. мало ли что там пользователь хотел и ,чем хотел открывать эти файлы.
 

sashok74


Рег
24 Jul, 2013

Тем
2

Постов
14

Баллов
34
  • 02, Mar 2017
  • #8
таких компонент вряд ли найдешь, предварительный просмотр проще глянуть как реализовано в файловых менеджерах, тот же Double Commander, например, написан на Object Pascal, исходники в открытом доступе (https://sourceforge.net/p/doublecmd/code/HEAD/tree/

)
Ivanov-m2, post: 768737:
А для PDF установить Active-X через Components-Import Active type library.
Тут надо учитывать, какой просмотрщик стоит, для Abode - свой, для Foxit - свой.
 

SkOle


Рег
06 Dec, 2007

Тем
1

Постов
9

Баллов
19
  • 05, Mar 2017
  • #9
Компоненты для разных задач, как по шаблону, так и просто вывод: WinSoft Word Component Suite WinSoft PDFium Component Suite Ek RTF FastReport -> Export to Word, PDF QuickReport -> Export to Word, PDF HTMLViewer PDFtoolkit VCL Quick PDF Library ReportMachine Gnostice documents created to more 20 formats и т.д., вообще-то компонентов довольно много.
 

sparta


Рег
05 Oct, 2008

Тем
0

Постов
5

Баллов
5
  • 07, Mar 2017
  • #10
у devexpress в 16.2 есть смотрелка pdf и читалка/писалка для rft/doc. но вообще показать doc правильно и во всей красе может только сам word.
так же как и xls/xlsx - его всякие open office не всегда корректно показывает, а вы хотите компонент.
 

ealex7


Рег
24 Jan, 2011

Тем
0

Постов
2

Баллов
2
  • 01, Apr 2017
  • #11
Зачем компоненты для работы с объектом? Сохранил в поток и сохранил в поток. Храни только имя файла, которое было до сохранения в БД.
 

larsdima


Рег
01 Apr, 2017

Тем
0

Постов
5

Баллов
5
  • 02, Apr 2017
  • #12
Несколько замечаний по поводу просмотра PDF.

Я выше писал, что использую Active-X. Однако, в последнее время с ним начались проблемы.

На всех версиях Adobe Reader младше XI возникает ошибка при Create формы с компонентом Active-X. Причем, видимо, после обновления Adobe Reader, т.к. у всех обычно стоит автоматическое обновление. Глубокого исследования проводить не стал, а решил подобрать что-нибудь другое.

Остановился на PDFtoolkit, причем последних версий (у меня 5.0.0.402). Я на этот компонент смотрел и раньше, но более старые версии не все файлы PDF открывали корректно.

В частности, одна из организаций присылала мне сформированные автоматически файлы в каком-то старом формате и PDFtoolkit открывал их так, что слова "налазили" друг на друга.

А в последней версии эта проблема ушла.
 

Ivanov-m2


Рег
22 Jan, 2006

Тем
1

Постов
10

Баллов
20
  • 02, Apr 2017
  • #13
ziv_2010, post: 768747:
Загружайте файл из BLOB в TMemoryStream, а далее открывайте его в нужном формате.
Мысль, конечно, ценная. Только Active-X компонент PDF и OLE для Microsoft Office работают с файлами, а не со стримами :-)
 

Ivanov-m2


Рег
22 Jan, 2006

Тем
1

Постов
10

Баллов
20
  • 13, Apr 2017
  • #14
Ivanov-m2, post: 768751:
Мысль, конечно, ценная. Только Active-X компонент PDF и OLE для Microsoft Office работают с файлами, а не со стримами :-)
Так в чём проблема? Во временную папку записал и делай с ним что хочешь.
 

boroda66


Рег
09 Oct, 2013

Тем
1

Постов
3

Баллов
13
  • 17, Apr 2017
  • #15
boroda66, post: 768752:
Так в чём проблема? Во временную папку записал и делай с ним что хочешь.
Да нет ни каких проблем - просто SaveToStream и SaveToFile разные функции...
 

Ivanov-m2


Рег
22 Jan, 2006

Тем
1

Постов
10

Баллов
20
  • 02, May 2017
  • #16
Я в проектах использую ZEOS. Опенсорсные компоненты, очень быстрые и почти (!) без глюков. Но все обходится легко. Но работа с word не зависит от компонента.

Как бы ты не вытащил данные из БД - это будет всего лишь набор байт, которые надо превратить в объект word.

Напрашивается сохранение этого всего во временный файл и уже его открыть на форме.
 

falsenull


Рег
02 May, 2017

Тем
1

Постов
10

Баллов
20
  • 24, May 2017
  • #17
mail-22, post: 768735:
подскажите компонент для работы с файлами ворд и пдф в БД - т.е. (предварительный) просмотр на форме файлов из BLOB


А как Вы собираетесь различать типы файлов?



Была идея реализовать подобное, но какого-то универсального метода идентификации типов и соответственно их обработки не придумал (*xls, *.xlsx, *.odt и т.д. решают одни и те же задачи но не есть обратносовместимыми, и для каждого типа компонент поддерживать?!) и в результате сейчас файлы сохраняются в временную папку и ShellExecute.
 

ZuluSpirit


Рег
24 May, 2017

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно