1use crate::{Document, ffi};
7use glib::translate::*;
8
9glib::wrapper! {
10 #[doc(alias = "PopplerPSFile")]
11 pub struct PSFile(Object<ffi::PopplerPSFile>);
12
13 match fn {
14 type_ => || ffi::poppler_ps_file_get_type(),
15 }
16}
17
18impl PSFile {
19 #[doc(alias = "poppler_ps_file_new")]
20 pub fn new(document: &Document, filename: &str, first_page: i32, n_pages: i32) -> PSFile {
21 unsafe {
22 from_glib_full(ffi::poppler_ps_file_new(
23 document.to_glib_none().0,
24 filename.to_glib_none().0,
25 first_page,
26 n_pages,
27 ))
28 }
29 }
30
31 #[cfg(target_os = "linux")]
32 #[cfg_attr(docsrs, doc(cfg(target_os = "linux")))]
33 #[cfg(feature = "v21_12")]
34 #[cfg_attr(docsrs, doc(cfg(feature = "v21_12")))]
35 #[doc(alias = "poppler_ps_file_new_fd")]
36 pub fn new_fd(document: &Document, fd: i32, first_page: i32, n_pages: i32) -> PSFile {
37 unsafe {
38 from_glib_full(ffi::poppler_ps_file_new_fd(
39 document.to_glib_none().0,
40 fd,
41 first_page,
42 n_pages,
43 ))
44 }
45 }
46
47 #[doc(alias = "poppler_ps_file_set_duplex")]
48 pub fn set_duplex(&self, duplex: bool) {
49 unsafe {
50 ffi::poppler_ps_file_set_duplex(self.to_glib_none().0, duplex.into_glib());
51 }
52 }
53
54 #[doc(alias = "poppler_ps_file_set_paper_size")]
55 pub fn set_paper_size(&self, width: f64, height: f64) {
56 unsafe {
57 ffi::poppler_ps_file_set_paper_size(self.to_glib_none().0, width, height);
58 }
59 }
60}