【问题标题】:libpoppler-qt4: How to save form changeslibpoppler-qt4:如何保存表单更改
【发布时间】:2012-07-11 15:15:58
【问题描述】:

我正在使用带有 qt 绑定的 libpoppler 来编辑 PDF 文件中的表单。

// 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() 方法或任何东西,我错过了什么?

【问题讨论】:

    标签: c++ qt pdf poppler


    【解决方案1】:

    我在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;
    } 
    

    【讨论】:

      猜你喜欢
      • 2012-08-04
      • 2015-06-07
      • 2021-11-20
      • 2015-07-06
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      相关资源
      最近更新 更多