如何在C++中使用Vips将多页PDF文件转换为多图像.jpeg



我正在尝试使用c++中的vips读取.PDF并转换为.jpeg文件。问题是代码将所有页面保存在一个文件.jpeg中。如何保存多个.jpeg文件?

我的代码

VOption *voptions = new VOption();
voptions->set("dpi",150);
voptions->set("page", 0);
voptions->set("n", -1);
VImage in = VImage().pdfload("/Users/gui/Desktop/PDF_Reader/files/TEST_DOC_READER.pdf",voptions);
in.write_to_file("/Users/MyUser/Desktop/PDF_Reader/outputs/*.jpeg");

我找到了一种使用crop解决此问题的方法。

VImage in = VImage().pdfload("/Users/MyUser/Desktop/PDF_Reader/files/TEST_DOC_READER.pdf", voptions);
pages = in.get_int("n-pages");
h = in.height()/pages;
for(int i=0; i<pages; i++){
in.crop(0,i*h, in.width(), h).jpegsave((outdir+to_string(i)+format).c_str());
}

最新更新