Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenBoard
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lifo
Nicolas Ollinger
OpenBoard
Commits
d966a6c9
Commit
d966a6c9
authored
Jan 12, 2012
by
Anatoly Mihalchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Sankore-204 pdf loading doesn't scele scene any more
parent
02a515b3
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
29 additions
and
33 deletions
+29
-33
UBImportPDF.cpp
src/adaptors/UBImportPDF.cpp
+3
-1
UBImportPDF.h
src/adaptors/UBImportPDF.h
+3
-0
PDFRenderer.cpp
src/pdf/PDFRenderer.cpp
+3
-0
PDFRenderer.h
src/pdf/PDFRenderer.h
+6
-0
XPDFRenderer.cpp
src/pdf/XPDFRenderer.cpp
+14
-30
XPDFRenderer.h
src/pdf/XPDFRenderer.h
+0
-2
No files found.
src/adaptors/UBImportPDF.cpp
View file @
d966a6c9
...
...
@@ -31,7 +31,8 @@
UBImportPDF
::
UBImportPDF
(
QObject
*
parent
)
:
UBImportAdaptor
(
parent
)
{
// NOOP
QDesktopWidget
*
desktop
=
UBApplication
::
desktop
();
this
->
dpi
=
(
desktop
->
physicalDpiX
()
+
desktop
->
physicalDpiY
())
/
2
;
}
...
...
@@ -68,6 +69,7 @@ bool UBImportPDF::addFileToDocument(UBDocumentProxy* pDocument, const QFile& pFi
UBApplication
::
showMessage
(
tr
(
"PDF import failed."
));
return
false
;
}
pdfRenderer
->
setDPI
(
this
->
dpi
);
int
documentPageCount
=
pDocument
->
pageCount
();
...
...
src/adaptors/UBImportPDF.h
View file @
d966a6c9
...
...
@@ -33,6 +33,9 @@ class UBImportPDF : public UBImportAdaptor
virtual
QString
importFileFilter
();
virtual
bool
addFileToDocument
(
UBDocumentProxy
*
pDocument
,
const
QFile
&
pFile
);
private
:
int
dpi
;
};
#endif
/* UBIMPORTPDF_H_ */
src/pdf/PDFRenderer.cpp
View file @
d966a6c9
...
...
@@ -23,6 +23,9 @@
QMap
<
QUuid
,
QPointer
<
PDFRenderer
>
>
PDFRenderer
::
sRenderers
;
PDFRenderer
::
PDFRenderer
()
:
dpiForRendering
(
96
)
{
}
PDFRenderer
::~
PDFRenderer
()
{
...
...
src/pdf/PDFRenderer.h
View file @
d966a6c9
...
...
@@ -50,6 +50,8 @@ class PDFRenderer : public QObject
QUuid
fileUuid
()
const
{
return
mFileUuid
;
}
QByteArray
fileData
()
const
{
return
mFileData
;
}
void
setDPI
(
int
desiredDPI
)
{
this
->
dpiForRendering
=
desiredDPI
;
}
public
slots
:
virtual
void
render
(
QPainter
*
p
,
int
pageNumber
,
const
QRectF
&
bounds
=
QRectF
())
=
0
;
...
...
@@ -63,6 +65,10 @@ class PDFRenderer : public QObject
void
setFileUuid
(
const
QUuid
&
fileUuid
);
static
QMap
<
QUuid
,
QPointer
<
PDFRenderer
>
>
sRenderers
;
protected
:
int
dpiForRendering
;
PDFRenderer
();
};
#endif // PDFRENDERER_H
src/pdf/XPDFRenderer.cpp
View file @
d966a6c9
...
...
@@ -39,8 +39,6 @@ XPDFRenderer::XPDFRenderer(const QString &filename, bool importingFile)
mDocument
=
new
PDFDoc
(
new
GString
(
filename
.
toUtf8
().
data
()),
0
,
0
,
0
);
// the filename GString is deleted on PDFDoc desctruction
sInstancesCount
.
ref
();
mScaleX
=
0.0
;
mScaleY
=
0.0
;
}
XPDFRenderer
::~
XPDFRenderer
()
...
...
@@ -114,16 +112,17 @@ QSizeF XPDFRenderer::pageSizeF(int pageNumber) const
{
int
rotate
=
mDocument
->
getPageRotate
(
pageNumber
);
cropWidth
=
mDocument
->
getPageCropWidth
(
pageNumber
)
;
cropHeight
=
mDocument
->
getPageCropHeight
(
pageNumber
);
cropWidth
=
mDocument
->
getPageCropWidth
(
pageNumber
)
*
this
->
dpiForRendering
/
72.0
;
cropHeight
=
mDocument
->
getPageCropHeight
(
pageNumber
)
*
this
->
dpiForRendering
/
72.0
;
if
(
(
rotate
==
90
)
||
(
rotate
==
270
)
)
if
(
rotate
==
90
||
rotate
==
270
)
{
cropWidth
=
mDocument
->
getPageCropHeight
(
pageNumber
);
cropHeight
=
mDocument
->
getPageCropWidth
(
pageNumber
);
//switching width and height
qreal
tmpVar
=
cropWidth
;
cropWidth
=
cropHeight
;
cropHeight
=
tmpVar
;
}
}
return
QSizeF
(
cropWidth
,
cropHeight
);
}
...
...
@@ -142,14 +141,6 @@ void XPDFRenderer::render(QPainter *p, int pageNumber, const QRectF &bounds)
{
qreal
xscale
=
p
->
worldTransform
().
m11
();
qreal
yscale
=
p
->
worldTransform
().
m22
();
bool
bZoomChanged
=
false
;
if
(
fabs
(
mScaleX
-
xscale
)
>
0.1
||
fabs
(
mScaleY
-
yscale
)
>
0.1
)
{
mScaleX
=
xscale
;
mScaleY
=
yscale
;
bZoomChanged
=
true
;
}
QImage
*
pdfImage
=
createPDFImage
(
pageNumber
,
xscale
,
yscale
,
bounds
);
QTransform
savedTransform
=
p
->
worldTransform
();
...
...
@@ -162,7 +153,6 @@ void XPDFRenderer::render(QPainter *p, int pageNumber, const QRectF &bounds)
QImage
*
XPDFRenderer
::
createPDFImage
(
int
pageNumber
,
const
qreal
xscale
,
const
qreal
yscale
,
const
QRectF
&
bounds
)
{
QImage
*
img
=
new
QImage
();
if
(
isValid
())
{
SplashColor
paperColor
=
{
0xFF
,
0xFF
,
0xFF
};
// white
...
...
@@ -170,36 +160,30 @@ QImage* XPDFRenderer::createPDFImage(int pageNumber, const qreal xscale, const q
delete
mSplash
;
mSplash
=
new
SplashOutputDev
(
splashModeRGB8
,
1
,
gFalse
,
paperColor
);
mSplash
->
startDoc
(
mDocument
->
getXRef
());
int
hResolution
=
72
;
int
vResolution
=
72
;
int
rotation
=
0
;
// in degrees (get it from the worldTransform if we want to support rotation)
GBool
useMediaBox
=
gFalse
;
GBool
crop
=
gTrue
;
GBool
printing
=
gFalse
;
const
qreal
xScale
=
xscale
;
const
qreal
yScale
=
yscale
;
mSliceX
=
0.
;
mSliceY
=
0.
;
if
(
bounds
.
isNull
())
{
mDocument
->
displayPage
(
mSplash
,
pageNumber
,
hResolution
*
xScale
,
vResolution
*
yScale
,
mDocument
->
displayPage
(
mSplash
,
pageNumber
,
this
->
dpiForRendering
,
this
->
dpiForRendering
,
rotation
,
useMediaBox
,
crop
,
printing
);
}
else
{
mSliceX
=
bounds
.
x
()
*
x
S
cale
;
mSliceY
=
bounds
.
y
()
*
y
S
cale
;
qreal
sliceW
=
bounds
.
width
()
*
x
S
cale
;
qreal
sliceH
=
bounds
.
height
()
*
y
S
cale
;
mSliceX
=
bounds
.
x
()
*
x
s
cale
;
mSliceY
=
bounds
.
y
()
*
y
s
cale
;
qreal
sliceW
=
bounds
.
width
()
*
x
s
cale
;
qreal
sliceH
=
bounds
.
height
()
*
y
s
cale
;
mDocument
->
displayPageSlice
(
mSplash
,
pageNumber
,
hResolution
*
xScale
,
vResolution
*
yScale
,
mDocument
->
displayPageSlice
(
mSplash
,
pageNumber
,
this
->
dpiForRendering
,
this
->
dpiForRendering
,
rotation
,
useMediaBox
,
crop
,
printing
,
mSliceX
,
mSliceY
,
sliceW
,
sliceH
);
}
mpSplashBitmap
=
mSplash
->
getBitmap
();
delete
img
;
img
=
new
QImage
(
mpSplashBitmap
->
getDataPtr
(),
mpSplashBitmap
->
getWidth
(),
mpSplashBitmap
->
getHeight
(),
mpSplashBitmap
->
getWidth
()
*
3
,
QImage
::
Format_RGB888
);
}
return
img
;
return
new
QImage
(
mpSplashBitmap
->
getDataPtr
(),
mpSplashBitmap
->
getWidth
(),
mpSplashBitmap
->
getHeight
(),
mpSplashBitmap
->
getWidth
()
*
3
,
QImage
::
Format_RGB888
)
;
}
src/pdf/XPDFRenderer.h
View file @
d966a6c9
...
...
@@ -57,8 +57,6 @@ class XPDFRenderer : public PDFRenderer
SplashBitmap
*
mpSplashBitmap
;
SplashOutputDev
*
mSplash
;
qreal
mScaleX
;
qreal
mScaleY
;
};
#endif // XPDFRENDERER_H
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment