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)
|
||||
{
|
||||
m_blContext->clearAll();
|
||||
|
||||
qreal devicePixelRatio = m_qtOffscreenBuffer.devicePixelRatioF();
|
||||
m_blContext->scale(devicePixelRatio);
|
||||
m_blContext->userToMeta();
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
@ -583,9 +583,16 @@ void PDFDrawWidget::paintEvent(QPaintEvent* event)
|
||||
case RendererEngine::Blend2D:
|
||||
{
|
||||
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);
|
||||
|
@ -150,6 +150,7 @@ std::vector<QAction*> PDFActionManager::getRenderingOptionActions() const
|
||||
RenderOptionTextAntialiasing,
|
||||
RenderOptionSmoothPictures,
|
||||
RenderOptionIgnoreOptionalContentSettings,
|
||||
RenderOptionDisplayRenderTimes,
|
||||
RenderOptionDisplayAnnotations,
|
||||
RenderOptionInvertColors,
|
||||
RenderOptionGrayscale,
|
||||
@ -157,8 +158,7 @@ std::vector<QAction*> PDFActionManager::getRenderingOptionActions() const
|
||||
RenderOptionHighContrast,
|
||||
RenderOptionCustomColors,
|
||||
RenderOptionShowTextBlocks,
|
||||
RenderOptionShowTextLines
|
||||
});
|
||||
RenderOptionShowTextLines});
|
||||
}
|
||||
|
||||
std::vector<QAction*> PDFActionManager::getActions() const
|
||||
@ -266,6 +266,7 @@ void PDFActionManager::initActions(QSize iconSize, bool initializeStampActions)
|
||||
setUserData(RenderOptionTextAntialiasing, pdf::PDFRenderer::TextAntialiasing);
|
||||
setUserData(RenderOptionSmoothPictures, pdf::PDFRenderer::SmoothImages);
|
||||
setUserData(RenderOptionIgnoreOptionalContentSettings, pdf::PDFRenderer::IgnoreOptionalContent);
|
||||
setUserData(RenderOptionDisplayRenderTimes, pdf::PDFRenderer::DisplayTimes);
|
||||
setUserData(RenderOptionDisplayAnnotations, pdf::PDFRenderer::DisplayAnnotations);
|
||||
setUserData(RenderOptionInvertColors, pdf::PDFRenderer::ColorAdjust_Invert);
|
||||
setUserData(RenderOptionGrayscale, pdf::PDFRenderer::ColorAdjust_Grayscale);
|
||||
|
@ -161,6 +161,7 @@ public:
|
||||
RenderOptionTextAntialiasing,
|
||||
RenderOptionSmoothPictures,
|
||||
RenderOptionIgnoreOptionalContentSettings,
|
||||
RenderOptionDisplayRenderTimes,
|
||||
RenderOptionDisplayAnnotations,
|
||||
RenderOptionInvertColors,
|
||||
RenderOptionGrayscale,
|
||||
|
@ -160,6 +160,7 @@ PDFViewerMainWindow::PDFViewerMainWindow(QWidget* parent) :
|
||||
m_actionManager->setAction(PDFActionManager::RenderOptionTextAntialiasing, ui->actionRenderOptionTextAntialiasing);
|
||||
m_actionManager->setAction(PDFActionManager::RenderOptionSmoothPictures, ui->actionRenderOptionSmoothPictures);
|
||||
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::RenderOptionInvertColors, ui->actionColorInvert);
|
||||
m_actionManager->setAction(PDFActionManager::RenderOptionGrayscale, ui->actionColorGrayscale);
|
||||
|
@ -90,6 +90,7 @@
|
||||
<addaction name="actionRenderOptionSmoothPictures"/>
|
||||
<addaction name="actionRenderOptionIgnoreOptionalContentSettings"/>
|
||||
<addaction name="actionRenderOptionDisplayAnnotations"/>
|
||||
<addaction name="actionRenderOptionDisplayRenderTimes"/>
|
||||
</widget>
|
||||
<addaction name="menuPage_Layout"/>
|
||||
<addaction name="menuRendering_Options"/>
|
||||
@ -1153,6 +1154,17 @@
|
||||
<string>If checked, bookmarks for main document chapters are generated automatically.</string>
|
||||
</property>
|
||||
</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>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources>
|
||||
|
@ -130,6 +130,7 @@ PDFViewerMainWindowLite::PDFViewerMainWindowLite(QWidget* parent) :
|
||||
m_actionManager->setAction(PDFActionManager::RenderOptionTextAntialiasing, ui->actionRenderOptionTextAntialiasing);
|
||||
m_actionManager->setAction(PDFActionManager::RenderOptionSmoothPictures, ui->actionRenderOptionSmoothPictures);
|
||||
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::RenderOptionInvertColors, ui->actionColorInvert);
|
||||
m_actionManager->setAction(PDFActionManager::RenderOptionGrayscale, ui->actionColorGrayscale);
|
||||
|
@ -42,7 +42,7 @@
|
||||
<property name="title">
|
||||
<string>Go To</string>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuBookmarkSettings">
|
||||
<widget class="QMenu" name="menuBookmarkSettings">
|
||||
<property name="title">
|
||||
<string>Bookmark Settings</string>
|
||||
</property>
|
||||
@ -56,7 +56,6 @@
|
||||
<addaction name="actionGoToNextPage"/>
|
||||
<addaction name="actionGoToPreviousLine"/>
|
||||
<addaction name="actionGoToNextLine"/>
|
||||
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionBookmarkPage"/>
|
||||
<addaction name="actionGotoPreviousBookmark"/>
|
||||
@ -87,6 +86,7 @@
|
||||
<addaction name="actionRenderOptionSmoothPictures"/>
|
||||
<addaction name="actionRenderOptionIgnoreOptionalContentSettings"/>
|
||||
<addaction name="actionRenderOptionDisplayAnnotations"/>
|
||||
<addaction name="actionRenderOptionDisplayRenderTimes"/>
|
||||
</widget>
|
||||
<addaction name="menuPage_Layout"/>
|
||||
<addaction name="menuRendering_Options"/>
|
||||
@ -368,65 +368,65 @@
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionColorInvert">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Color | Inverted</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionColorGrayscale">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Color | Grayscale</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionColorHighContrast">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Color | High Contrast</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionColorBitonal">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Color | Monochromatic</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionColorCustom">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Color | Custom</string>
|
||||
</property>
|
||||
</action>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Color | Inverted</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionColorGrayscale">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Color | Grayscale</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionColorHighContrast">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Color | High Contrast</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionColorBitonal">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Color | Monochromatic</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionColorCustom">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
<normaloff>:/resources/invert-colors.svg</normaloff>:/resources/invert-colors.svg</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Color | Custom</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionRotateRight">
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
@ -557,7 +557,6 @@
|
||||
<string>Become a Sponsor</string>
|
||||
</property>
|
||||
</action>
|
||||
|
||||
<action name="actionBookmarkPage">
|
||||
<property name="icon">
|
||||
<iconset resource="pdf4qtviewer.qrc">
|
||||
@ -651,6 +650,17 @@
|
||||
<string>If checked, bookmarks for main document chapters are generated automatically.</string>
|
||||
</property>
|
||||
</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>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources>
|
||||
|
Reference in New Issue
Block a user