mirror of
https://github.com/pdf2htmlEX/pdf2htmlEX.git
synced 2024-12-22 13:00:08 +00:00
Merge pull request #280 from dsablic/master
Honor vdpi and hdpi parameters with SVG background output
This commit is contained in:
commit
e817550ed5
1
AUTHORS
1
AUTHORS
@ -5,6 +5,7 @@ Contributors:
|
|||||||
Chris Cinelli <chris@allestelle.com>
|
Chris Cinelli <chris@allestelle.com>
|
||||||
Daniel Bonniot de Ruisselet <dbonniot@chemaxon.com>
|
Daniel Bonniot de Ruisselet <dbonniot@chemaxon.com>
|
||||||
Deepak <iapain@gmail.com>
|
Deepak <iapain@gmail.com>
|
||||||
|
Denis Sablic <denis.sablic@gmail.com>
|
||||||
filodej <philode@gmail.com>
|
filodej <philode@gmail.com>
|
||||||
hasufell <julian.ospald@googlemail.com>
|
hasufell <julian.ospald@googlemail.com>
|
||||||
Herbert Jones <herbert@mediafire.com>
|
Herbert Jones <herbert@mediafire.com>
|
||||||
|
@ -72,32 +72,21 @@ void CairoBackgroundRenderer::render_page(PDFDoc * doc, int pageno)
|
|||||||
if(param.embed_image)
|
if(param.embed_image)
|
||||||
html_renderer->tmp_files.add((char*)fn);
|
html_renderer->tmp_files.add((char*)fn);
|
||||||
|
|
||||||
surface = cairo_svg_surface_create((char*)fn, page_width * DEFAULT_DPI, page_height * DEFAULT_DPI);
|
surface = cairo_svg_surface_create((char*)fn, page_width * param.h_dpi / DEFAULT_DPI, page_height * param.v_dpi / DEFAULT_DPI);
|
||||||
}
|
}
|
||||||
cairo_svg_surface_restrict_to_version(surface, CAIRO_SVG_VERSION_1_2);
|
cairo_svg_surface_restrict_to_version(surface, CAIRO_SVG_VERSION_1_2);
|
||||||
cairo_surface_set_fallback_resolution(surface, param.h_dpi, param.v_dpi);
|
cairo_surface_set_fallback_resolution(surface, param.h_dpi, param.v_dpi);
|
||||||
|
|
||||||
cairo_t * cr = cairo_create(surface);
|
cairo_t * cr = cairo_create(surface);
|
||||||
setCairo(cr);
|
setCairo(cr);
|
||||||
setPrinting(false); // TODO, check the parameter
|
|
||||||
cairo_save(cr);
|
|
||||||
|
|
||||||
// zoom the image to prevent CairoOutputDev from rounding/increasing thin borders
|
doc->displayPage(this, pageno, param.h_dpi, param.v_dpi,
|
||||||
{
|
|
||||||
cairo_matrix_t matrix;
|
|
||||||
cairo_matrix_init_identity(&matrix);
|
|
||||||
cairo_matrix_scale(&matrix, DEFAULT_DPI, DEFAULT_DPI);
|
|
||||||
cairo_transform(cr, &matrix);
|
|
||||||
}
|
|
||||||
|
|
||||||
doc->displayPage(this, pageno, DEFAULT_DPI, DEFAULT_DPI,
|
|
||||||
0,
|
0,
|
||||||
(!(param.use_cropbox)),
|
(!(param.use_cropbox)),
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
nullptr, nullptr, &annot_cb, nullptr);
|
nullptr, nullptr, &annot_cb, nullptr);
|
||||||
|
|
||||||
cairo_restore(cr);
|
|
||||||
setCairo(nullptr);
|
setCairo(nullptr);
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -107,7 +96,6 @@ void CairoBackgroundRenderer::render_page(PDFDoc * doc, int pageno)
|
|||||||
throw string("Cairo error: ") + cairo_status_to_string(status);
|
throw string("Cairo error: ") + cairo_status_to_string(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
// cairo_surface_show_page(surface);
|
|
||||||
cairo_surface_finish(surface);
|
cairo_surface_finish(surface);
|
||||||
{
|
{
|
||||||
auto status = cairo_surface_status(surface);
|
auto status = cairo_surface_status(surface);
|
||||||
|
Loading…
Reference in New Issue
Block a user