Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Просмотр PDF из Recources  [new]
FOGOT-BAstA
Member

Откуда:
Сообщений: 180
Добрый день! Такая задачка: нужно по нажатию кнопки выводить PDF-файл для просмотра из ресурсов проекта. Для просмотра установил ActiveX Acrobat Reader. Пытался с помощью LoadFromResources - он в NativeUInt, а путь AcroPDF требует в WideString.
Помогите получить файл из ресурсов! Заранее спасибо.
7 июн 18, 08:52    [21474606]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
DimaBr
Member

Откуда:
Сообщений: 10529
Зачем пихать PDF в ресурсы ?
7 июн 18, 09:14    [21474652]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
ziv-2014
Member

Откуда:
Сообщений: 107
FOGOT-BAstA
Добрый день! Такая задачка: нужно по нажатию кнопки выводить PDF-файл для просмотра из ресурсов проекта. Для просмотра установил ActiveX Acrobat Reader. Пытался с помощью LoadFromResources - он в NativeUInt, а путь AcroPDF требует в WideString.
Помогите получить файл из ресурсов! Заранее спасибо.

NativeUInt - Так ведь ему нужно хендл на ресурс закинуть.
7 июн 18, 09:30    [21474685]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
FOGOT-BAstA
Member

Откуда:
Сообщений: 180
DimaBr
Зачем пихать PDF в ресурсы ?

Чтобы не привязываться к папке. Это будет справка на 3 страницы для формы.
Ziv-2014
NativeUInt - Так ведь ему нужно хендл на ресурс закинуть.

Вообще в первый раз сталкиваюсь с этим и не знаю как работать с ним...
7 июн 18, 11:56    [21475319]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
DimaBr
Member

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

Зачем PDF ?
7 июн 18, 12:25    [21475504]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
Dimonka
Member

Откуда:
Сообщений: 1010
DimaBr
FOGOT-BAstA
Это будет справка на 3 страницы для формы.

Зачем PDF ?
Зачем справка для формы? :-) Справка для приложения - и не в PDF, а в URL. В 21-ом веке-то живём!
Заодно рекламу свою повесишь, а может и чужую. :-)
7 июн 18, 12:32    [21475536]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
DimaBr
Member

Откуда:
Сообщений: 10529
Dimonka
Зачем справка для формы? :-) Справка для приложения - и не в PDF, а в URL. В 21-ом веке-то живём!
Заодно рекламу свою повесишь, а может и чужую. :-)

Ты с какой планеты ?
7 июн 18, 12:37    [21475568]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 45047

FOGOT-BAstA
Чтобы не привязываться к папке.

Ты неспособен написать одну строчку кода, чтобы справка всегда открывалась из каталога
приложения где бы то ни было? Учись, пацан:
Application.HelpFile := ExtractFilePath(Application.ExeName)+'MyAppHelp.chm';


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

Штатный Html Help тебя чем не устраивает?

Posted via ActualForum NNTP Server 1.5

7 июн 18, 12:46    [21475628]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
ziv-2014
Member

Откуда:
Сообщений: 107
FOGOT-BAstA,
Ну вот по аналогии с этим
7 июн 18, 12:58    [21475693]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 6578
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%, аналогично встречи динозавра на улице)

В общем, сделать то можно, но стоит ли оно таких усилий ?
7 июн 18, 13:19    [21475799]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3433
Сохранить файл во временный и оттуда уже грузить.
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
PDF_FILE RCDATA "res\PDF_FILE.pdf"


command line
cgrc.exe "export.rc"


project.dpr
{$R export.RES}
7 июн 18, 14:22    [21476087]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 45047

JaDi
Сохранить файл во временный

У тебя получился не временный.

Posted via ActualForum NNTP Server 1.5

7 июн 18, 14:26    [21476115]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
DimaBr
Member

Откуда:
Сообщений: 10529
1. Сначала нужно создать PDF
2. Потом запихнуть в ресурсы
3. Потом программа будет извлекать (куда-то)
4. Потом нужно как то это показать

И всё это ради трёх страниц справки. Может проще ОТЧЁТ в Фасте ???
7 июн 18, 14:31    [21476134]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3433
Dimitry Sibiryakov,

uses
  IOUtils;

tempFile := TPath.GetTempFileName + '.pdf';
7 июн 18, 14:34    [21476144]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
под ван
Guest
DimaBr
Dimonka
Dimitry Sibiryakov

Меня терзают смутные сомнения...
7 июн 18, 14:47    [21476212]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 45047

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

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

Posted via ActualForum NNTP Server 1.5

7 июн 18, 15:23    [21476378]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3433
Dimitry Sibiryakov
JaDi
tempFile := TPath.GetTempFileName +'.pdf';

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

Старперы любят усложнять в разы свои программы, даже когда в этом нет необходимости.
7 июн 18, 19:16    [21477321]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр PDF из Recources  [new]
чччД__
Guest
JaDi
Dimitry Sibiryakov,

uses
  IOUtils;

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

И с хера ли файл будет "временным"? Или ты собственную терминологию сочиняешь?
7 июн 18, 19:21    [21477333]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить