Можно ли использовать qpdf API для удаления изображений из PDF-файла?
Я хотел бы создать инструмент для удаления всех изображений из файла PDF. Кажется, что библиотека qpdf с открытым исходным кодом должна уметь это делать; например, он имеет пример кода для инвертирования некоторых изображений в PDF. Но используя этот код в качестве отправной точки, я не добился успеха в следующем:
QPDF qpdf;
qpdf.processFile(infilename, password);
std::vector<QPDFObjectHandle> pages = qpdf.getAllPages();
for (std::vector<QPDFObjectHandle>::iterator iter = pages.begin();
iter != pages.end(); ++iter) {
QPDFObjectHandle& page = *iter;
std::map<std::string, QPDFObjectHandle> images = page.getPageImages();
for (std::map<std::string, QPDFObjectHandle>::iterator iter = images.begin();
iter != images.end(); ++iter) {
QPDFObjectHandle& image = (*iter).second;
int object_id = image.getObjectID();
QPDFObjGen og = image.getObjGen();
if (image.isIndirect()) {
int og_int = og.getObj();
qpdf.replaceObject(object_id, og_int, QPDFObjectHandle::newNull());
} else {
qpdf.replaceObject(og, QPDFObjectHandle::newNull());
}
}
}
QPDFWriter w(qpdf, outfilename);
w.write();
Все изображения остаются в выходном файле PDF.
Возможно ли это сделать с помощью qpdf?
Если так, что я делаю не так? Если нет, есть ли лучший инструмент с открытым исходным кодом?