Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/63: Рейтинг темы: голосов - 63, средняя оценка - 4.73
6 / 2 / 0
Регистрация: 23.04.2013
Сообщений: 203
1

Написать программу чтения PDF и DJVU файлов

19.11.2013, 21:02. Показов 12757. Ответов 7
Метки нет (Все метки)

Добрый Вечер.
Вобщем, надо написать программу чтения PDF и DJVU файлов.
Пробывал компоненты acroPDF - он не подходит, так как программа не будет запускаться на компьютерах, где нет ADOBE READER.
Вобщем, дайте какие-нибудь советы, какие компоненты брать, через что делать и т.д.
Может есть какой-нибудь исходник никчёмненький(который не жалко) - дайте посмотреть, пожалуйста
Заранее большое спасибо!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2013, 21:02
Ответы с готовыми решениями:

Открыть программу чтения pdf/djvu-файлов из Word
Нужно в тексте расставить некие объекты открывающие программу чтения pdf/djvu (Scientific and...

Создание библиотеки и приложения для чтения файлов djvu .NET
Собственно вопрос: С чего начать? Интересует полная разработка собственного приложения с нуля...

Написать программу для просмотра файлов PDF
какой язык порекомендовали бы? исходники может у кого есть помогите нужно для Дипломного проекта

Захотел скачать программу для чтения djvu, в итоге установился стандартный бандл ненужных программ от mail
Захотел скачать программу для чтения djvu, в итоге установился стандартный бандл ненужных программ...

7
Пишу на Delphi...иногда
1419 / 1276 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
19.11.2013, 21:17 2
для pdf стоит посмотреть тут Обзор: 5 решений для создания и работы с PDF в Delphi.
для djvu на данный момент можно либо самому ковырять формат (White Papers & Tech Docs) либо пользовать ActiveX для отображения в TWebBrouser
Цитата Сообщение от Взято с другого форума
Версия плагина DJVU для браузера - Lizardtech 6.1 (Его можно взять по адресу http://djvu-info.ru/prog/DJVUCNTL_61_EN.EXE).

1) Устанавливаем плагин обычным способом, следуя инструкциям программы-установщика.
2) Запускаем Internet Explorer, через меню «файл» открываем любой DJVU файл и убеждаемся в том, что плагин работает.
3) Запускаем IDE, кладем на форму компоненты: Twebbrouser,2 компонета Tbutton и TOpenDialog.
4) Переходим в инспектор объектов компонента TOpenDialog, и в поле «Filter» пишем: «Файлы DJVU|*.djvu».
5) Создаем обработчик события нажатия кнопки Button1 и пишем в нем:
If not OpenDialog1.Execute then exit;
WebBrowser1.Navigate(OpenDialog1.FileName);
6) В обработчике нажатия Button2 :
WebBrowser1.Navigate('about:blank');

Это очистит компонент TWebBrowser.
1
6 / 2 / 0
Регистрация: 23.04.2013
Сообщений: 203
19.11.2013, 21:55  [ТС] 3
спасибо большое.
П.С. кто ещё чем может помочь?
0
15 / 8 / 1
Регистрация: 19.07.2012
Сообщений: 70
19.11.2013, 22:17 4
Возможно поможет

Читаем Adobe Acrobat PDF файлы из нашего приложения.
Автор: Jorge Abel Ayala Marentes
Adobe Acrobat PDF - хорошо извесный формат, который нравится многим пользователям. Давайте посмотрим, как можно заставить приложение на Delphi прочитать файл такого формата.
Совместимость: Delphi 3.x (или выше)
Итак, Вы должны быть уверены, что у вас проинсталлирован Acrobat Reader, елси таковой программы нет, то её можно скачать с www.adobe.com
После этого необходимо проинсталировать типовую библиотеку для Acrobat
(Project -> Import Type Library из меню Delphi) выберите "Acrobat Control for ActiveX (version x)". Где x - текущая версия библиотеки. Нажмите кнопку инсталяции.

Теперь создайте новое приложение, поместите на форму проинсталлированный компонент TPDF, далее добавите OpenDialog, и в заключении кнопку, при на нажатии на которую будет вызываться процедура открытия файла:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
procedure TForm1.Button1Click(Sender: TObject); 
begin 
if OpenDialog1.Execute then 
pdf1.src := OpenDialog1.FileName; 
end; 
 
в юните PdfLib_TLB вы можете найти интерфейс класса TPdf: 
 
