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

mail-22

Member
Joined
Jan 21, 2009
Messages
10
Reaction score
0
подскажите компонент для работы с файлами ворд и пдф в БД - т.е. (предварительный) просмотр на форме файлов из BLOB
 

Ivanov-m2

Member
Joined
Jan 22, 2006
Messages
27
Reaction score
1
Вообще-то, для ответа на вопрос нужно знать версию Delphi и установлены ли Word и Adobe Acrobat...
Например, если установлены и D7, то для Word проще всего использовать OLE. Что-то типа CreateOleObject('Word.Application') и т.д. А для PDF установить Active-X через Components-Import Active type library.
А так вариантов масса - можно целую книгу написать:)
 

S_Gur

Social Engineer
Joined
Feb 26, 2007
Messages
39
Reaction score
6
подскажите компонент для работы с файлами ворд и пдф в БД - т.е. (предварительный) просмотр на форме файлов из BLOB

Вряд ли найдется единый подобный компонент. Тебе требуется решить две абсолютно разные задачи - работа с BLOB-данными в таблице и просмотр произвольной информации, вытащенной оттуда. Для просмотра произвольных файлов был когда-то неплохой компонент ATViewer. Уж не знаю, актуален ли он сейчас. Ну а с блобами, думаю, разберешься
 

lolosoft

Member
Joined
Jan 14, 2010
Messages
40
Reaction score
47
А с Word'ом, я считаю, лучше работать через OLE. А у Adobe, вроде бы как, был ActiveX, который можно установить и использовать. Так же у TMS есть NativePDF.

Правильно сказал S_Gur - потребуется, как минимум, разбить на две подзадачи.
 

S_Gur

Social Engineer
Joined
Feb 26, 2007
Messages
39
Reaction score
6
А с Word'ом, я считаю, лучше работать через OLE. А у Adobe, вроде бы как, был ActiveX, который можно установить и использовать. Так же у TMS есть NativePDF.

Правильно сказал S_Gur - потребуется, как минимум, разбить на две подзадачи.

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

Sparta

Member
Joined
Oct 5, 2008
Messages
17
Reaction score
4
Компоненты для разных задач, как по шаблону, так и просто вывод:
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
и т.д., вообще-то компонентов довольно много.
 

ziv_2010

Member
Joined
May 19, 2010
Messages
14
Reaction score
4
Загружайте файл из BLOB в TMemoryStream, а далее открывайте его в нужном формате.
 

Ivanov-m2

Member
Joined
Jan 22, 2006
Messages
27
Reaction score
1
Несколько замечаний по поводу просмотра PDF.
Я выше писал, что использую Active-X. Однако, в последнее время с ним начались проблемы. На всех версиях Adobe Reader младше XI возникает ошибка при Create формы с компонентом Active-X. Причем, видимо, после обновления Adobe Reader, т.к. у всех обычно стоит автоматическое обновление.
Глубокого исследования проводить не стал, а решил подобрать что-нибудь другое. Остановился на PDFtoolkit, причем последних версий (у меня 5.0.0.402). Я на этот компонент смотрел и раньше, но более старые версии не все файлы PDF открывали корректно. В частности, одна из организаций присылала мне сформированные автоматически файлы в каком-то старом формате и PDFtoolkit открывал их так, что слова "налазили" друг на друга. А в последней версии эта проблема ушла.
 

Ivanov-m2

Member
Joined
Jan 22, 2006
Messages
27
Reaction score
1
Загружайте файл из BLOB в TMemoryStream, а далее открывайте его в нужном формате.

Мысль, конечно, ценная. Только Active-X компонент PDF и OLE для Microsoft Office работают с файлами, а не со стримами :)
 

boroda66

Member
Joined
Oct 9, 2013
Messages
7
Reaction score
0
Мысль, конечно, ценная. Только Active-X компонент PDF и OLE для Microsoft Office работают с файлами, а не со стримами :)

Так в чём проблема? Во временную папку записал и делай с ним что хочешь.
 

Ivanov-m2

Member
Joined
Jan 22, 2006
Messages
27
Reaction score
1
Так в чём проблема? Во временную папку записал и делай с ним что хочешь.
Да нет ни каких проблем - просто SaveToStream и SaveToFile разные функции...
 

ZuluSpirit

New member
Joined
May 24, 2017
Messages
4
Reaction score
0
подскажите компонент для работы с файлами ворд и пдф в БД - т.е. (предварительный) просмотр на форме файлов из BLOB
А как Вы собираетесь различать типы файлов?
Была идея реализовать подобное, но какого-то универсального метода идентификации типов и соответственно их обработки не придумал (*xls, *.xlsx, *.odt и т.д. решают одни и те же задачи но не есть обратносовместимыми, и для каждого типа компонент поддерживать?!) и в результате сейчас файлы сохраняются в временную папку и ShellExecute.
 

Mida

New member
Joined
Mar 9, 2006
Messages
4
Reaction score
0
Lol, компонент за работу с файлами в БД - sounds like a MySQL library or something. You might wanna check out phpMyAdmin, it's a popular tool for managing MySQL databases and has some file management features.
 

saltik

New member
Joined
Dec 1, 2011
Messages
3
Reaction score
0
I'm not fluent in Russian, but based on the title, I'm going to take a guess that you're looking for a file handling library for your database. Have you checked out something like Filepond or Dropzone?
 

Angeldust

New member
Joined
May 7, 2006
Messages
2
Reaction score
0
Not really familiar with the context, but if you're asking about a database driver for file operations, I'd suggest checking out the MongoDB GridFS for storing large files in your DB, or maybe the FileStorage module in PostgreSQL for storing binary files directly in the database.
 

Mistersmok

Member
Joined
Jan 13, 2018
Messages
5
Reaction score
0
"У нас это обычно решают через ORM-ы, к примеру, SQLAlchemy в Python. Есть ли у вас конкретная база данных, с которой работаете?"
 

IVM

New member
Joined
Mar 6, 2007
Messages
4
Reaction score
0
Lmao, думаю я знаю, о чём идет речь) Вы про ORM, верно? Бывают отличные библиотеки на Python, например SQLAlchemy или Django ORM.
 
Top