bool PDFOptionsIO::readPDFVersion() { QString pdfVersString; if (!readElem(m_root, "pdfVersion", &pdfVersString)) return false; if (pdfVersString == "X3") { m_opts->Version = PDFOptions::PDFVersion_X3; return true; } else if (pdfVersString == "13") { m_opts->Version = PDFOptions::PDFVersion_13; return true; } else if (pdfVersString == "14") { m_opts->Version = PDFOptions::PDFVersion_14; return true; } else if (pdfVersString == "15") { m_opts->Version = PDFOptions::PDFVersion_15; return true; } else { m_error = QObject::tr("Unable to read settings XML:") .arg(QObject::tr("<pdfVersion> invalid", "Load PDF settings")); return false; } }
bool PDFOptionsIO::readLPISettings() { // XML structure will be like this: // <lpiSettings> // <lpiSettingsEntry name="blah"> // <frequency value="0"> // <angle value="0"> // <spotFunc value="0"> // </lpiSettingsEntry> // <lpiSettingsEntry name="blah2"> // ... // </lpiSettingsEntry> // ... // </lpiSettings> QDomNode basenode = getUniqueNode(m_root, "lpiSettings"); QDomElement lpiSettings = getValueElement(basenode, "lpiSettings", false); if (lpiSettings.isNull()) return false; QMap<QString,LPIData> lpiMap; for (QDomNode node = lpiSettings.firstChild(); !node.isNull(); node = node.nextSibling()) { QDomElement elem = getValueElement(basenode, "lpiSettingsEntry", false); if (elem.isNull()) return false; QString name (elem.attribute("name")); if (name.isNull()) { m_error = QObject::tr("Unable to read settings XML:") .arg(QObject::tr("element <lpiSettingsEntry> lacks `name' attribute", "Load PDF settings") .arg(name) ); return false; } LPIData lpi; if (!readElem(elem, "frequency", &lpi.Frequency)) return false; if (!readElem(elem, "angle", &lpi.Angle)) return false; if (!readElem(elem, "spotFunc", &lpi.SpotFunc)) return false; lpiMap[name] = lpi; } return true; }
bool PDFOptionsIO::readPresentationData() { // XML structure will be like this: // <presentationSettings> // <presentationSettingsEntry> // <pageEffectDuration value="0"/> // <pageViewDuration value="0"/> // <effectType value="0"/> // <dm value="0"/> // <m value="0"/> // <di value="0"/> // </presentationSettingsEntry> // <presentationSettingsEntry> // ... // </presentationSettingsEntry> // ... // </presentationSettings> QDomNode basenode = getUniqueNode(m_root, "presentationSettings"); QDomElement pSettings = getValueElement(basenode, "presentationSettings", false); if (pSettings.isNull()) return false; QList<PDFPresentationData> pList; for (QDomNode node = pSettings.firstChild(); !node.isNull(); node = node.nextSibling()) { QDomElement elem = getValueElement(basenode, "presentationSettingsEntry", false); if (elem.isNull()) return false; PDFPresentationData pres; if (!readElem(elem, "pageEffectDuration", &pres.pageEffectDuration)) return false; if (!readElem(elem, "pageViewDuration", &pres.pageViewDuration)) return false; if (!readElem(elem, "effectType", &pres.effectType)) return false; if (!readElem(elem, "dm", &pres.Dm)) return false; if (!readElem(elem, "m", &pres.M)) return false; if (!readElem(elem, "di", &pres.Di)) return false; pList.append(pres); } return true; }
// Helper for readFrom(...) to read settings from the DOM bool PDFOptionsIO::readSettings() { // Get the root element m_root = m_doc.documentElement(); if (m_root.isNull()) { m_error = QObject::tr("Unable to read settings XML: %1") .arg(QObject::tr("null root node", "Load PDF settings")); } // and start processing elements if (!readElem(m_root, "firstUse", &m_opts->firstUse)) return false; if (!readElem(m_root, "thumbnails", &m_opts->Thumbnails)) return false; if (!readElem(m_root, "articles", &m_opts->Articles)) return false; if (!readElem(m_root, "useLayers", &m_opts->useLayers)) return false; if (!readElem(m_root, "compress", &m_opts->Compress)) return false; if (!readElem(m_root, "compressMethod", (int*) &m_opts->CompressMethod)) return false; if (!readElem(m_root, "quality", &m_opts->Quality)) return false; if (!readElem(m_root, "recalcPic", &m_opts->RecalcPic)) return false; if (!readElem(m_root, "bookmarks", &m_opts->Bookmarks)) return false; if (!readElem(m_root, "picRes", &m_opts->PicRes)) return false; if (!readElem(m_root, "embedPDF", &m_opts->embedPDF)) m_opts->embedPDF = false; readPDFVersion(); if (!readElem(m_root, "resolution", &m_opts->Resolution)) return false; if (!readElem(m_root, "binding", &m_opts->Binding)) return false; if (!readList(m_root, "embedFonts", &m_opts->EmbedList)) return false; if (!readList(m_root, "subsetFonts", &m_opts->SubsetList)) return false; if (!readElem(m_root, "mirrorH", &m_opts->MirrorH)) return false; if (!readElem(m_root, "mirrorV", &m_opts->MirrorV)) return false; if (!readElem(m_root, "rotateDegrees", &m_opts->RotateDeg)) return false; if (!readElem(m_root, "presentMode", &m_opts->PresentMode)) return false; if (!readPresentationData()) return false; if (!readElem(m_root, "filename", &m_opts->fileName)) return false; if (!readElem(m_root, "isGrayscale", &m_opts->isGrayscale)) return false; if (!readElem(m_root, "useRGB", &m_opts->UseRGB)) return false; if (!readElem(m_root, "useProfiles", &m_opts->UseProfiles)) return false; if (!readElem(m_root, "useProfiles2", &m_opts->UseProfiles2)) return false; if (!readElem(m_root, "useLPI", &m_opts->UseLPI)) return false; if (!readElem(m_root, "useSpotColors", &m_opts->UseSpotColors)) return false; if (!readElem(m_root, "doMultiFile", &m_opts->doMultiFile)) return false; if (!readLPISettings()) return false; if (!readElem(m_root, "solidProf", &m_opts->SolidProf)) return false; if (!readElem(m_root, "sComp", &m_opts->SComp)) return false; if (!readElem(m_root, "imageProf", &m_opts->ImageProf)) return false; if (!readElem(m_root, "embeddedI", &m_opts->EmbeddedI)) return false; if (!readElem(m_root, "intent2", &m_opts->Intent2)) return false; if (!readElem(m_root, "printProf", &m_opts->PrintProf)) return false; if (!readElem(m_root, "info", &m_opts->Info)) return false; if (!readElem(m_root, "intent", &m_opts->Intent)) return false; if (!readElem(m_root, "bleedTop", &m_opts->bleeds.Top)) return false; if (!readElem(m_root, "bleedLeft", &m_opts->bleeds.Left)) return false; if (!readElem(m_root, "bleedRight", &m_opts->bleeds.Right)) return false; if (!readElem(m_root, "bleedBottom", &m_opts->bleeds.Bottom)) return false; if (!readElem(m_root, "encrypt", &m_opts->Encrypt)) return false; if (!readElem(m_root, "passOwner", &m_opts->PassOwner)) return false; if (!readElem(m_root, "passUser", &m_opts->PassUser)) return false; if (!readElem(m_root, "permissions", &m_opts->Permissions)) return false; return true; }