TPdf = class(TOleControl) 
private 
FIntf: _DPdf; 
function GetControlInterface: _DPdf; 
protected 
procedure CreateControl; 
procedure InitControlData; override; 
public 
function LoadFile(const fileName: WideString): WordBool; 
procedure setShowToolbar(On_: WordBool); 
procedure gotoFirstPage; 
procedure gotoLastPage; 
procedure gotoNextPage; 
procedure gotoPreviousPage; 
procedure setCurrentPage(n: Integer); 
procedure goForwardStack; 
procedure goBackwardStack; 
procedure setPageMode(const pageMode: WideString); 
procedure setLayoutMode(const layoutMode: WideString); 
procedure setNamedDest(const namedDest: WideString); 
procedure Print; 
procedure printWithDialog; 
procedure setZoom(percent: Single); 
procedure setZoomScroll(percent: Single; left: Single; top: 
Single); 
procedure setView(const viewMode: WideString); 
procedure setViewScroll(const viewMode: WideString; offset: 
Single); 
procedure setViewRect(left: Single; top: Single; width: Single; 
height: Single); 
procedure printPages(from: Integer; to_: Integer); 
procedure printPagesFit(from: Integer; to_: Integer; shrinkToFit: 
WordBool); 
procedure printAll; 
procedure printAllFit(shrinkToFit: WordBool); 
procedure setShowScrollbars(On_: WordBool); 
procedure AboutBox; 
property ControlInterface: _DPdf read GetControlInterface; 
property DefaultInterface: _DPdf read GetControlInterface; 
published 
property TabStop; 
property Align; 
property DragCursor; 
property DragMode; 
property ParentShowHint; 
property PopupMenu; 
property ShowHint; 
property TabOrder; 
property Visible; 
property OnDragDrop; 
property OnDragOver; 
property OnEndDrag; 
property OnEnter; 
property OnExit; 
property OnStartDrag; 
property src: WideString index 1 read GetWideStringProp write 
SetWideStringProp stored False; 
end;
в заключение можно добавить следующее:

Если Вы не уверены, что у конечного пользователя Вашей программы установлен Acrobat Reader, то необходимо, чтобы приложение проверяло эту ситуацию, прежде чем будут производится различные манипуляции с компонентой TPdf. И второе, если файл PDF имеет различные связи, например с AVI файлами, то они не будут работать из Delphi.
1
6 / 2 / 0
Регистрация: 23.04.2013
Сообщений: 203
20.11.2013, 17:24  [ТС] 5
спасибо большое, но как предусмотреть ситуацию, что у конечного пользователя нет акробата?
П.С. кто ещё что подскажет?

Добавлено через 18 часов 47 минут
Up тему.
Может, кто-то ещё что знает
0
Пишу на Delphi...иногда
1419 / 1276 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
20.11.2013, 19:25 6
Цитата Сообщение от trans967 Посмотреть сообщение
что у конечного пользователя нет акробата?
а чем по ссылке в #2 не понравилось Synopse PDF Engine? бесплатно и согласно написанному там все обходится без доп. установок, попробуйте, может все действительно так, как написано (сам не пробовал)
...Возможности, заявленные разработчиками:

Чистый Delphi-код без использования сторонних DLL
Маленький размер, создаваемых pdf-файлов
Быстрая генерация pdf с минимальным использованием памяти
Доступ к TCanvas для рисования линий, кривых, текста и т.д.
Поддержка Unicode
Создание PDF/A-1 файлов.

При работе с Synopse PDF Engine ничего устанавливать не требуется — достаточно указать в проекте путь к модулям Synopse и подключить модуль synpdf.pas в uses....
0
6 / 2 / 0
Регистрация: 23.04.2013
Сообщений: 203
20.11.2013, 21:12  [ТС] 7
там множество файлов PAS.
Я захожу в synpdf.pas - там огромнейший код, я не пойму что там вообще.
Может подскажете, как с ним работать?
0
Пишу на Delphi...иногда
1419 / 1276 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
20.11.2013, 21:46 8
на сайте Synopse есть некоторые ссылки с примером кода (имхо, стоит посмотреть), также там есть форум, можно там поискать, я бы начал от туда
...Directly call of a TPdfCanvas as published by a TPdfDocument instance - this is the most direct but also more difficult way of rendering;
Use TMetaFile driven content - see TPdfDocumentGDI.VCLCanvas property and the TPdfCanvas.RenderMetaFile method - this is very easy if you want to use "regular" TCanvas methods to draw the page content, especially if you have some existing printing code;
Use TGDIPages of unit mORMotReport to easily create the content from code, with some report-oriented methods (including complex rtf with TGDIPages.AppendRichEdit) - for basic reporting features, it is pretty much the solution. ...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2013, 21:46

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

pdf, djvu
подскажите библиотеки для работы с форматами pdf и djvu

djvu в pdf
Доброго времени суток!Недавно обзавелся букридером Sony prs-t1.Djvu не понимает (а большинство моих...

Pdf to DjVu
Есть ли программа которая конвертирует Pdf в DjVu?

Конвертация djvu to pdf
Нужно сконвертировать книги djvu в pdf (для Amazon Kindle).Кто - нибудь знает хорошую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.