Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
dart_pdf
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
David PHAM-VAN
2021-09-03 18:00:49 -0200
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
08571ad253129b865282ba038b09d6f211f7a030
08571ad2
1 parent
f1e27ff8
Fix pdfium memory leak
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
6 deletions
printing/CHANGELOG.md
printing/linux/print_job.cc
printing/windows/print_job.cpp
printing/CHANGELOG.md
View file @
08571ad
...
...
@@ -4,7 +4,8 @@
-
Update Google fonts
-
Fix typo in README
-
Fix an iOS build warning
-
Fix iOS build warning
-
Fix pdfium memory leak
## 5.5.0
...
...
printing/linux/print_job.cc
View file @
08571ad
...
...
@@ -245,7 +245,12 @@ void print_job::raster_pdf(const uint8_t data[],
const
int32_t
pages
[],
size_t
pages_count
,
double
scale
)
{
FPDF_InitLibraryWithConfig
(
nullptr
);
FPDF_LIBRARY_CONFIG
config
;
config
.
version
=
2
;
config
.
m_pUserFontPaths
=
NULL
;
config
.
m_pIsolate
=
NULL
;
config
.
m_v8EmbedderSlot
=
0
;
FPDF_InitLibraryWithConfig
(
&
config
);
auto
doc
=
FPDF_LoadMemDocument64
(
data
,
size
,
nullptr
);
if
(
!
doc
)
{
...
...
@@ -302,6 +307,7 @@ void print_job::raster_pdf(const uint8_t data[],
on_page_rasterized
(
this
,
p
,
l
,
bWidth
,
bHeight
);
FPDFBitmap_Destroy
(
bitmap
);
FPDF_ClosePage
(
page
);
}
FPDF_CloseDocument
(
doc
);
...
...
printing/windows/print_job.cpp
View file @
08571ad
...
...
@@ -204,7 +204,12 @@ void PrintJob::writeJob(std::vector<uint8_t> data) {
auto
r
=
StartDoc
(
hDC
,
&
docInfo
);
FPDF_InitLibraryWithConfig
(
nullptr
);
FPDF_LIBRARY_CONFIG
config
;
config
.
version
=
2
;
config
.
m_pUserFontPaths
=
NULL
;
config
.
m_pIsolate
=
NULL
;
config
.
m_v8EmbedderSlot
=
0
;
FPDF_InitLibraryWithConfig
(
&
config
);
auto
doc
=
FPDF_LoadMemDocument64
(
data
.
data
(),
data
.
size
(),
nullptr
);
if
(
!
doc
)
{
...
...
@@ -230,7 +235,7 @@ void PrintJob::writeJob(std::vector<uint8_t> data) {
int
bHeight
=
static_cast
<
int
>
(
pdfHeight
*
dpiY
);
FPDF_RenderPage
(
hDC
,
page
,
0
,
0
,
bWidth
,
bHeight
,
0
,
FPDF_ANNOT
);
FPDF_ClosePage
(
page
);
r
=
EndPage
(
hDC
);
}
...
...
@@ -284,7 +289,12 @@ void PrintJob::pickPrinter(void* result) {}
void
PrintJob
::
rasterPdf
(
std
::
vector
<
uint8_t
>
data
,
std
::
vector
<
int
>
pages
,
double
scale
)
{
FPDF_InitLibraryWithConfig
(
nullptr
);
FPDF_LIBRARY_CONFIG
config
;
config
.
version
=
2
;
config
.
m_pUserFontPaths
=
NULL
;
config
.
m_pIsolate
=
NULL
;
config
.
m_v8EmbedderSlot
=
0
;
FPDF_InitLibraryWithConfig
(
&
config
);
auto
doc
=
FPDF_LoadMemDocument64
(
data
.
data
(),
data
.
size
(),
nullptr
);
if
(
!
doc
)
{
...
...
@@ -320,7 +330,8 @@ void PrintJob::rasterPdf(std::vector<uint8_t> data,
auto
bitmap
=
FPDFBitmap_Create
(
bWidth
,
bHeight
,
0
);
FPDFBitmap_FillRect
(
bitmap
,
0
,
0
,
bWidth
,
bHeight
,
0xffffffff
);
FPDF_RenderPageBitmap
(
bitmap
,
page
,
0
,
0
,
bWidth
,
bHeight
,
0
,
FPDF_ANNOT
);
FPDF_RenderPageBitmap
(
bitmap
,
page
,
0
,
0
,
bWidth
,
bHeight
,
0
,
FPDF_ANNOT
|
FPDF_LCD_TEXT
);
uint8_t
*
p
=
static_cast
<
uint8_t
*>
(
FPDFBitmap_GetBuffer
(
bitmap
));
auto
stride
=
FPDFBitmap_GetStride
(
bitmap
);
...
...
@@ -341,6 +352,7 @@ void PrintJob::rasterPdf(std::vector<uint8_t> data,
this
);
FPDFBitmap_Destroy
(
bitmap
);
FPDF_ClosePage
(
page
);
}
FPDF_CloseDocument
(
doc
);
...
...
Please
register
or
login
to post a comment