X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=pdf%2Fev-poppler.cc;h=dbc81d2d180e627569ec7685ed35019cf80e3adf;hb=fcfb6d9ad66784559bbe8bd98151e32903eff54f;hp=7b55b08cbdbc2ec286351c20349c15741ff6d3fa;hpb=6f9c323060b20673516f786ff19443779f551fae;p=evince.git diff --git a/pdf/ev-poppler.cc b/pdf/ev-poppler.cc index 7b55b08c..dbc81d2d 100644 --- a/pdf/ev-poppler.cc +++ b/pdf/ev-poppler.cc @@ -254,8 +254,8 @@ pdf_document_render_pixbuf (EvDocument *document, page); poppler_page_get_size (poppler_page, &width_points, &height_points); - width = (int) ceil (width_points * scale); - height = (int) ceil (height_points * scale); + width = (int) ((width_points * scale) + 0.5); + height = (int) ((height_points * scale) + 0.5); pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, @@ -305,6 +305,7 @@ pdf_document_get_info (EvDocument *document) PopplerPageLayout layout; PopplerPageMode mode; PopplerViewerPreferences view_prefs; + PopplerPermissions permissions; info = g_new0 (EvDocumentInfo, 1); @@ -316,6 +317,7 @@ pdf_document_get_info (EvDocument *document) EV_DOCUMENT_INFO_LAYOUT | EV_DOCUMENT_INFO_START_MODE | /* Missing EV_DOCUMENT_INFO_CREATION_DATE | */ + EV_DOCUMENT_INFO_PERMISSIONS | EV_DOCUMENT_INFO_UI_HINTS; @@ -328,6 +330,7 @@ pdf_document_get_info (EvDocument *document) "page-mode", &mode, "page-layout", &layout, "viewer-preferences", &view_prefs, + "permissions", &permissions, NULL); switch (layout) { @@ -394,6 +397,19 @@ pdf_document_get_info (EvDocument *document) info->ui_hints |= EV_DOCUMENT_UI_HINT_DIRECTION_RTL; } + info->permissions = 0; + if (permissions & POPPLER_PERMISSIONS_OK_TO_PRINT) { + info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT; + } + if (permissions & POPPLER_PERMISSIONS_OK_TO_MODIFY) { + info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY; + } + if (permissions & POPPLER_PERMISSIONS_OK_TO_COPY) { + info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_COPY; + } + if (permissions & POPPLER_PERMISSIONS_OK_TO_ADD_NOTES) { + info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES; + } return info; } @@ -868,14 +884,14 @@ pdf_document_find_iface_init (EvDocumentFindIface *iface) } static void -pdf_document_ps_exporter_begin (EvPSExporter *exporter, const char *filename) +pdf_document_ps_exporter_begin (EvPSExporter *exporter, const char *filename, + int first_page, int last_page) { PdfDocument *pdf_document = PDF_DOCUMENT (exporter); - int n_pages; - n_pages = pdf_document_get_n_pages (EV_DOCUMENT (exporter)); - pdf_document->ps_file = poppler_ps_file_new (pdf_document->document, - filename, n_pages); + pdf_document->ps_file = poppler_ps_file_new (pdf_document->document, filename, + first_page, + last_page - first_page + 1); } static void