Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Просмотр PDF из Recources / 18 сообщений из 18, страница 1 из 1
07.06.2018, 08:52
    #39657038
FOGOT-BAstA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
Добрый день! Такая задачка: нужно по нажатию кнопки выводить PDF-файл для просмотра из ресурсов проекта. Для просмотра установил ActiveX Acrobat Reader. Пытался с помощью LoadFromResources - он в NativeUInt, а путь AcroPDF требует в WideString.
Помогите получить файл из ресурсов! Заранее спасибо.
...
Рейтинг: 0 / 0
07.06.2018, 09:14
    #39657050
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
Зачем пихать PDF в ресурсы ?
...
Рейтинг: 0 / 0
07.06.2018, 09:30
    #39657059
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
FOGOT-BAstAДобрый день! Такая задачка: нужно по нажатию кнопки выводить PDF-файл для просмотра из ресурсов проекта. Для просмотра установил ActiveX Acrobat Reader. Пытался с помощью LoadFromResources - он в NativeUInt, а путь AcroPDF требует в WideString.
Помогите получить файл из ресурсов! Заранее спасибо.
NativeUInt - Так ведь ему нужно хендл на ресурс закинуть.
...
Рейтинг: 0 / 0
07.06.2018, 11:56
    #39657235
FOGOT-BAstA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
DimaBrЗачем пихать PDF в ресурсы ?
Чтобы не привязываться к папке. Это будет справка на 3 страницы для формы.
Ziv-2014NativeUInt - Так ведь ему нужно хендл на ресурс закинуть.
Вообще в первый раз сталкиваюсь с этим и не знаю как работать с ним...
...
Рейтинг: 0 / 0
07.06.2018, 12:25
    #39657277
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
FOGOT-BAstAЭто будет справка на 3 страницы для формы.
Зачем PDF ?
...
Рейтинг: 0 / 0
07.06.2018, 12:32
    #39657286
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
DimaBrFOGOT-BAstAЭто будет справка на 3 страницы для формы.
Зачем PDF ? Зачем справка для формы? :-) Справка для приложения - и не в PDF, а в URL. В 21-ом веке-то живём!
Заодно рекламу свою повесишь, а может и чужую. :-)
...
Рейтинг: 0 / 0
07.06.2018, 12:37
    #39657295
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
Dimonka Зачем справка для формы? :-) Справка для приложения - и не в PDF, а в URL. В 21-ом веке-то живём!
Заодно рекламу свою повесишь, а может и чужую. :-)
Ты с какой планеты ?
...
Рейтинг: 0 / 0
07.06.2018, 12:46
    #39657308
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
FOGOT-BAstAЧтобы не привязываться к папке.
Ты неспособен написать одну строчку кода, чтобы справка всегда открывалась из каталога
приложения где бы то ни было? Учись, пацан:
Код: sql
1.
Application.HelpFile := ExtractFilePath(Application.ExeName)+'MyAppHelp.chm';



FOGOT-BAstAЭто будет справка на 3 страницы для формы.

Штатный Html Help тебя чем не устраивает?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.06.2018, 12:58
    #39657316
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
FOGOT-BAstA,
Ну вот по аналогии с этим
...
Рейтинг: 0 / 0
07.06.2018, 13:19
    #39657332
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
AFAIK

1. Если PDF хранить НЕ как чистый PDF-файл, а как OLE Object то проблем создать объект из набора байт (без записи на диск), быть особых не должно.

2. Насколько помню, Adobe ActiveX так же поддерживает IStream ( https://msdn.microsoft.com/en-us/library/windows/desktop/aa380034(v=vs.85).aspx) т.ч. можно IUnknown преобразовать в IStream и попытаться через него сохранять/загружать (не помню, сохраняет ли при этом ActiveX сам документ, тут шансы 50% vs 50%, аналогично встречи динозавра на улице)

В общем, сделать то можно, но стоит ли оно таких усилий ?
...
Рейтинг: 0 / 0
07.06.2018, 14:22
    #39657403
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
Сохранить файл во временный и оттуда уже грузить.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
uses
  SysUtils, Classes, Windows;

var
  res: TResourceStream;
begin
  res := TResourceStream.Create(HInstance, PChar('PDF_FILE'), RT_RCDATA);
  try
    res.SaveToFile('temp file');
  finally
    FreeAndNil(res);
  end;
end;



export.rc
Код: pascal
1.
PDF_FILE RCDATA "res\PDF_FILE.pdf"



command line
Код: pascal
1.
cgrc.exe "export.rc"



project.dpr
Код: pascal
1.
{$R export.RES}
...
Рейтинг: 0 / 0
07.06.2018, 14:26
    #39657410
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
JaDiСохранить файл во временный

У тебя получился не временный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.06.2018, 14:31
    #39657416
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
1. Сначала нужно создать PDF
2. Потом запихнуть в ресурсы
3. Потом программа будет извлекать (куда-то)
4. Потом нужно как то это показать

И всё это ради трёх страниц справки. Может проще ОТЧЁТ в Фасте ???
...
Рейтинг: 0 / 0
07.06.2018, 14:34
    #39657417
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
Dimitry Sibiryakov,

Код: pascal
1.
2.
3.
4.
uses
  IOUtils;

tempFile := TPath.GetTempFileName + '.pdf';
...
Рейтинг: 0 / 0
07.06.2018, 14:47
    #39657434
под ван
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
Dim aBr
Dim onka
Dim itry Sibiryakov

Меня терзают смутные сомнения...
...
Рейтинг: 0 / 0
07.06.2018, 15:23
    #39657470
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
JaDitempFile := TPath.GetTempFileName +'.pdf';

Ага, а автоматически удалять при закрытии и максимально кэшировать в памяти - излишества,
чайникам недоступные.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.06.2018, 19:16
    #39657855
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
Dimitry SibiryakovJaDitempFile := TPath.GetTempFileName +'.pdf';

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

Старперы любят усложнять в разы свои программы, даже когда в этом нет необходимости.
...
Рейтинг: 0 / 0
07.06.2018, 19:21
    #39657865
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр PDF из Recources
JaDiDimitry Sibiryakov,

Код: pascal
1.
2.
3.
4.
uses
  IOUtils;

tempFile := TPath.GetTempFileName + '.pdf';


И с хера ли файл будет "временным"? Или ты собственную терминологию сочиняешь?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Просмотр PDF из Recources / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]