|
Полный справочник ViewerPreferences
ViewerPreferences позволяют управлять тем, как PDF-документы показываются в поддерживающих viewer-ах и как инициализируются некоторые печатные настройки по умолчанию. Текущая библиотека HotPDF поддерживает 14 значений ViewerPreferences плюс связанное InitialZoom.
Текущие типы данных
THPDFDirection = (LeftToRight, RightToLeft);
THPDFNonFullScreenPageMode = (
nfpmUseNone, nfpmUseOutlines, nfpmUseThumbs, nfpmUseOC, nfpmUseAttachments
);
THPDFPrintScaling = (psNone, psAppDefault);
THPDFDuplex = (dupSimplex, dupDuplexFlipShortEdge, dupDuplexFlipLongEdge);
THPDFPageBoundary = (pbMediaBox, pbCropBox, pbBleedBox, pbTrimBox, pbArtBox);
THPDFInitialZoom = (
FitNone, FitPage, FitWidth, FitHeight, FitBox, FitBoxWidth, FitBoxHeight,
Zoom50, Zoom75, Zoom100, Zoom125, Zoom150, Zoom200
);
THPDFViewerPreference = (
vpHideToolbar, vpHideMenubar, vpHideWindowUI, vpFitWindow, vpCenterWindow,
vpDisplayDocTitle, vpDirection, vpNonFullScreenPageMode, vpPrintScaling,
vpDuplex, vpPickTrayByPDFSize, vpNumCopies, vpPrintArea, vpPrintClip,
vpViewArea, vpViewClip
);
THPDFViewerPreferences = set of THPDFViewerPreference;
Поддерживаемые ViewerPreferences
| Опция |
Сопутствующее свойство |
Описание |
| vpHideToolbar |
None |
Скрывает панель инструментов viewer-а. |
| vpHideMenubar |
None |
Скрывает строку меню viewer-а. |
| vpHideWindowUI |
None |
Скрывает элементы UI вроде полос прокрутки и элементов навигации. |
| vpFitWindow |
None |
Масштабирует окно документа под первую отображаемую страницу. |
| vpCenterWindow |
None |
Центрирует окно документа на экране. |
| vpDisplayDocTitle |
Title |
Показывает в заголовке viewer-а название документа вместо имени файла. |
| vpDirection |
Direction |
Сохраняет преобладающий порядок чтения через LeftToRight или RightToLeft. |
| vpNonFullScreenPageMode |
NonFullScreenPageMode |
Задаёт режим страницы после выхода из полноэкранного режима. |
| vpPrintScaling |
PrintScaling |
Задаёт psNone или psAppDefault для масштабирования печати по умолчанию. |
| vpDuplex |
Duplex |
Задаёт симплексную или дуплексную печать. |
| vpPickTrayByPDFSize |
None |
Просит выбирать лоток принтера по размеру PDF-страницы. |
| vpNumCopies |
NumCopies |
Сохраняет предложенное число копий печати. |
| vpPrintArea |
PrintArea |
Задаёт границу страницы для рендеринга при печати. |
| vpPrintClip |
PrintClip |
Задаёт границу страницы для обрезки при печати. |
| vpViewArea |
ViewArea |
Граница страницы для экранной области просмотра (PDF 1.4 12.2). Доступно с HotPDF v2.29.0. |
| vpViewClip |
ViewClip |
Граница страницы для экранной обрезки просмотра (PDF 1.4 12.2). Доступно с HotPDF v2.29.0. |
Значения сопутствующих свойств
Эти свойства записываются только когда включён соответствующий флаг ViewerPreferences.
| Свойство |
Значения |
| Direction |
LeftToRight, RightToLeft |
| NonFullScreenPageMode |
nfpmUseNone, nfpmUseOutlines, nfpmUseThumbs, nfpmUseOC, nfpmUseAttachments |
| PrintScaling |
psNone, psAppDefault |
| Duplex |
dupSimplex, dupDuplexFlipShortEdge, dupDuplexFlipLongEdge |
| PrintArea / PrintClip / ViewArea / ViewClip |
pbMediaBox, pbCropBox, pbBleedBox, pbTrimBox, pbArtBox |
Интеграция InitialZoom
InitialZoom дополняет ViewerPreferences, управляя начальным режимом показа страницы при открытии документа.
По умолчанию: Начиная с HotPDF v2.3.11 значением по умолчанию является FitHeight (PDF /FitV -направление), поэтому создаваемые документы открываются с каждой страницей, вписанной по высоте окна просмотрщика. Задайте InitialZoom в FitNone, чтобы опустить OpenAction и позволить viewer-у откатиться к собственному зуму по умолчанию.
// Complete document presentation setup
HotPDF.ViewerPreferences := [vpFitWindow, vpCenterWindow, vpDisplayDocTitle];
HotPDF.InitialZoom := FitWidth;
// Technical document setup
HotPDF.ViewerPreferences := [vpDisplayDocTitle, vpPrintScaling];
HotPDF.InitialZoom := Zoom125;
// Presentation mode
HotPDF.ViewerPreferences := [vpFitWindow, vpHideToolbar, vpHideMenubar];
HotPDF.InitialZoom := FitPage;
Пример реализации
var
VPref: THPDFViewerPreferences;
begin
VPref := [vpFitWindow, vpCenterWindow, vpDisplayDocTitle];
if EnableDirection then
begin
Include(VPref, vpDirection);
HotPDF.Direction := RightToLeft;
end;
if EnablePrintScaling then
begin
Include(VPref, vpPrintScaling);
HotPDF.PrintScaling := psNone;
end;
HotPDF.ViewerPreferences := VPref;
HotPDF.InitialZoom := FitWidth;
end;
Примечания о совместимости
- Adobe Reader/Acrobat: Обычно даёт самую полную поддержку ViewerPreferences.
- Другие viewer-ы: Поддержка варьируется — эти значения лишь предпочтения, а не жёсткие требования.
- Плавная деградация: Неподдерживаемые настройки корректные viewer-ы должны безопасно игнорировать.
Демо-приложения
Следующие демо синхронизированы с текущей поддержкой библиотеки:
- Demo\Delphi\ViewerPref
- Demo\CBuilder\ViewerPref
|