2012-07-11 63 views
2

我正在使用libpoppler與包含的qt綁定來編輯PDF文件中的表單。libpoppler-qt4:如何保存表單更改

// sample code 
Poppler::Document* doc = Poppler::Document::load(filename); 
Poppler::Page* page = doc->page(0); 
QList<Poppler::FormField *> forms = page->formFields(); 
for(int j = 0; j < forms.length(); j++) { 
    Poppler::FormField * form = forms.at(j); 
    // fill it out or whatever... 
    ... 

但是,如何保存對文件所做的更改?我知道poppler提供了這種可能性,例如對於Glib綁定:poppler_document_save()。我如何用QT綁定來做到這一點?沒有Poppler::Document::save()方法或任何東西,我錯過了什麼?

回答

4

我在Okular source挖了一些東西后,發現自己找到了它:必須使用Poppler::PDFConverter類。下面提供了一個示例方法:

bool saveToFile(const QString &filename, const Poppler::Document* doc) { 
    Poppler::PDFConverter *pdfConv = doc->pdfConverter(); 
    pdfConv->setOutputFileName(filename); 
    pdfConv->setPDFOptions(pdfConv->pdfOptions()|Poppler::PDFConverter::WithChanges); 
    bool success = pdfConv->convert(); 
    delete pdfConv; 

    return success; 
}