mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-06-05 21:59:17 +02:00
Issue #123: DPI scaling
This commit is contained in:
@ -187,6 +187,10 @@ bool PDFBLPaintEngine::begin(QPaintDevice*)
|
|||||||
if (m_blContext->begin(m_blOffscreenBuffer.value(), info) == BL_SUCCESS)
|
if (m_blContext->begin(m_blOffscreenBuffer.value(), info) == BL_SUCCESS)
|
||||||
{
|
{
|
||||||
m_blContext->clearAll();
|
m_blContext->clearAll();
|
||||||
|
|
||||||
|
qreal devicePixelRatio = m_qtOffscreenBuffer.devicePixelRatioF();
|
||||||
|
m_blContext->scale(devicePixelRatio);
|
||||||
|
m_blContext->userToMeta();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -583,9 +583,16 @@ void PDFDrawWidget::paintEvent(QPaintEvent* event)
|
|||||||
case RendererEngine::Blend2D:
|
case RendererEngine::Blend2D:
|
||||||
{
|
{
|
||||||
QRect rect = this->rect();
|
QRect rect = this->rect();
|
||||||
if (m_blend2DframeBuffer.size() != rect.size())
|
|
||||||
|
qreal devicePixelRatio = devicePixelRatioF();
|
||||||
|
m_blend2DframeBuffer.setDevicePixelRatio(devicePixelRatio);
|
||||||
|
m_blend2DframeBuffer.setDotsPerMeterX(logicalDpiX());
|
||||||
|
m_blend2DframeBuffer.setDotsPerMeterY(logicalDpiY());
|
||||||
|
|
||||||
|
QSize requiredSize = rect.size() * devicePixelRatio;
|
||||||
|
if (m_blend2DframeBuffer.size() != requiredSize)
|
||||||
{
|
{
|
||||||
m_blend2DframeBuffer = QImage(rect.size(), QImage::Format_ARGB32_Premultiplied);
|
m_blend2DframeBuffer = QImage(requiredSize, QImage::Format_ARGB32_Premultiplied);
|
||||||
}
|
}
|
||||||
|
|
||||||
PDFBLPaintDevice blPaintDevice(m_blend2DframeBuffer, true);
|
PDFBLPaintDevice blPaintDevice(m_blend2DframeBuffer, true);
|
||||||
|
@ -150,6 +150,7 @@ std::vector<QAction*> PDFActionManager::getRenderingOptionActions() const
|
|||||||
RenderOptionTextAntialiasing,
|
RenderOptionTextAntialiasing,
|
||||||
RenderOptionSmoothPictures,
|
RenderOptionSmoothPictures,
|
||||||
RenderOptionIgnoreOptionalContentSettings,
|
RenderOptionIgnoreOptionalContentSettings,
|
||||||
|
RenderOptionDisplayRenderTimes,
|
||||||
RenderOptionDisplayAnnotations,
|
RenderOptionDisplayAnnotations,
|
||||||
RenderOptionInvertColors,
|
RenderOptionInvertColors,
|
||||||
RenderOptionGrayscale,
|
RenderOptionGrayscale,
|
||||||
@ -157,8 +158,7 @@ std::vector<QAction*> PDFActionManager::getRenderingOptionActions() const
|
|||||||
RenderOptionHighContrast,
|
RenderOptionHighContrast,
|
||||||
RenderOptionCustomColors,
|
RenderOptionCustomColors,
|
||||||
RenderOptionShowTextBlocks,
|
RenderOptionShowTextBlocks,
|
||||||
RenderOptionShowTextLines
|
RenderOptionShowTextLines});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<QAction*> PDFActionManager::getActions() const
|
std::vector<QAction*> PDFActionManager::getActions() const
|
||||||
@ -266,6 +266,7 @@ void PDFActionManager::initActions(QSize iconSize, bool initializeStampActions)
|
|||||||
setUserData(RenderOptionTextAntialiasing, pdf::PDFRenderer::TextAntialiasing);
|
setUserData(RenderOptionTextAntialiasing, pdf::PDFRenderer::TextAntialiasing);
|
||||||
setUserData(RenderOptionSmoothPictures, pdf::PDFRenderer::SmoothImages);
|
setUserData(RenderOptionSmoothPictures, pdf::PDFRenderer::SmoothImages);
|
||||||
setUserData(RenderOptionIgnoreOptionalContentSettings, pdf::PDFRenderer::IgnoreOptionalContent);
|
setUserData(RenderOptionIgnoreOptionalContentSettings, pdf::PDFRenderer::IgnoreOptionalContent);
|
||||||
|
setUserData(RenderOptionDisplayRenderTimes, pdf::PDFRenderer::DisplayTimes);
|
||||||
setUserData(RenderOptionDisplayAnnotations, pdf::PDFRenderer::DisplayAnnotations);
|
setUserData(RenderOptionDisplayAnnotations, pdf::PDFRenderer::DisplayAnnotations);
|
||||||
setUserData(RenderOptionInvertColors, pdf::PDFRenderer::ColorAdjust_Invert);
|
setUserData(RenderOptionInvertColors, pdf::PDFRenderer::ColorAdjust_Invert);
|
||||||
setUserData(RenderOptionGrayscale, pdf::PDFRenderer::ColorAdjust_Grayscale);
|
setUserData(RenderOptionGrayscale, pdf::PDFRenderer::ColorAdjust_Grayscale);
|
||||||
|
@ -161,6 +161,7 @@ public:
|
|||||||
RenderOptionTextAntialiasing,
|
RenderOptionTextAntialiasing,
|
||||||
RenderOptionSmoothPictures,
|
RenderOptionSmoothPictures,
|
||||||
RenderOptionIgnoreOptionalContentSettings,
|
RenderOptionIgnoreOptionalContentSettings,
|
||||||
|
RenderOptionDisplayRenderTimes,
|
||||||
RenderOptionDisplayAnnotations,
|
RenderOptionDisplayAnnotations,
|
||||||
RenderOptionInvertColors,
|
RenderOptionInvertColors,
|
||||||
RenderOptionGrayscale,
|
RenderOptionGrayscale,
|
||||||
|
@ -160,6 +160,7 @@ PDFViewerMainWindow::PDFViewerMainWindow(QWidget* parent) :
|
|||||||
m_actionManager->setAction(PDFActionManager::RenderOptionTextAntialiasing, ui->actionRenderOptionTextAntialiasing);
|
m_actionManager->setAction(PDFActionManager::RenderOptionTextAntialiasing, ui->actionRenderOptionTextAntialiasing);
|
||||||
m_actionManager->setAction(PDFActionManager::RenderOptionSmoothPictures, ui->actionRenderOptionSmoothPictures);
|
m_actionManager->setAction(PDFActionManager::RenderOptionSmoothPictures, ui->actionRenderOptionSmoothPictures);
|
||||||
m_actionManager->setAction(PDFActionManager::RenderOptionIgnoreOptionalContentSettings, ui->actionRenderOptionIgnoreOptionalContentSettings);
|
m_actionManager->setAction(PDFActionManager::RenderOptionIgnoreOptionalContentSettings, ui->actionRenderOptionIgnoreOptionalContentSettings);
|
||||||
|
m_actionManager->setAction(PDFActionManager::RenderOptionDisplayRenderTimes, ui->actionRenderOptionDisplayRenderTimes);
|
||||||
m_actionManager->setAction(PDFActionManager::RenderOptionDisplayAnnotations, ui->actionRenderOptionDisplayAnnotations);
|
m_actionManager->setAction(PDFActionManager::RenderOptionDisplayAnnotations, ui->actionRenderOptionDisplayAnnotations);
|
||||||
m_actionManager->setAction(PDFActionManager::RenderOptionInvertColors, ui->actionColorInvert);
|
m_actionManager->setAction(PDFActionManager::RenderOptionInvertColors, ui->actionColorInvert);
|
||||||
m_actionManager->setAction(PDFActionManager::RenderOptionGrayscale, ui->actionColorGrayscale);
|
m_actionManager->setAction(PDFActionManager::RenderOptionGrayscale, ui->actionColorGrayscale);
|
||||||
|
@ -90,6 +90,7 @@
|
|||||||
<addaction name="actionRenderOptionSmoothPictures"/>
|
<addaction name="actionRenderOptionSmoothPictures"/>
|
||||||
<addaction name="actionRenderOptionIgnoreOptionalContentSettings"/>
|
<addaction name="actionRenderOptionIgnoreOptionalContentSettings"/>
|
||||||
<addaction name="actionRenderOptionDisplayAnnotations"/>
|
<addaction name="actionRenderOptionDisplayAnnotations"/>
|
||||||
|
<addaction name="actionRenderOptionDisplayRenderTimes"/>
|
||||||
</widget>
|
</widget>
|
||||||
<addaction name="menuPage_Layout"/>
|
<addaction name="menuPage_Layout"/>
|
||||||
<addaction name="menuRendering_Options"/>
|
<addaction name="menuRendering_Options"/>
|
||||||
@ -1153,6 +1154,17 @@
|
|||||||
<string>If checked, bookmarks for main document chapters are generated automatically.</string>
|
<string>If checked, bookmarks for main document chapters are generated automatically.</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionRenderOptionDisplayRenderTimes">
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Display Render Times</string>
|
||||||
|
</property>
|
||||||
|
<property name="menuRole">
|
||||||
|
<enum>QAction::NoRole</enum>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
<resources>
|
<resources>
|
||||||
|
@ -130,6 +130,7 @@ PDFViewerMainWindowLite::PDFViewerMainWindowLite(QWidget* parent) :
|
|||||||
m_actionManager->setAction(PDFActionManager::RenderOptionTextAntialiasing, ui->actionRenderOptionTextAntialiasing);
|
m_actionManager->setAction(PDFActionManager::RenderOptionTextAntialiasing, ui->actionRenderOptionTextAntialiasing);
|
||||||
m_actionManager->setAction(PDFActionManager::RenderOptionSmoothPictures, ui->actionRenderOptionSmoothPictures);
|
m_actionManager->setAction(PDFActionManager::RenderOptionSmoothPictures, ui->actionRenderOptionSmoothPictures);
|
||||||
m_actionManager->setAction(PDFActionManager::RenderOptionIgnoreOptionalContentSettings, ui->actionRenderOptionIgnoreOptionalContentSettings);
|
m_actionManager->setAction(PDFActionManager::RenderOptionIgnoreOptionalContentSettings, ui->actionRenderOptionIgnoreOptionalContentSettings);
|
||||||
|
m_actionManager->setAction(PDFActionManager::RenderOptionDisplayRenderTimes, ui->actionRenderOptionDisplayRenderTimes);
|
||||||
m_actionManager->setAction(PDFActionManager::RenderOptionDisplayAnnotations, ui->actionRenderOptionDisplayAnnotations);
|
m_actionManager->setAction(PDFActionManager::RenderOptionDisplayAnnotations, ui->actionRenderOptionDisplayAnnotations);
|
||||||
m_actionManager->setAction(PDFActionManager::RenderOptionInvertColors, ui->actionColorInvert);
|
m_actionManager->setAction(PDFActionManager::RenderOptionInvertColors, ui->actionColorInvert);
|
||||||
m_actionManager->setAction(PDFActionManager::RenderOptionGrayscale, ui->actionColorGrayscale);
|
m_actionManager->setAction(PDFActionManager::RenderOptionGrayscale, ui->actionColorGrayscale);
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Go To</string>
|
<string>Go To</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menuBookmarkSettings">
|
<widget class="QMenu" name="menuBookmarkSettings">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Bookmark Settings</string>
|
<string>Bookmark Settings</string>
|
||||||
</property>
|
</property>
|
||||||
@ -56,7 +56,6 @@
|
|||||||
<addaction name="actionGoToNextPage"/>
|
<addaction name="actionGoToNextPage"/>
|
||||||
<addaction name="actionGoToPreviousLine"/>
|
<addaction name="actionGoToPreviousLine"/>
|
||||||
<addaction name="actionGoToNextLine"/>
|
<addaction name="actionGoToNextLine"/>
|
||||||
|
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionBookmarkPage"/>
|
<addaction name="actionBookmarkPage"/>
|
||||||
<addaction name="actionGotoPreviousBookmark"/>
|
<addaction name="actionGotoPreviousBookmark"/>
|
||||||
@ -87,6 +86,7 @@
|
|||||||
<addaction name="actionRenderOptionSmoothPictures"/>
|
<addaction name="actionRenderOptionSmoothPictures"/>
|
||||||
<addaction name="actionRenderOptionIgnoreOptionalContentSettings"/>
|
<addaction name="actionRenderOptionIgnoreOptionalContentSettings"/>
|
||||||
<addaction name="actionRenderOptionDisplayAnnotations"/>
|
<addaction name="actionRenderOptionDisplayAnnotations"/>
|
||||||
|
<addaction name="actionRenderOptionDisplayRenderTimes"/>
|
||||||
</widget>
|
</widget>
|
||||||
<addaction name="menuPage_Layout"/>
|
<addaction name="menuPage_Layout"/>
|
||||||
<addaction name="menuRendering_Options"/>
|
<addaction name="menuRendering_Options"/>
|
||||||
@ -368,65 +368,65 @@
|
|||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionColorInvert">
|
<action name="actionColorInvert">
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="pdf4qtviewer.qrc">
|
<iconset resource="pdf4qtviewer.qrc">
|
||||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Color | Inverted</string>
|
<string>Color | Inverted</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionColorGrayscale">
|
<action name="actionColorGrayscale">
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="pdf4qtviewer.qrc">
|
<iconset resource="pdf4qtviewer.qrc">
|
||||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Color | Grayscale</string>
|
<string>Color | Grayscale</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionColorHighContrast">
|
<action name="actionColorHighContrast">
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="pdf4qtviewer.qrc">
|
<iconset resource="pdf4qtviewer.qrc">
|
||||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Color | High Contrast</string>
|
<string>Color | High Contrast</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionColorBitonal">
|
<action name="actionColorBitonal">
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="pdf4qtviewer.qrc">
|
<iconset resource="pdf4qtviewer.qrc">
|
||||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Color | Monochromatic</string>
|
<string>Color | Monochromatic</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionColorCustom">
|
<action name="actionColorCustom">
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="pdf4qtviewer.qrc">
|
<iconset resource="pdf4qtviewer.qrc">
|
||||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Color | Custom</string>
|
<string>Color | Custom</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionRotateRight">
|
<action name="actionRotateRight">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="pdf4qtviewer.qrc">
|
<iconset resource="pdf4qtviewer.qrc">
|
||||||
@ -557,7 +557,6 @@
|
|||||||
<string>Become a Sponsor</string>
|
<string>Become a Sponsor</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
<action name="actionBookmarkPage">
|
<action name="actionBookmarkPage">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="pdf4qtviewer.qrc">
|
<iconset resource="pdf4qtviewer.qrc">
|
||||||
@ -651,6 +650,17 @@
|
|||||||
<string>If checked, bookmarks for main document chapters are generated automatically.</string>
|
<string>If checked, bookmarks for main document chapters are generated automatically.</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionRenderOptionDisplayRenderTimes">
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Display Render Times</string>
|
||||||
|
</property>
|
||||||
|
<property name="menuRole">
|
||||||
|
<enum>QAction::NoRole</enum>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
<resources>
|
<resources>
|
||||||
|
Reference in New Issue
Block a user