r23548 by jghali - Add support for PDF 1.6 and embedded OpenType fonts
scribus-commit
scribus-commit at lists.scribus.net
Tue Mar 31 11:40:00 UTC 2020
Author: jghali
Date: Tue Mar 31 11:39:59 2020
New Revision: 23548
URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23548
Log:
Add support for PDF 1.6 and embedded OpenType fonts
Added:
trunk/Scribus/scribus/pdfversion.cpp
trunk/Scribus/scribus/pdfversion.h
Modified:
trunk/Scribus/Scribus.pro
trunk/Scribus/scribus/CMakeLists.txt
trunk/Scribus/scribus/commonstrings.cpp
trunk/Scribus/scribus/commonstrings.h
trunk/Scribus/scribus/pdflib_core.cpp
trunk/Scribus/scribus/pdflib_core.h
trunk/Scribus/scribus/pdfoptions.cpp
trunk/Scribus/scribus/pdfoptions.h
trunk/Scribus/scribus/pdfoptionsio.cpp
trunk/Scribus/scribus/pdfwriter.cpp
trunk/Scribus/scribus/pdfwriter.h
trunk/Scribus/scribus/plugins/fileloader/scribus12format/scribus12format.cpp
trunk/Scribus/scribus/plugins/fileloader/scribus134format/scribus134format.cpp
trunk/Scribus/scribus/plugins/fileloader/scribus13format/scribus13format.cpp
trunk/Scribus/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
trunk/Scribus/scribus/plugins/import/pdf/importpdf.cpp
trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp
trunk/Scribus/scribus/plugins/scriptplugin_py2x/objpdffile.cpp
trunk/Scribus/scribus/prefsmanager.cpp
trunk/Scribus/scribus/scfonts.cpp
trunk/Scribus/scribus/scribusdoc.cpp
trunk/Scribus/scribus/ui/checkDocument.cpp
trunk/Scribus/scribus/ui/pdfexportdialog.cpp
trunk/Scribus/scribus/ui/pdfversioncombo.cpp
trunk/Scribus/scribus/ui/pdfversioncombo.h
trunk/Scribus/scribus/ui/pdfversionmodel.cpp
trunk/Scribus/scribus/ui/pdfversionmodel.h
trunk/Scribus/scribus/ui/prefs_pdfexport.cpp
trunk/Scribus/scribus/ui/prefs_pdfexport.h
trunk/Scribus/scribus/ui/tabpdfoptions.cpp
trunk/Scribus/scribus/ui/tabpdfoptions.h
trunk/Scribus/win32/msvc2013/scribus-main/Scribus.vcxproj
trunk/Scribus/win32/msvc2013/scribus-main/Scribus.vcxproj.filters
trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj
trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj.filters
Modified: trunk/Scribus/Scribus.pro
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/Scribus.pro
==============================================================================
--- trunk/Scribus/Scribus.pro (original)
+++ trunk/Scribus/Scribus.pro Tue Mar 31 11:39:59 2020
@@ -143,6 +143,7 @@
scribus/pdfoptions.h \
scribus/pdfoptionsio.h \
scribus/pdfstructs.h \
+ scribus/pdfversion.h \
scribus/pdfwriter.h \
scribus/pluginapi.h \
scribus/pluginmanager.h \
@@ -1305,6 +1306,7 @@
scribus/pdflib_core.cpp \
scribus/pdfoptions.cpp \
scribus/pdfoptionsio.cpp \
+ scribus/pdfversion.cpp \
scribus/pdfwriter.cpp \
scribus/pluginmanager.cpp \
scribus/pp_proxy.cpp \
Modified: trunk/Scribus/scribus/CMakeLists.txt
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/CMakeLists.txt
==============================================================================
--- trunk/Scribus/scribus/CMakeLists.txt (original)
+++ trunk/Scribus/scribus/CMakeLists.txt Tue Mar 31 11:39:59 2020
@@ -683,6 +683,7 @@
pdflib_core.cpp
pdfoptions.cpp
pdfoptionsio.cpp
+ pdfversion.cpp
pdfwriter.cpp
pluginmanager.cpp
pp_proxy.cpp
Modified: trunk/Scribus/scribus/commonstrings.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/commonstrings.cpp
==============================================================================
--- trunk/Scribus/scribus/commonstrings.cpp (original)
+++ trunk/Scribus/scribus/commonstrings.cpp Tue Mar 31 11:39:59 2020
@@ -166,6 +166,7 @@
QString CommonStrings::PDF_1_3 = "";
QString CommonStrings::PDF_1_4 = "";
QString CommonStrings::PDF_1_5 = "";
+QString CommonStrings::PDF_1_6 = "";
QString CommonStrings::PDF_X1a = "";
QString CommonStrings::PDF_X3 = "";
QString CommonStrings::PDF_X4 = "";
@@ -433,6 +434,7 @@
CommonStrings::PDF_1_3 = "PDF 1.3";
CommonStrings::PDF_1_4 = "PDF 1.4";
CommonStrings::PDF_1_5 = "PDF 1.5";
+ CommonStrings::PDF_1_6 = "PDF 1.6";
CommonStrings::PDF_X1a = "PDF/X-1a";
CommonStrings::PDF_X3 = "PDF/X-3";
CommonStrings::PDF_X4 = "PDF/X-4";
Modified: trunk/Scribus/scribus/commonstrings.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/commonstrings.h
==============================================================================
--- trunk/Scribus/scribus/commonstrings.h (original)
+++ trunk/Scribus/scribus/commonstrings.h Tue Mar 31 11:39:59 2020
@@ -255,6 +255,7 @@
static QString PDF_1_3;
static QString PDF_1_4;
static QString PDF_1_5;
+ static QString PDF_1_6;
static QString PDF_X1a;
static QString PDF_X3;
static QString PDF_X4;
Modified: trunk/Scribus/scribus/pdflib_core.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/pdflib_core.cpp
==============================================================================
--- trunk/Scribus/scribus/pdflib_core.cpp (original)
+++ trunk/Scribus/scribus/pdflib_core.cpp Tue Mar 31 11:39:59 2020
@@ -578,22 +578,22 @@
bool PDFLibCore::PDF_IsPDFX()
{
- if (Options.Version == PDFOptions::PDFVersion_X1a)
+ if (Options.Version == PDFVersion::PDF_X1a)
return true;
- if (Options.Version == PDFOptions::PDFVersion_X3)
+ if (Options.Version == PDFVersion::PDF_X3)
return true;
- if (Options.Version == PDFOptions::PDFVersion_X4)
+ if (Options.Version == PDFVersion::PDF_X4)
return true;
return false;
}
-bool PDFLibCore::PDF_IsPDFX(PDFOptions::PDFVersion ver)
-{
- if (ver == PDFOptions::PDFVersion_X1a)
+bool PDFLibCore::PDF_IsPDFX(const PDFVersion& ver)
+{
+ if (ver == PDFVersion::PDF_X1a)
return true;
- if (ver == PDFOptions::PDFVersion_X3)
+ if (ver == PDFVersion::PDF_X3)
return true;
- if (ver == PDFOptions::PDFVersion_X4)
+ if (ver == PDFVersion::PDF_X4)
return true;
return false;
}
@@ -1012,29 +1012,6 @@
UsedFontsF.clear();
writer.writeHeader(Options.Version);
-
-// if (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers))
-// ObjCounter = 10;
-// else
-// ObjCounter = 9;
-// switch (Options.Version)
-// {
-// case PDFOptions::PDFVersion_X1a:
-// case PDFOptions::PDFVersion_X3:
-// case PDFOptions::PDFVersion_13:
-// PutDoc("%PDF-1.3\n");
-// break;
-// case PDFOptions::PDFVersion_14:
-// PutDoc("%PDF-1.4\n");
-// break;
-// case PDFOptions::PDFVersion_X4:
-// case PDFOptions::PDFVersion_15:
-// PutDoc("%PDF-1.5\n");
-// break;
-// }
-// if (PDF_IsPDFX())
-// ObjCounter++;
-// PutDoc("%\xc7\xec\x8f\xa2\n");
PDF_Begin_Catalog();
PDF_Begin_MetadataAndEncrypt();
@@ -1078,7 +1055,7 @@
writer.ThreadsObj = writer.newObject();
PutDoc("/Threads " + Pdf::toObjRef(writer.ThreadsObj) + "\n");
}
- if (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers))
+ if (Options.exportsLayers())
{
writer.OCPropertiesObj = writer.newObject();
PutDoc("/OCProperties " + Pdf::toObjRef(writer.OCPropertiesObj) + "\n");
@@ -1088,7 +1065,7 @@
writer.OutputIntentObj = writer.newObject();
PutDoc("/OutputIntents [ " + Pdf::toObjRef(writer.OutputIntentObj) + " ]\n");
}
- if ((Options.Version == PDFOptions::PDFVersion_X4))
+ if ((Options.Version == PDFVersion::PDF_X4))
{
writer.MetaDataObj = writer.newObject();
PutDoc("/Metadata "+ Pdf::toObjRef(writer.MetaDataObj) + "\n");
@@ -1115,7 +1092,7 @@
PutDoc("/PageMode /FullScreen\n");
else if (Options.displayThumbs)
PutDoc("/PageMode /UseThumbs\n");
- else if ((Options.Version == PDFOptions::PDFVersion_15) && (Options.displayLayers))
+ else if ((Options.Version == PDFVersion::PDF_15 || Options.Version == PDFVersion::PDF_16) && (Options.displayLayers))
PutDoc("/PageMode /UseOC\n");
if (!Options.openAction.isEmpty())
{
@@ -1140,7 +1117,7 @@
// Datum += "Z";
// only include XMP to PDF/X-4 at the moment, could easily be extended to include it to any PDF
- if (Options.Version == PDFOptions::PDFVersion_X4)
+ if (Options.Version == PDFVersion::PDF_X4)
generateXMP(dt.toString("yyyy-MM-ddThh:mm:ssZ"));
/* The following code makes the resulting PDF "Reader enabled" in Acrobat Reader 8
@@ -1195,7 +1172,7 @@
writer.setFileId(Pdf::toPdfDocEncoding(IDg));
if (Options.Encrypt)
{
- writer.setEncryption((Options.Version == PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_15), Pdf::toPdfDocEncoding(Options.PassOwner), Pdf::toPdfDocEncoding(Options.PassUser), Options.Permissions);
+ writer.setEncryption(Options.Version.supports128BitsEncryption(), Pdf::toPdfDocEncoding(Options.PassOwner), Pdf::toPdfDocEncoding(Options.PassUser), Options.Permissions);
}
writer.startObj(writer.InfoObj);
PutDoc("<<\n/Creator " + EncString(QByteArray("Scribus ") + VERSION, writer.InfoObj) + "\n");
@@ -1210,14 +1187,14 @@
PutDoc("/Keywords " + EncStringUTF16(doc.documentInfo().keywords(), writer.InfoObj) + "\n");
PutDoc("/CreationDate " + EncString(Datum, writer.InfoObj) + "\n");
PutDoc("/ModDate " + EncString(Datum, writer.InfoObj) + "\n");
- if (Options.Version == PDFOptions::PDFVersion_X1a)
+ if (Options.Version == PDFVersion::PDF_X1a)
{
PutDoc("/GTS_PDFXVersion (PDF/X-1:2001)\n");
PutDoc("/GTS_PDFXConformance (PDF/X-1a:2001)\n");
}
- if (Options.Version == PDFOptions::PDFVersion_X3)
+ if (Options.Version == PDFVersion::PDF_X3)
PutDoc("/GTS_PDFXVersion (PDF/X-3:2002)\n");
- if (Options.Version == PDFOptions::PDFVersion_X4)
+ if (Options.Version == PDFVersion::PDF_X4)
PutDoc("/GTS_PDFXVersion (PDF/X-4)\n");
PutDoc("/Trapped /False\n>>");
writer.endObj(writer.InfoObj);
@@ -1257,7 +1234,7 @@
StdFonts.insert("/ZapfDingbats", "");
if (pgit->itemText.length() > 0 || mustEmbed)
{
- if (Options.Version < PDFOptions::PDFVersion_14)
+ if (Options.Version < PDFVersion::PDF_14)
StdFonts.insert(ind2PDFabr[pgit->annotation().Font()], "");
QString replacementName = pgit->itemText.defaultStyle().charStyle().font().replacementName();
ReallyUsed.insert(replacementName, DocFonts[replacementName]);
@@ -1292,7 +1269,7 @@
StdFonts.insert("/ZapfDingbats", "");
if (pgit->itemText.length() > 0 || mustEmbed)
{
- if (Options.Version < PDFOptions::PDFVersion_14)
+ if (Options.Version < PDFVersion::PDF_14)
StdFonts.insert(ind2PDFabr[pgit->annotation().Font()], "");
QString replacementName = pgit->itemText.defaultStyle().charStyle().font().replacementName();
ReallyUsed.insert(replacementName, DocFonts[replacementName]);
@@ -1327,7 +1304,7 @@
StdFonts.insert("/ZapfDingbats", "");
if (pgit->itemText.length() > 0 || mustEmbed)
{
- if (Options.Version < PDFOptions::PDFVersion_14)
+ if (Options.Version < PDFVersion::PDF_14)
StdFonts.insert(ind2PDFabr[pgit->annotation().Font()], "");
QString replacementName = pgit->itemText.defaultStyle().charStyle().font().replacementName();
ReallyUsed.insert(replacementName, DocFonts[replacementName]);
@@ -1367,7 +1344,7 @@
StdFonts.insert("/ZapfDingbats", "");
if (pgit->itemText.length() > 0)
{
- if (Options.Version < PDFOptions::PDFVersion_14)
+ if (Options.Version < PDFVersion::PDF_14)
StdFonts.insert(ind2PDFabr[pgit->annotation().Font()], "");
QString replacementName = pgit->itemText.defaultStyle().charStyle().font().replacementName();
ReallyUsed.insert(replacementName, DocFonts[replacementName]);
@@ -1742,7 +1719,6 @@
}
PdfId PDFLibCore::PDF_EmbedFontObject(const QByteArray& font, const QByteArray& subtype)
-
{
PdfId embeddedFontObject = writer.newObject();
writer.startObj(embeddedFontObject);
@@ -1812,11 +1788,11 @@
{
if (face.type() == ScFace::OTF)
{
- PutDoc("/FontFile3 "+Pdf::toPdf(embeddedFontObject)+" 0 R\n");
+ PutDoc("/FontFile3 " + Pdf::toPdf(embeddedFontObject) + " 0 R\n");
}
else
{
- PutDoc("/FontFile2 "+Pdf::toPdf(embeddedFontObject)+" 0 R\n");
+ PutDoc("/FontFile2 " + Pdf::toPdf(embeddedFontObject) + " 0 R\n");
}
}
else if (fformat == ScFace::PFB)
@@ -2336,7 +2312,9 @@
if (fformat == ScFace::SFNT || fformat == ScFace::TTCF)
{
QByteArray subtype;
- if (face.type() == ScFace::OTF)
+ if (face.type() == ScFace::OTF && Options.supportsEmbeddedOpenTypeFonts())
+ subtype = "/OpenType";
+ else if (face.type() == ScFace::OTF)
{
subtype = "/CIDFontType0C";
QByteArray cff_bb = sfnt::getTable(bb, "CFF ");
@@ -2428,7 +2406,7 @@
QByteArray subtype = (fformat == ScFace::SFNT || fformat == ScFace::TTCF) ? "/TrueType" : "/Type1";
- if ((face.isSymbolic() || !hasNeededGlyphNames || Options.Version == PDFOptions::PDFVersion_X4 || face.type() == ScFace::OTF) &&
+ if ((face.isSymbolic() || !hasNeededGlyphNames || Options.Version == PDFVersion::PDF_X4 || face.type() == ScFace::OTF) &&
(fformat == ScFace::SFNT || fformat == ScFace::TTCF))
{
pdfFont = PDF_EncodeCidFont(fontName, face, baseFont, fontDescriptor, gl, QMap<uint,uint>());
@@ -2438,7 +2416,7 @@
pdfFont = PDF_EncodeSimpleFont(fontName, face, baseFont, subtype, embeddedFontObject != 0, fontDescriptor, gl);
}
- if ((Options.Version != PDFOptions::PDFVersion_X4) && (face.type() != ScFace::OTF))
+ if ((Options.Version != PDFVersion::PDF_X4) && (face.type() != ScFace::OTF))
PDF_EncodeFormFont(fontName, face, baseFont, subtype, fontDescriptor);
}
pdfFont.usage = Used_in_Content;
@@ -2505,7 +2483,7 @@
Transpar[HTName] = writeGState("/HT "+Pdf::toPdf(halftones)+" 0 R\n");
ResCount++;
}
- if ((doc.HasCMS) && (Options.UseProfiles) && (Options.Version != PDFOptions::PDFVersion_X1a))
+ if ((doc.HasCMS) && (Options.UseProfiles) && (Options.Version != PDFVersion::PDF_X1a))
{
PdfId iccProfileObject = writer.newObject();
writer.startObj(iccProfileObject);
@@ -2600,7 +2578,7 @@
void PDFLibCore::PDF_Begin_Layers()
{
- if ( ((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers))
+ if (Options.exportsLayers())
{
ScLayer ll;
PdfOCGInfo ocg;
@@ -2664,9 +2642,9 @@
{
doc.Layers.levelToLayer(ll, Lnr);
PItems = doc.MasterItems;
- if ((ll.isPrintable) || (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers)))
- {
- if (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers))
+ if (ll.isPrintable || Options.exportsLayers())
+ {
+ if (Options.exportsLayers())
PutPage("/OC /" + OCGEntries[ll.Name].Name + " BDC\n");
for (int a = 0; a < PItems.count(); ++a)
{
@@ -2776,7 +2754,7 @@
case PageItem::LatexFrame:
PutPage("q\n");
// Same functions as for ImageFrames work for LatexFrames too
- if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && Options.supportsTransparency())
{
PutPage(PDF_TransparenzFill(ite));
}
@@ -2840,7 +2818,7 @@
PutPage("Q\n");
if (((ite->lineColor() != CommonStrings::None) || (!ite->NamedLStyle.isEmpty()) || (!ite->strokePattern().isEmpty()) || (ite->GrTypeStroke > 0)))
{
- if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && Options.supportsTransparency())
PutPage(PDF_TransparenzStroke(ite));
if (ite->NamedLStyle.isEmpty())
{
@@ -2895,7 +2873,7 @@
case PageItem::TextFrame:
break;
case PageItem::Line:
- if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && Options.supportsTransparency())
PutPage(PDF_TransparenzStroke(ite));
if (ite->NamedLStyle.isEmpty())
{
@@ -2971,7 +2949,7 @@
case PageItem::RegularPolygon:
case PageItem::Arc:
PutPage("q\n");
- if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && Options.supportsTransparency())
{
PutPage(PDF_TransparenzFill(ite));
}
@@ -3015,7 +2993,7 @@
PutPage("Q\n");
if ((ite->lineColor() != CommonStrings::None) || (!ite->NamedLStyle.isEmpty()) || (!ite->strokePattern().isEmpty()) || (ite->GrTypeStroke > 0))
{
- if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && Options.supportsTransparency())
PutPage(PDF_TransparenzStroke(ite));
if ((ite->NamedLStyle.isEmpty()) && (ite->lineWidth() != 0.0))
{
@@ -3071,7 +3049,7 @@
if (ite->PoLine.size() > 3) // && ((ite->PoLine.point(0) != ite->PoLine.point(1)) || (ite->PoLine.point(2) != ite->PoLine.point(3))))
{
PutPage("q\n");
- if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && Options.supportsTransparency())
{
PutPage(PDF_TransparenzFill(ite));
}
@@ -3116,7 +3094,7 @@
}
if ((ite->lineColor() != CommonStrings::None) || (!ite->NamedLStyle.isEmpty()) || (!ite->strokePattern().isEmpty()) || (ite->GrTypeStroke > 0))
{
- if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && Options.supportsTransparency())
PutPage(PDF_TransparenzStroke(ite));
if (ite->NamedLStyle.isEmpty())
{
@@ -3228,14 +3206,14 @@
{
PageItem* embedded = pat.items.at(em);
tmpD += "q\n";
- tmpD += "1 0 0 1 "+FToStr(embedded->gXpos)+" "+FToStr(ite->height() - embedded->gYpos)+" cm\n";
+ tmpD += "1 0 0 1 " + FToStr(embedded->gXpos) + " " + FToStr(ite->height() - embedded->gYpos) + " cm\n";
QByteArray output;
if (!PDF_ProcessItem(output, embedded, pag, pag->pageNr(), true))
return false;
tmpD += output;
tmpD += "Q\n";
}
- if (Options.Version >= PDFOptions::PDFVersion_14 || Options.Version == PDFOptions::PDFVersion_X4)
+ if (Options.supportsTransparency())
PutPage(Write_TransparencyGroup(ite->fillTransparency(), ite->fillBlendmode(), tmpD, ite));
else
PutPage(tmpD);
@@ -3274,7 +3252,7 @@
tmpD += "Q\n";
}
groupStackPos.pop();
- if (Options.Version >= PDFOptions::PDFVersion_14 || Options.Version == PDFOptions::PDFVersion_X4)
+ if (Options.supportsTransparency())
PutPage(Write_TransparencyGroup(ite->fillTransparency(), ite->fillBlendmode(), tmpD, ite));
else
PutPage(Write_FormXObject(tmpD, ite));
@@ -3325,7 +3303,7 @@
.replace("%2", Pdf::toPdf(qHash(ite)));
pageData.XObjects[name] = templateObject;
}
- if (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers))
+ if (Options.exportsLayers())
PutPage("EMC\n");
}
Lnr++;
@@ -3568,7 +3546,7 @@
}
pageData.ObjNum = WritePDFStream(Content);
int Gobj = 0;
- if ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4))
+ if (Options.supportsTransparency())
{
Gobj = writer.newObject();
writer.startObj(Gobj);
@@ -3597,11 +3575,11 @@
PutDoc("/BleedBox ["+FToStr(markOffs)+" "+FToStr(markOffs)+" "+FToStr(maxBoxX-markOffs)+" "+FToStr(maxBoxY-markOffs)+"]\n");
PutDoc("/CropBox [0 0 "+FToStr(maxBoxX)+" "+FToStr(maxBoxY)+"]\n");
PutDoc("/TrimBox ["+FToStr(bleedLeft+markOffs)+" "+FToStr(Options.bleeds.bottom()+markOffs)+" "+FToStr(maxBoxX-bleedRight-markOffs)+" "+FToStr(maxBoxY-Options.bleeds.top()-markOffs)+"]\n");
- if (Options.Version >= PDFOptions::PDFVersion_13) // PDF/X forbids having both art and trim box!
+ if (!Options.Version.isPDFX()) // PDF/X forbids having both art and trim box!
PutDoc("/ArtBox ["+FToStr(bleedLeft+markOffs)+" "+FToStr(Options.bleeds.bottom()+markOffs)+" "+FToStr(maxBoxX-bleedRight-markOffs)+" "+FToStr(maxBoxY-Options.bleeds.top()-markOffs)+"]\n");
PutDoc("/Rotate "+Pdf::toPdf(Options.RotateDeg)+"\n");
PutDoc("/Contents "+Pdf::toPdf(pageData.ObjNum)+" 0 R\n");
- if ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) // && (Transpar.count() != 0))
+ if (Options.supportsTransparency()) // && (Transpar.count() != 0))
PutDoc("/Group "+Pdf::toPdf(Gobj)+" 0 R\n");
if (Options.Thumbnails)
PutDoc("/Thumb "+Pdf::toPdf(pageData.Thumb)+" 0 R\n");
@@ -3868,10 +3846,10 @@
if (!Options.MirrorH)
PutPage("1 0 0 1 0 0 cm\n");
- if ((layer.isPrintable) || (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers)))
- {
- if ((((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4))) && (Options.useLayers))
- PutPage("/OC /"+OCGEntries[layer.Name].Name+" BDC\n");
+ if (layer.isPrintable || Options.exportsLayers())
+ {
+ if (Options.exportsLayers())
+ PutPage("/OC /" + OCGEntries[layer.Name].Name + " BDC\n");
for (int am = 0; am < pag->FromMaster.count() && !abortExport; ++am)
{
ite = pag->FromMaster.at(am);
@@ -3886,7 +3864,7 @@
.replace("%2", Pdf::toPdf(qHash(ite)));
if ((!ite->asTextFrame()) && (!ite->asPathText()) && (!ite->asTable()))
{
- if (((layer.transparency != 1) || (layer.blendMode != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((layer.transparency != 1) || (layer.blendMode != 0)) && Options.supportsTransparency())
content += (name + " Do\n");
else
PutPage(name + " Do\n");
@@ -3901,7 +3879,7 @@
ite->setYPos(ite->yPos() - mPage->yOffset() + pag->yOffset(), true);
if (!PDF_ProcessItem(output, ite, pag, pag->pageNr()))
return false;
- if (((layer.transparency != 1) || (layer.blendMode != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((layer.transparency != 1) || (layer.blendMode != 0)) && Options.supportsTransparency())
content += output;
else
PutPage(output);
@@ -3911,7 +3889,7 @@
}
}
// Couldn't we use Write_TransparencyGroup() here?
- if (((layer.transparency != 1) || (layer.blendMode != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) ||(Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((layer.transparency != 1) || (layer.blendMode != 0)) && Options.supportsTransparency())
{
PdfId Gobj = writer.newObject();
writer.startObj(Gobj);
@@ -3952,7 +3930,7 @@
PutPage("/"+name+" Do\n");
PutPage("Q\n");
}
- if (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers))
+ if (Options.exportsLayers())
PutPage("EMC\n");
}
return true;
@@ -3966,11 +3944,11 @@
int pc_exportpagesitems = usingGUI ? progressDialog->progress("ECPI") : 0;
PItems = (pag->pageNameEmpty()) ? doc.DocItems : doc.MasterItems;
- if ((layer.isPrintable) || (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers)))
+ if (layer.isPrintable || Options.exportsLayers())
{
QByteArray inh;
- if (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers))
- PutPage("/OC /"+OCGEntries[layer.Name].Name+" BDC\n");
+ if (Options.exportsLayers())
+ PutPage("/OC /" + OCGEntries[layer.Name].Name + " BDC\n");
for (int a = 0; a < PItems.count() && !abortExport; ++a)
{
ite = PItems.at(a);
@@ -3983,13 +3961,13 @@
}
if (!PDF_ProcessItem(output, ite, pag, PNr))
return false;
- if (((layer.transparency != 1) || (layer.blendMode != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((layer.transparency != 1) || (layer.blendMode != 0)) && Options.supportsTransparency())
inh += output;
else
PutPage(output);
}
// Couldn't we use Write_TransparencyGroup() here?
- if (((layer.transparency != 1) || (layer.blendMode != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) ||(Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((layer.transparency != 1) || (layer.blendMode != 0)) && Options.supportsTransparency())
{
int Gobj = writer.newObject();
writer.startObj(Gobj);
@@ -4029,7 +4007,7 @@
PutPage(Pdf::toName(name) + " Do\n");
PutPage("Q\n");
}
- if (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers))
+ if (Options.exportsLayers())
PutPage("EMC\n");
}
return true;
@@ -4182,7 +4160,7 @@
QByteArray PDFLibCore::PDF_PutSoftShadow(PageItem* ite)
{
- if ((Options.Version < PDFOptions::PDFVersion_14 && Options.Version != PDFOptions::PDFVersion_X4) || !ite->hasSoftShadow() || ite->softShadowColor() == CommonStrings::None || !ite->printEnabled())
+ if (!Options.supportsTransparency() || !ite->hasSoftShadow() || ite->softShadowColor() == CommonStrings::None || !ite->printEnabled())
return "";
double maxSize;
QByteArray tmp("q\n");
@@ -4418,7 +4396,7 @@
"/OPM 1\n");
tmp += Pdf::toName(ShName) + " gs\n";
}
-// if (((ite->fillTransparency() != 0) || (ite->lineTransparency() != 0)) && (Options.Version >= PDFOptions::PDFVersion_14))
+// if (((ite->fillTransparency() != 0) || (ite->lineTransparency() != 0)) && (Options.supportsTransparency()))
// tmp += PDF_Transparenz(ite);
if ((ite->isBookmark) && (Options.Bookmarks))
PDF_Bookmark(ite, pag->height() - (ite->yPos() - pag->yOffset()));
@@ -4506,7 +4484,7 @@
#ifdef HAVE_OSG
if (ite->asOSGFrame())
{
- if (Options.Version != PDFOptions::PDFVersion_X3)
+ if (Options.Version != PDFVersion::PDF_X3)
{
if (!PDF_3DAnnotation(ite, PNr))
return false;
@@ -4516,7 +4494,7 @@
#endif
tmp += "q\n";
// Same functions as for ImageFrames work for LatexFrames too
- if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4) ))
+ if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && Options.supportsTransparency())
{
tmp += PDF_TransparenzFill(ite);
}
@@ -4580,7 +4558,7 @@
tmp += "Q\n";
if (((ite->lineColor() != CommonStrings::None) || (!ite->NamedLStyle.isEmpty()) || (!ite->strokePattern().isEmpty()) || (ite->GrTypeStroke > 0)))
{
- if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4) ))
+ if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && Options.supportsTransparency())
tmp += PDF_TransparenzStroke(ite);
if (ite->NamedLStyle.isEmpty()) //&& (ite->lineWidth() != 0.0))
{
@@ -4645,7 +4623,7 @@
break;
}
tmp += "q\n";
- if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4) ))
+ if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && Options.supportsTransparency())
{
tmp += PDF_TransparenzFill(ite);
}
@@ -4702,7 +4680,7 @@
tmp += "Q\n";
if (((ite->lineColor() != CommonStrings::None) || (!ite->NamedLStyle.isEmpty()) || (!ite->strokePattern().isEmpty()) || (ite->GrTypeStroke > 0)))
{
- if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4) ))
+ if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && Options.supportsTransparency())
tmp += PDF_TransparenzStroke(ite);
if (ite->NamedLStyle.isEmpty()) //&& (ite->lineWidth() != 0.0))
{
@@ -4755,7 +4733,7 @@
}
break;
case PageItem::Line:
- if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && Options.supportsTransparency())
tmp += PDF_TransparenzStroke(ite);
if (ite->NamedLStyle.isEmpty())
{
@@ -4832,7 +4810,7 @@
case PageItem::RegularPolygon:
case PageItem::Arc:
tmp += "q\n";
- if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && Options.supportsTransparency())
{
tmp += PDF_TransparenzFill(ite);
}
@@ -4876,7 +4854,7 @@
tmp += "Q\n";
if ((ite->lineColor() != CommonStrings::None) || (!ite->NamedLStyle.isEmpty()) || (!ite->strokePattern().isEmpty()) || (ite->GrTypeStroke > 0))
{
- if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && Options.supportsTransparency())
tmp += PDF_TransparenzStroke(ite);
if (ite->NamedLStyle.isEmpty()) //&& (ite->lineWidth() != 0.0))
{
@@ -4933,7 +4911,7 @@
if (ite->PoLine.size() > 3) // && ((ite->PoLine.point(0) != ite->PoLine.point(1)) || (ite->PoLine.point(2) != ite->PoLine.point(3))))
{
tmp += "q\n";
- if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && Options.supportsTransparency())
{
tmp += PDF_TransparenzFill(ite);
}
@@ -4978,7 +4956,7 @@
}
if ((ite->lineColor() != CommonStrings::None) || (!ite->NamedLStyle.isEmpty()) || (!ite->strokePattern().isEmpty()) || (ite->GrTypeStroke > 0))
{
- if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && Options.supportsTransparency())
tmp += PDF_TransparenzStroke(ite);
if (ite->NamedLStyle.isEmpty()) //&& (ite->lineWidth() != 0.0))
{
@@ -5074,7 +5052,7 @@
tmp += "q\n";
if ((ite->lineColor() != CommonStrings::None) || (!ite->NamedLStyle.isEmpty()) || (!ite->strokePattern().isEmpty()) || (ite->GrTypeStroke > 0))
{
- if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->lineTransparency() != 0) || (ite->lineBlendmode() != 0)) && Options.supportsTransparency())
tmp += PDF_TransparenzStroke(ite);
if (ite->NamedLStyle.isEmpty()) //&& (ite->lineWidth() != 0.0))
{
@@ -5128,7 +5106,7 @@
tmp += "Q\n";
}
}
- if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if (((ite->GrMask > 0) || (ite->fillTransparency() != 0) || (ite->fillBlendmode() != 0)) && Options.supportsTransparency())
{
if (ite->GrMask > 0)
tmp += "q\n";
@@ -5168,7 +5146,7 @@
tmpD += "Q\n";
}
groupStackPos.pop();
- if (Options.Version >= PDFOptions::PDFVersion_14 || Options.Version == PDFOptions::PDFVersion_X4)
+ if (Options.supportsTransparency())
tmp += Write_TransparencyGroup(ite->fillTransparency(), ite->fillBlendmode(), tmpD, ite);
else
tmp += tmpD;
@@ -5207,7 +5185,7 @@
tmpD += "Q\n";
}
groupStackPos.pop();
- if (Options.Version >= PDFOptions::PDFVersion_14 || Options.Version == PDFOptions::PDFVersion_X4)
+ if (Options.supportsTransparency())
tmp += Write_TransparencyGroup(ite->fillTransparency(), ite->fillBlendmode(), tmpD, ite);
else
tmp += Write_FormXObject(tmpD, ite);
@@ -5538,7 +5516,7 @@
arrowTrans.scale(ml[ml.size()-1].Width, ml[ml.size()-1].Width);
}
arrow.map(arrowTrans);
- if ((ite->lineTransparency() != 0) && ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)))
+ if ((ite->lineTransparency() != 0) && Options.supportsTransparency())
{
QByteArray ShName = ResNam+Pdf::toPdf(ResCount);
ResCount++;
@@ -6835,7 +6813,7 @@
}
}
QByteArray TRes;
- if (((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) && (transparencyFound))
+ if (Options.supportsTransparency() && transparencyFound)
{
PdfId shadeObjectT = writer.newObject();
writer.startObj(shadeObjectT);
@@ -7085,7 +7063,7 @@
writer.endObj(spotObject);
}
QByteArray tmp;
- if (((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) && (transparencyFound))
+ if (Options.supportsTransparency() && transparencyFound)
tmp += Pdf::toName(TRes) + " gs\n";
tmp += "/Pattern cs\n";
tmp += "/Pattern"+Pdf::toPdf(patObject)+" scn\n";
@@ -7168,7 +7146,7 @@
Gcolors.append(SetGradientColor(mp4.colorName, mp4.shade));
}
QByteArray TRes("");
- if (((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) && (transparencyFound))
+ if (Options.supportsTransparency() && transparencyFound)
{
PdfId shadeObjectT = writer.newObject();
writer.startObj(shadeObjectT);
@@ -7412,7 +7390,7 @@
writer.endObj(spotObject);
}
QByteArray tmp;
- if (((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) && (transparencyFound))
+ if (Options.supportsTransparency() && transparencyFound)
tmp += Pdf::toName(TRes) + " gs\n";
tmp += "/Pattern cs\n";
tmp += "/Pattern"+Pdf::toPdf(patObject)+" scn\n";
@@ -7476,7 +7454,7 @@
QLineF edge3 = QLineF(cP, QPointF(c->GrControl3.x(), -c->GrControl3.y()));
QLineF edge4 = QLineF(cP, QPointF(c->GrControl4.x(), -c->GrControl4.y()));
QByteArray TRes("");
- if (((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) && (transparencyFound))
+ if (Options.supportsTransparency() && transparencyFound)
{
PdfId shadeObjectT = writer.newObject();
writer.startObj(shadeObjectT);
@@ -7845,7 +7823,7 @@
writer.endObj(spotObject);
}
QByteArray tmp;
- if (((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) && (transparencyFound))
+ if (Options.supportsTransparency() && transparencyFound)
tmp += Pdf::toName(TRes) + " gs\n";
tmp += "/Pattern cs\n";
tmp += "/Pattern"+Pdf::toPdf(patObject)+" scn\n";
@@ -7894,7 +7872,7 @@
Gcolors.append(SetGradientColor(colorNames.at(cst), colorShades[cst]));
}
QByteArray TRes("");
- if (((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) && (transparencyFound))
+ if (Options.supportsTransparency() && transparencyFound)
{
PdfId shadeObjectT = writer.newObject();
writer.startObj(shadeObjectT);
@@ -8165,7 +8143,7 @@
writer.endObj(spotObject);
}
QByteArray tmp;
- if (((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) && (transparencyFound))
+ if (Options.supportsTransparency() && transparencyFound)
tmp += Pdf::toName(TRes) + " gs\n";
tmp += "/Pattern cs\n";
tmp += "/Pattern"+Pdf::toPdf(patObject)+" scn\n";
@@ -8328,7 +8306,7 @@
lastStop = actualStop;
}
QByteArray TRes;
- if (((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) && (transparencyFound))
+ if (Options.supportsTransparency() && transparencyFound)
{
QTransform mpM;
//#12058: cause problems with rotated objects
@@ -8618,7 +8596,7 @@
writer.endObj(spotObject);
}
QByteArray tmp;
- if (((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4)) && (transparencyFound))
+ if (Options.supportsTransparency() && transparencyFound)
tmp += Pdf::toName(TRes) + " gs\n";
if ((forArrow) || (!stroke))
{
@@ -8839,7 +8817,7 @@
cnx += " "+ putColor(ite->fillColor(), ite->fillShade(), false);
PutDoc("/DA " + EncString(cnx, annotationObj) + "\n");
int flg = ite->annotation().Flag();
- if (Options.Version == PDFOptions::PDFVersion_13)
+ if (Options.Version == PDFVersion::PDF_13)
flg = flg & 522247;
PutDoc("/Ff "+Pdf::toPdf(flg)+"\n");
PutDoc("/FT /Btn\n");
@@ -9093,7 +9071,7 @@
cnx += Pdf::toName(StdFonts["/ZapfDingbats"]);
else
{
- if (Options.Version < PDFOptions::PDFVersion_14)
+ if (Options.Version < PDFVersion::PDF_14)
cnx += Pdf::toName(StdFonts[ind2PDFabr[ite->annotation().Font()]]);
else
cnx += UsedFontsF[ite->itemText.defaultStyle().charStyle().font().replacementName()].name;
@@ -9106,7 +9084,7 @@
cnx += " "+ putColor(ite->fillColor(), ite->fillShade(), false);
PutDoc("/DA " + EncString(cnx, annotationObj) + "\n");
int flg = ite->annotation().Flag();
- if (Options.Version == PDFOptions::PDFVersion_13)
+ if (Options.Version == PDFVersion::PDF_13)
flg = flg & 522247;
PutDoc("/Ff "+Pdf::toPdf(flg)+"\n");
QByteArray xs[] = {"N", "I", "O", "P"};
@@ -9408,7 +9386,7 @@
cc += "BT\n";
if (ite->itemText.defaultStyle().charStyle().fillColor() != CommonStrings::None)
cc += putColor(ite->itemText.defaultStyle().charStyle().fillColor(), ite->itemText.defaultStyle().charStyle().fillShade(), true);
- if (Options.Version < PDFOptions::PDFVersion_14)
+ if (Options.Version < PDFVersion::PDF_14)
cc += "/"+StdFonts[ind2PDFabr[ite->annotation().Font()]];
else
cc += UsedFontsF[ite->itemText.defaultStyle().charStyle().font().replacementName()].name;
@@ -9431,7 +9409,7 @@
cc += "/Tx BMC\nBT\n";
if (ite->itemText.defaultStyle().charStyle().fillColor() != CommonStrings::None)
cc += putColor(ite->itemText.defaultStyle().charStyle().fillColor(), ite->itemText.defaultStyle().charStyle().fillShade(), true);
- if (Options.Version < PDFOptions::PDFVersion_14)
+ if (Options.Version < PDFVersion::PDF_14)
cc += "/"+StdFonts[ind2PDFabr[ite->annotation().Font()]];
else
cc += UsedFontsF[ite->itemText.defaultStyle().charStyle().font().replacementName()].name;
@@ -9478,7 +9456,7 @@
cc += createBorderAppearance(ite);
cc += "/Tx BMC\nq\nBT\n";
cc += "0 g\n";
- if (Options.Version < PDFOptions::PDFVersion_14)
+ if (Options.Version < PDFVersion::PDF_14)
cc += "/"+StdFonts[ind2PDFabr[ite->annotation().Font()]];
else
cc += UsedFontsF[ite->itemText.defaultStyle().charStyle().font().replacementName()].name;
@@ -10319,7 +10297,7 @@
QString tmpFile = QDir::toNativeSeparators(ScPaths::tempFileDir() + "sc.pdf");
QStringList opts;
opts.append("-dEPSCrop");
- if (Options.Version >= PDFOptions::PDFVersion_14)
+ if (Options.Version >= PDFVersion::PDF_14)
opts.append( "-dCompatibilityLevel=1.4" );
else
opts.append( "-dCompatibilityLevel=1.3" );
@@ -10556,7 +10534,7 @@
// PDF-X/4 requires that CMYK images using the same profile as PDF/X output intent
// do not be tagged with an ICC profile so they can go through color conversion
// pipeline without alteration
- if (Options.Version == PDFOptions::PDFVersion_X4)
+ if (Options.Version == PDFVersion::PDF_X4)
avoidPDFXOutputIntentProf = (profInUse == Options.PrintProf);
if (!ICCProfiles.contains(profInUse) && !avoidPDFXOutputIntentProf)
{
@@ -10654,7 +10632,7 @@
else
{
bool gotAlpha = false;
- bool pdfVer14 = (Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4);
+ bool pdfVer14 = Options.supportsTransparency();
gotAlpha = img2.getAlpha(fn, c->pixm.imgInfo.actualPageNumber, im2, true, pdfVer14, afl, img.width(), img.height());
if (!gotAlpha)
{
@@ -10692,20 +10670,20 @@
compAlphaAvail = true;
}
}
- if ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4))
- {
- PutDoc("/Width "+Pdf::toPdf(origWidth)+"\n");
- PutDoc("/Height "+Pdf::toPdf(origHeight)+"\n");
+ if (Options.supportsTransparency())
+ {
+ PutDoc("/Width " + Pdf::toPdf(origWidth) + "\n");
+ PutDoc("/Height " + Pdf::toPdf(origHeight) + "\n");
PutDoc("/ColorSpace /DeviceGray\n");
PutDoc("/BitsPerComponent 8\n");
- PutDoc("/Length "+Pdf::toPdf(im2.size())+"\n");
+ PutDoc("/Length " + Pdf::toPdf(im2.size()) + "\n");
}
else
{
- PutDoc("/Width "+Pdf::toPdf(origWidth)+"\n");
- PutDoc("/Height "+Pdf::toPdf(origHeight)+"\n");
+ PutDoc("/Width " + Pdf::toPdf(origWidth) + "\n");
+ PutDoc("/Height " + Pdf::toPdf(origHeight) + "\n");
PutDoc("/ImageMask true\n/BitsPerComponent 1\n");
- PutDoc("/Length "+Pdf::toPdf(im2.size())+"\n");
+ PutDoc("/Length " + Pdf::toPdf(im2.size()) + "\n");
}
if ((Options.CompressMethod != PDFOptions::Compression_None) && compAlphaAvail)
PutDoc("/Filter /FlateDecode\n");
@@ -10846,10 +10824,10 @@
// PutDoc("/Decode [1 0 1 0 1 0 1 0]\n");
if (alphaM)
{
- if ((Options.Version >= PDFOptions::PDFVersion_14) || (Options.Version == PDFOptions::PDFVersion_X4))
- PutDoc("/SMask "+Pdf::toPdf(maskObj)+" 0 R\n");
+ if (Options.supportsTransparency())
+ PutDoc("/SMask " + Pdf::toPdf(maskObj) + " 0 R\n");
else
- PutDoc("/Mask "+Pdf::toPdf(maskObj)+" 0 R\n");
+ PutDoc("/Mask " + Pdf::toPdf(maskObj) + " 0 R\n");
}
PutDoc(">>\nstream\n");
if (cm == PDFOptions::Compression_JPEG) // Fixme: should not do this with monochrome images?
@@ -11027,7 +11005,7 @@
dict.ColorSpace.append(asColorSpace(spotMapReg.values()));
dict.Properties.clear();
- if (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4))&& (Options.useLayers))
+ if (Options.exportsLayers())
{
ScLayer ll;
ll.isPrintable = false;
@@ -11266,7 +11244,7 @@
void PDFLibCore::PDF_End_Layers()
{
- if (((Options.Version == PDFOptions::PDFVersion_15) || (Options.Version == PDFOptions::PDFVersion_X4)) && (Options.useLayers))
+ if (Options.exportsLayers())
{
QList<QByteArray> lay;
writer.startObj(writer.OCPropertiesObj);
@@ -11285,15 +11263,15 @@
}
for (int layc = 0; layc < lay.count(); ++layc)
{
- if (Options.Version != PDFOptions::PDFVersion_X4)
+ if (Options.Version != PDFVersion::PDF_X4)
PutDoc(lay[layc]);
}
PutDoc("]\n");
- if (Options.Version == PDFOptions::PDFVersion_X4)
+ if (Options.Version == PDFVersion::PDF_X4)
{
PutDoc("/BaseState /ON\n");
QString occdName = "Default";
- PutDoc("/Name "+Pdf::toLiteralString(occdName)+"\n");
+ PutDoc("/Name " + Pdf::toLiteralString(occdName) + "\n");
}
PutDoc("/OFF [ ");
QHash<QString, PdfOCGInfo>::Iterator itoc;
@@ -11303,7 +11281,7 @@
PutDoc(Pdf::toObjRef(itoc.value().ObjNum) + " ");
}
PutDoc("]\n");
- if (Options.Version != PDFOptions::PDFVersion_X4)
+ if (Options.Version != PDFVersion::PDF_X4)
{
PutDoc("/AS [<</Event /Print /OCGs [ ");
for (itoc = OCGEntries.begin(); itoc != OCGEntries.end(); ++itoc)
@@ -11353,12 +11331,12 @@
PutDoc("\nendstream");
writer.endObj(profileObj);
-// if ((Options.Version == PDFOptions::PDFVersion_X4) && (Options.useLayers))
+// if ((Options.Version == PDFVersion::PDF_X4) && (Options.useLayers))
// {
// XRef[9] = bytesWritten();
// PutDoc("10 0 obj\n");
// }
-// if ((Options.Version == PDFOptions::PDFVersion_X3) || (Options.Version == PDFOptions::PDFVersion_X1a) || ((Options.Version == PDFOptions::PDFVersion_X4) && !(Options.useLayers)))
+// if ((Options.Version == PDFVersion::PDF_X3) || (Options.Version == PDFVersion::PDF_X1a) || ((Options.Version == PDFVersion::PDF_X4) && !(Options.useLayers)))
// {
// XRef[8] = bytesWritten();
// PutDoc("9 0 obj\n");
@@ -11378,7 +11356,7 @@
void PDFLibCore::PDF_End_Metadata()
{
- if (Options.Version == PDFOptions::PDFVersion_X4)
+ if (Options.Version == PDFVersion::PDF_X4)
{
// if (Options.useLayers) // OCProperties dictionary was included as '9 0 obj', OutputIntents was included as '10 0 obj'
// {
@@ -11480,14 +11458,14 @@
QDomElement descPDFXID = desc.cloneNode().toElement();
rdf.appendChild(descPDFXID);
QString pdfxidNS = "http://www.npes.org/pdfx/ns/id/";
- if (Options.Version == PDFOptions::PDFVersion_X1a)
+ if (Options.Version == PDFVersion::PDF_X1a)
{
descPDFXID.setAttributeNS(pdfxidNS, "pdfx:GTS_PDFXConformance", "PDF/X-1a:2001");
descPDFXID.setAttribute("pdfx:GTS_PDFXVersion", "PDF/X-1:2001");
}
- else if (Options.Version == PDFOptions::PDFVersion_X3)
+ else if (Options.Version == PDFVersion::PDF_X3)
descPDFXID.setAttributeNS(pdfxidNS, "pdfxid:GTS_PDFXVersion", "PDF/X-3");
- else if (Options.Version == PDFOptions::PDFVersion_X4)
+ else if (Options.Version == PDFVersion::PDF_X4)
descPDFXID.setAttributeNS(pdfxidNS, "pdfxid:GTS_PDFXVersion", "PDF/X-4");
}
Modified: trunk/Scribus/scribus/pdflib_core.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/pdflib_core.h
==============================================================================
--- trunk/Scribus/scribus/pdflib_core.h (original)
+++ trunk/Scribus/scribus/pdflib_core.h Tue Mar 31 11:39:59 2020
@@ -91,7 +91,7 @@
};
bool PDF_IsPDFX();
- bool PDF_IsPDFX(PDFOptions::PDFVersion ver);
+ bool PDF_IsPDFX(const PDFVersion& ver);
bool PDF_Begin_Doc(const QString& fn, SCFonts &AllFonts, const QMap<QString, QMap<uint, FPointArray> >& DocFonts, BookMView* vi);
void PDF_Begin_Catalog();
Modified: trunk/Scribus/scribus/pdfoptions.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/pdfoptions.cpp
==============================================================================
--- trunk/Scribus/scribus/pdfoptions.cpp (original)
+++ trunk/Scribus/scribus/pdfoptions.cpp Tue Mar 31 11:39:59 2020
@@ -17,3 +17,25 @@
// TODO: implement this method
return Verify_NoError;
}
+
+bool PDFOptions::exportsLayers() const
+{
+ if (Version.supportsOCGs())
+ return useLayers;
+ return false;
+}
+
+bool PDFOptions::supportsEmbeddedOpenTypeFonts() const
+{
+ return Version.supportsEmbeddedOpenTypeFonts();
+}
+
+bool PDFOptions::supportsOCGs() const
+{
+ return Version.supportsOCGs();
+}
+
+bool PDFOptions::supportsTransparency() const
+{
+ return Version.supportsTransparency();
+}
Modified: trunk/Scribus/scribus/pdfoptions.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/pdfoptions.h
==============================================================================
--- trunk/Scribus/scribus/pdfoptions.h (original)
+++ trunk/Scribus/scribus/pdfoptions.h Tue Mar 31 11:39:59 2020
@@ -14,9 +14,11 @@
* @brief Defines class PDFOptions, used for loading/saving/passing around PDF options
*/
-#include "qstring.h"
-#include "qmap.h"
-#include "QList"
+#include <QList>
+#include <QMap>
+#include <QString>
+
+#include "pdfversion.h"
#include "scribusapi.h"
#include "scribusstructs.h"
@@ -44,18 +46,6 @@
Verify_OptionConflict,
Verify_OptionOutOfRange,
Verify_OtherError
- };
-
- enum PDFVersion
- {
- PDFVersion_13 = 13,
- PDFVersion_14 = 14,
- PDFVersion_15 = 15,
- PDFVersion_X1a = 11,
- PDFVersion_X3 = 12,
- PDFVersion_X4 = 10,
- PDFVersion_Min = 10,
- PDFVersion_Max = 15,
};
enum PDFPageLayout
@@ -103,6 +93,11 @@
*/
PDFOptions::VerifyResults verify(QString* problemDescription);
PDFOptions::VerifyResults verify();
+
+ bool exportsLayers() const;
+ bool supportsEmbeddedOpenTypeFonts() const;
+ bool supportsOCGs() const;
+ bool supportsTransparency() const;
bool firstUse;
bool Thumbnails;
Modified: trunk/Scribus/scribus/pdfoptionsio.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/pdfoptionsio.cpp
==============================================================================
--- trunk/Scribus/scribus/pdfoptionsio.cpp (original)
+++ trunk/Scribus/scribus/pdfoptionsio.cpp Tue Mar 31 11:39:59 2020
@@ -111,13 +111,13 @@
QString pdfVersString;
switch (m_opts->Version)
{
- case PDFOptions::PDFVersion_X1a:
+ case PDFVersion::PDF_X1a:
pdfVersString = "X1a";
break;
- case PDFOptions::PDFVersion_X3:
+ case PDFVersion::PDF_X3:
pdfVersString = "X3";
break;
- case PDFOptions::PDFVersion_X4:
+ case PDFVersion::PDF_X4:
pdfVersString = "X4";
break;
default:
@@ -447,32 +447,37 @@
return false;
if (pdfVersString == "X1a")
{
- m_opts->Version = PDFOptions::PDFVersion_X1a;
+ m_opts->Version = PDFVersion::PDF_X1a;
return true;
}
if (pdfVersString == "X3")
{
- m_opts->Version = PDFOptions::PDFVersion_X3;
+ m_opts->Version = PDFVersion::PDF_X3;
return true;
}
if (pdfVersString == "X4")
{
- m_opts->Version = PDFOptions::PDFVersion_X4;
+ m_opts->Version = PDFVersion::PDF_X4;
return true;
}
if (pdfVersString == "13")
{
- m_opts->Version = PDFOptions::PDFVersion_13;
+ m_opts->Version = PDFVersion::PDF_13;
return true;
}
if (pdfVersString == "14")
{
- m_opts->Version = PDFOptions::PDFVersion_14;
+ m_opts->Version = PDFVersion::PDF_14;
return true;
}
if (pdfVersString == "15")
{
- m_opts->Version = PDFOptions::PDFVersion_15;
+ m_opts->Version = PDFVersion::PDF_15;
+ return true;
+ }
+ if (pdfVersString == "16")
+ {
+ m_opts->Version = PDFVersion::PDF_16;
return true;
}
m_error = QObject::tr("Unable to read settings XML: %1").arg(QObject::tr("<pdfVersion> invalid", "Load PDF settings"));
Modified: trunk/Scribus/scribus/pdfwriter.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/pdfwriter.cpp
==============================================================================
--- trunk/Scribus/scribus/pdfwriter.cpp (original)
+++ trunk/Scribus/scribus/pdfwriter.cpp Tue Mar 31 11:39:59 2020
@@ -742,21 +742,24 @@
// }
- void Writer::writeHeader(PDFOptions::PDFVersion Version)
+ void Writer::writeHeader(const PDFVersion& Version)
{
switch (Version)
{
- case PDFOptions::PDFVersion_X1a:
- case PDFOptions::PDFVersion_X3:
- case PDFOptions::PDFVersion_13:
+ case PDFVersion::PDF_X1a:
+ case PDFVersion::PDF_X3:
+ case PDFVersion::PDF_13:
write("%PDF-1.3\n");
break;
- case PDFOptions::PDFVersion_14:
+ case PDFVersion::PDF_14:
write("%PDF-1.4\n");
break;
- case PDFOptions::PDFVersion_X4:
- case PDFOptions::PDFVersion_15:
+ case PDFVersion::PDF_X4:
+ case PDFVersion::PDF_15:
write("%PDF-1.5\n");
+ break;
+ case PDFVersion::PDF_16:
+ write("%PDF-1.6\n");
break;
}
write("%\xc7\xec\x8f\xa2\n");
Modified: trunk/Scribus/scribus/pdfwriter.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/pdfwriter.h
==============================================================================
--- trunk/Scribus/scribus/pdfwriter.h (original)
+++ trunk/Scribus/scribus/pdfwriter.h Tue Mar 31 11:39:59 2020
@@ -19,6 +19,7 @@
#include "pdfoptions.h"
#include "pdfstructs.h"
+#include "pdfversion.h"
#include "scstreamfilter.h"
namespace Pdf
@@ -177,7 +178,7 @@
public:
// writing
- void writeHeader(PDFOptions::PDFVersion vers);
+ void writeHeader(const PDFVersion& vers);
void writeXrefAndTrailer();
void write(const QByteArray& bytes);
void write(const Pdf::ResourceDictionary& dict);
Modified: trunk/Scribus/scribus/plugins/fileloader/scribus12format/scribus12format.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/plugins/fileloader/scribus12format/scribus12format.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/fileloader/scribus12format/scribus12format.cpp (original)
+++ trunk/Scribus/scribus/plugins/fileloader/scribus12format/scribus12format.cpp Tue Mar 31 11:39:59 2020
@@ -1179,7 +1179,7 @@
m_Doc->pdfOptions().RotateDeg = 0;
m_Doc->pdfOptions().PresentMode = static_cast<bool>(pg.attribute("PresentMode").toInt());
m_Doc->pdfOptions().PicRes = pg.attribute("PicRes").toInt();
- m_Doc->pdfOptions().Version = (PDFOptions::PDFVersion)pg.attribute("Version").toInt();
+ m_Doc->pdfOptions().Version = (PDFVersion::Version) pg.attribute("Version").toInt();
m_Doc->pdfOptions().Resolution = pg.attribute("Resolution").toInt();
m_Doc->pdfOptions().Binding = pg.attribute("Binding").toInt();
m_Doc->pdfOptions().fileName = "";
Modified: trunk/Scribus/scribus/plugins/fileloader/scribus134format/scribus134format.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/plugins/fileloader/scribus134format/scribus134format.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/fileloader/scribus134format/scribus134format.cpp (original)
+++ trunk/Scribus/scribus/plugins/fileloader/scribus134format/scribus134format.cpp Tue Mar 31 11:39:59 2020
@@ -1596,7 +1596,7 @@
doc->pdfOptions().PresentMode = attrs.valueAsBool("PresentMode");
doc->pdfOptions().PicRes = attrs.valueAsInt("PicRes");
// Fixme: check input pdf version
- doc->pdfOptions().Version = (PDFOptions::PDFVersion) attrs.valueAsInt("Version");
+ doc->pdfOptions().Version = (PDFVersion::Version) attrs.valueAsInt("Version");
doc->pdfOptions().Resolution = attrs.valueAsInt("Resolution");
doc->pdfOptions().Binding = attrs.valueAsInt("Binding");
doc->pdfOptions().fileName = "";
Modified: trunk/Scribus/scribus/plugins/fileloader/scribus13format/scribus13format.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/plugins/fileloader/scribus13format/scribus13format.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/fileloader/scribus13format/scribus13format.cpp (original)
+++ trunk/Scribus/scribus/plugins/fileloader/scribus13format/scribus13format.cpp Tue Mar 31 11:39:59 2020
@@ -636,7 +636,7 @@
m_Doc->pdfOptions().PresentMode = static_cast<bool>(pg.attribute("PresentMode").toInt());
m_Doc->pdfOptions().PicRes = pg.attribute("PicRes").toInt();
// Fixme: check input pdf version
- m_Doc->pdfOptions().Version = (PDFOptions::PDFVersion)pg.attribute("Version").toInt();
+ m_Doc->pdfOptions().Version = (PDFVersion::Version) pg.attribute("Version").toInt();
m_Doc->pdfOptions().Resolution = pg.attribute("Resolution").toInt();
m_Doc->pdfOptions().Binding = pg.attribute("Binding").toInt();
m_Doc->pdfOptions().fileName = "";
Modified: trunk/Scribus/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/fileloader/scribus150format/scribus150format.cpp (original)
+++ trunk/Scribus/scribus/plugins/fileloader/scribus150format/scribus150format.cpp Tue Mar 31 11:39:59 2020
@@ -3271,7 +3271,7 @@
doc->pdfOptions().PresentMode = attrs.valueAsBool("PresentMode");
doc->pdfOptions().PicRes = attrs.valueAsInt("PicRes");
// Fixme: check input pdf version
- doc->pdfOptions().Version = (PDFOptions::PDFVersion) attrs.valueAsInt("Version");
+ doc->pdfOptions().Version = (PDFVersion::Version) attrs.valueAsInt("Version");
doc->pdfOptions().Resolution = attrs.valueAsInt("Resolution");
doc->pdfOptions().Binding = attrs.valueAsInt("Binding");
doc->pdfOptions().fileName = "";
Modified: trunk/Scribus/scribus/plugins/import/pdf/importpdf.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/plugins/import/pdf/importpdf.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/import/pdf/importpdf.cpp (original)
+++ trunk/Scribus/scribus/plugins/import/pdf/importpdf.cpp Tue Mar 31 11:39:59 2020
@@ -821,7 +821,7 @@
}
delete jsNameTreeP;
}
- m_Doc->pdfOptions().Version = (PDFOptions::PDFVersion)qMin(15, qMax(13, pdfDoc->getPDFMajorVersion() * 10 + pdfDoc->getPDFMinorVersion()));
+ m_Doc->pdfOptions().Version = (PDFVersion::Version) qMin(16, qMax(13, pdfDoc->getPDFMajorVersion() * 10 + pdfDoc->getPDFMinorVersion()));
ViewerPreferences *viewPrefs = pdfDoc->getCatalog()->getViewerPreferences();
if (viewPrefs)
{
Modified: trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp Tue Mar 31 11:39:59 2020
@@ -1269,8 +1269,8 @@
pdfOptions.Bookmarks = false;
// get PDF version
- self->version = minmaxi(self->version, PDFOptions::PDFVersion_Min, PDFOptions::PDFVersion_Max);
- pdfOptions.Version = (PDFOptions::PDFVersion) self->version;
+ self->version = minmaxi(self->version, PDFVersion::PDFVersion_Min, PDFVersion::PDFVersion_Max);
+ pdfOptions.Version = (PDFVersion::Version) self->version;
// apply fonts attribute
pdfOptions.EmbedList.clear();
@@ -1292,9 +1292,9 @@
}
// apply font embedding mode
pdfOptions.FontEmbedding = (PDFOptions::PDFFontEmbedding) PyLong_AsLong(self->fontEmbedding);
- if (pdfOptions.Version == PDFOptions::PDFVersion_X1a ||
- pdfOptions.Version == PDFOptions::PDFVersion_X3 ||
- pdfOptions.Version == PDFOptions::PDFVersion_X4)
+ if (pdfOptions.Version == PDFVersion::PDF_X1a ||
+ pdfOptions.Version == PDFVersion::PDF_X3 ||
+ pdfOptions.Version == PDFVersion::PDF_X4)
{
pdfOptions.FontEmbedding = PDFOptions::EmbedFonts;
}
@@ -1420,7 +1420,7 @@
if (self->encrypt)
{
int Perm = -64;
- if (pdfOptions.Version == PDFOptions::PDFVersion_14)
+ if (pdfOptions.Version == PDFVersion::PDF_14)
Perm &= ~0x00240000;
if (self->allowPrinting)
Perm += 4;
@@ -1455,9 +1455,9 @@
pdfOptions.SolidProf = PyUnicode_asQString(self->solidpr);
pdfOptions.ImageProf = PyUnicode_asQString(self->imagepr);
pdfOptions.PrintProf = PyUnicode_asQString(self->printprofc);
- if (pdfOptions.Version == PDFOptions::PDFVersion_X1a ||
- pdfOptions.Version == PDFOptions::PDFVersion_X3 ||
- pdfOptions.Version == PDFOptions::PDFVersion_X4)
+ if (pdfOptions.Version == PDFVersion::PDF_X1a ||
+ pdfOptions.Version == PDFVersion::PDF_X3 ||
+ pdfOptions.Version == PDFVersion::PDF_X4)
{
ScColorProfile profile;
profile = ScCore->defaultEngine.openProfileFromFile(ScCore->PrinterProfiles[pdfOptions.PrintProf]);
Modified: trunk/Scribus/scribus/plugins/scriptplugin_py2x/objpdffile.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/plugins/scriptplugin_py2x/objpdffile.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin_py2x/objpdffile.cpp (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin_py2x/objpdffile.cpp Tue Mar 31 11:39:59 2020
@@ -1269,13 +1269,13 @@
pdfOptions.Bookmarks = false;
// get PDF version
- self->version = minmaxi(self->version, PDFOptions::PDFVersion_Min, PDFOptions::PDFVersion_Max);
- pdfOptions.Version = (PDFOptions::PDFVersion) self->version;
+ self->version = minmaxi(self->version, PDFVersion::PDFVersion_Min, PDFVersion::PDFVersion_Max);
+ pdfOptions.Version = (PDFVersion::Version) self->version;
// apply fonts attribute
pdfOptions.EmbedList.clear();
int n = PyList_Size(self->fonts);
- for ( int i=0; i<n; ++i)
+ for (int i = 0; i < n; ++i)
{
QString tmpFon;
tmpFon = QString(PyString_AsString(PyList_GetItem(self->fonts, i)));
@@ -1292,9 +1292,9 @@
}
// apply font embedding mode
pdfOptions.FontEmbedding = (PDFOptions::PDFFontEmbedding) PyInt_AsLong(self->fontEmbedding);
- if (pdfOptions.Version == PDFOptions::PDFVersion_X1a ||
- pdfOptions.Version == PDFOptions::PDFVersion_X3 ||
- pdfOptions.Version == PDFOptions::PDFVersion_X4)
+ if (pdfOptions.Version == PDFVersion::PDF_X1a ||
+ pdfOptions.Version == PDFVersion::PDF_X3 ||
+ pdfOptions.Version == PDFVersion::PDF_X4)
{
pdfOptions.FontEmbedding = PDFOptions::EmbedFonts;
}
@@ -1421,7 +1421,7 @@
if (self->encrypt)
{
int Perm = -64;
- if (pdfOptions.Version == PDFOptions::PDFVersion_14)
+ if (pdfOptions.Version == PDFVersion::PDF_14)
Perm &= ~0x00240000;
if (self->allowPrinting)
Perm += 4;
@@ -1456,9 +1456,9 @@
pdfOptions.SolidProf = PyString_AsString(self->solidpr);
pdfOptions.ImageProf = PyString_AsString(self->imagepr);
pdfOptions.PrintProf = PyString_AsString(self->printprofc);
- if (pdfOptions.Version == PDFOptions::PDFVersion_X1a ||
- pdfOptions.Version == PDFOptions::PDFVersion_X3 ||
- pdfOptions.Version == PDFOptions::PDFVersion_X4)
+ if (pdfOptions.Version == PDFVersion::PDF_X1a ||
+ pdfOptions.Version == PDFVersion::PDF_X3 ||
+ pdfOptions.Version == PDFVersion::PDF_X4)
{
ScColorProfile profile;
profile = ScCore->defaultEngine.openProfileFromFile(ScCore->PrinterProfiles[pdfOptions.PrintProf]);
Modified: trunk/Scribus/scribus/prefsmanager.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/prefsmanager.cpp
==============================================================================
--- trunk/Scribus/scribus/prefsmanager.cpp (original)
+++ trunk/Scribus/scribus/prefsmanager.cpp Tue Mar 31 11:39:59 2020
@@ -437,7 +437,7 @@
appPrefs.pdfPrefs.embedPDF = false;
appPrefs.pdfPrefs.Bookmarks = false;
appPrefs.pdfPrefs.PicRes = 300;
- appPrefs.pdfPrefs.Version = PDFOptions::PDFVersion_14;
+ appPrefs.pdfPrefs.Version = PDFVersion::PDF_14;
appPrefs.pdfPrefs.Resolution = 300;
appPrefs.pdfPrefs.Binding = 0;
appPrefs.pdfPrefs.FontEmbedding = PDFOptions::EmbedFonts;
@@ -2556,7 +2556,7 @@
appPrefs.pdfPrefs.RotateDeg = dc.attribute("RotateDeg", "0").toInt();
appPrefs.pdfPrefs.PresentMode = static_cast<bool>(dc.attribute("PresentMode").toInt());
appPrefs.pdfPrefs.PicRes = dc.attribute("PicRes").toInt();
- appPrefs.pdfPrefs.Version = (PDFOptions::PDFVersion) dc.attribute("Version").toInt();
+ appPrefs.pdfPrefs.Version = (PDFVersion::Version) dc.attribute("Version").toInt();
appPrefs.pdfPrefs.Resolution = dc.attribute("Resolution").toInt();
appPrefs.pdfPrefs.Binding = dc.attribute("Binding").toInt();
appPrefs.pdfPrefs.fileName = "";
@@ -2738,6 +2738,9 @@
checkerSettings.checkTransparency = false;
cp.insert(CommonStrings::PDF_1_4 , checkerSettings);
cp.insert(CommonStrings::PDF_1_5 , checkerSettings);
+ checkerSettings.checkFontIsOpenType = false;
+ cp.insert(CommonStrings::PDF_1_6 , checkerSettings);
+ checkerSettings.checkFontIsOpenType = true;
checkerSettings.checkTransparency = true;
checkerSettings.checkAnnotations = true;
checkerSettings.minResolution = 144.0;
Modified: trunk/Scribus/scribus/scfonts.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/scfonts.cpp
==============================================================================
--- trunk/Scribus/scribus/scfonts.cpp (original)
+++ trunk/Scribus/scribus/scfonts.cpp Tue Mar 31 11:39:59 2020
@@ -597,10 +597,7 @@
case ScFace::TYPE42:
t = ScFace(new ScFace_ttf(fam, sty, "", ts, qpsName, filename, faceIndex, features));
getSFontType(face, t.m_m->typeCode);
- if (t.type() == ScFace::OTF)
- t.subset(true);
- else
- t.subset(Subset);
+ t.subset(Subset);
break;
default:
/* catching any types not handled above to silence compiler */
@@ -840,34 +837,19 @@
case ScFace::SFNT:
t = ScFace(new ScFace_ttf(fam, sty, "", ts, qpsName, filename, faceIndex, features));
getSFontType(face, t.m_m->typeCode);
- if (t.type() == ScFace::OTF)
- {
- t.subset(true);
- }
- else
- t.subset(Subset);
+ t.subset(Subset);
break;
case ScFace::TTCF:
t = ScFace(new ScFace_ttf(fam, sty, "", ts, qpsName, filename, faceIndex, features));
t.m_m->formatCode = ScFace::TTCF;
t.m_m->typeCode = ScFace::TTF;
getSFontType(face, t.m_m->typeCode);
- if (t.type() == ScFace::OTF)
- {
- t.subset(true);
- }
- else
- t.subset(Subset);
+ t.subset(Subset);
break;
case ScFace::TYPE42:
t = ScFace(new ScFace_ttf(fam, sty, "", ts, qpsName, filename, faceIndex, features));
getSFontType(face, t.m_m->typeCode);
- if (t.type() == ScFace::OTF)
- {
- t.subset(true);
- }
- else
- t.subset(Subset);
+ t.subset(Subset);
break;
default:
/* catching any types not handled above to silence compiler */
Modified: trunk/Scribus/scribus/scribusdoc.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/scribusdoc.cpp
==============================================================================
--- trunk/Scribus/scribus/scribusdoc.cpp (original)
+++ trunk/Scribus/scribus/scribusdoc.cpp Tue Mar 31 11:39:59 2020
@@ -442,7 +442,7 @@
Layers.addLayer( tr("Background") );
// FIXME: Check PDF version input
//TODO: Check if this is needed now we ue appPrefsData --> docPrefsData
- pdfOptions().Version = (PDFOptions::PDFVersion)m_appPrefsData.pdfPrefs.Version;
+ pdfOptions().Version = m_appPrefsData.pdfPrefs.Version;
pdfOptions().firstUse = true;
docPatterns.clear();
Modified: trunk/Scribus/scribus/ui/checkDocument.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/ui/checkDocument.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/checkDocument.cpp (original)
+++ trunk/Scribus/scribus/ui/checkDocument.cpp Tue Mar 31 11:39:59 2020
@@ -167,18 +167,20 @@
if (mode == CheckDocument::checkPDF)
{
- PDFOptions::PDFVersion pdfVersion = m_Doc->pdfOptions().Version;
- if (pdfVersion == PDFOptions::PDFVersion_13)
+ PDFVersion pdfVersion = m_Doc->pdfOptions().Version;
+ if (pdfVersion == PDFVersion::PDF_13)
bestProfile = CommonStrings::PDF_1_3;
- else if (pdfVersion == PDFOptions::PDFVersion_14)
+ else if (pdfVersion == PDFVersion::PDF_14)
bestProfile = CommonStrings::PDF_1_4;
- else if (pdfVersion == PDFOptions::PDFVersion_15)
+ else if (pdfVersion == PDFVersion::PDF_15)
bestProfile = CommonStrings::PDF_1_5;
- else if (pdfVersion == PDFOptions::PDFVersion_X1a)
+ else if (pdfVersion == PDFVersion::PDF_16)
+ bestProfile = CommonStrings::PDF_1_6;
+ else if (pdfVersion == PDFVersion::PDF_X1a)
bestProfile = CommonStrings::PDF_X1a;
- else if (pdfVersion == PDFOptions::PDFVersion_X3)
+ else if (pdfVersion == PDFVersion::PDF_X3)
bestProfile = CommonStrings::PDF_X3;
- else if (pdfVersion == PDFOptions::PDFVersion_X4)
+ else if (pdfVersion == PDFVersion::PDF_X4)
bestProfile = CommonStrings::PDF_X4;
}
else if (mode == CheckDocument::checkEPS)
Modified: trunk/Scribus/scribus/ui/pdfexportdialog.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/ui/pdfexportdialog.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/pdfexportdialog.cpp (original)
+++ trunk/Scribus/scribus/ui/pdfexportdialog.cpp Tue Mar 31 11:39:59 2020
@@ -126,7 +126,7 @@
cancelButton = new QPushButton( CommonStrings::tr_Cancel, this );
Layout7->addWidget( cancelButton );
PDFExportLayout->addLayout( Layout7 );
- if ((m_opts.Version == PDFOptions::PDFVersion_X3) && (Options->InfoString->text().isEmpty()))
+ if ((m_opts.Version == PDFVersion::PDF_X3) && (Options->InfoString->text().isEmpty()))
okButton->setEnabled(false);
resize(sizeHint());
// setMaximumSize( sizeHint() );
@@ -336,7 +336,7 @@
if (Options->Encry->isChecked())
{
int Perm = -64;
- if (Options->PDFVersionCombo->currentIndex() == 1)
+ if (Options->PDFVersionCombo->version() == PDFVersion::PDF_14)
Perm &= ~0x00240000;
if (Options->PrintSec->isChecked())
Perm += 4;
@@ -350,18 +350,7 @@
m_opts.PassOwner = Options->PassOwner->text();
m_opts.PassUser = Options->PassUser->text();
}
- if (Options->PDFVersionCombo->currentIndex() == 0)
- m_opts.Version = PDFOptions::PDFVersion_13;
- if (Options->PDFVersionCombo->currentIndex() == 1)
- m_opts.Version = PDFOptions::PDFVersion_14;
- if (Options->PDFVersionCombo->currentIndex() == 2)
- m_opts.Version = PDFOptions::PDFVersion_15;
- if (Options->PDFVersionCombo->currentIndex() == 3)
- m_opts.Version = PDFOptions::PDFVersion_X1a;
- if (Options->PDFVersionCombo->currentIndex() == 4)
- m_opts.Version = PDFOptions::PDFVersion_X3;
- if (Options->PDFVersionCombo->currentIndex() == 5)
- m_opts.Version = PDFOptions::PDFVersion_X4;
+ m_opts.Version = Options->PDFVersionCombo->version();
if (Options->OutCombo->currentIndex() == 0)
{
m_opts.UseRGB = true;
@@ -386,7 +375,7 @@
{
m_opts.UseProfiles = Options->EmbedProfs->isChecked();
m_opts.UseProfiles2 = Options->EmbedProfs2->isChecked();
- if (m_opts.Version != PDFOptions::PDFVersion_X1a)
+ if (m_opts.Version != PDFVersion::PDF_X1a)
{
m_opts.Intent = Options->IntendS->currentIndex();
m_opts.Intent2 = Options->IntendI->currentIndex();
@@ -395,7 +384,7 @@
m_opts.ImageProf = Options->ImageP->currentText();
}
m_opts.PrintProf = Options->PrintProfC->currentText();
- if ((m_opts.Version == PDFOptions::PDFVersion_X3) || (m_opts.Version == PDFOptions::PDFVersion_X1a) || (m_opts.Version == PDFOptions::PDFVersion_X4))
+ if ((m_opts.Version == PDFVersion::PDF_X3) || (m_opts.Version == PDFVersion::PDF_X1a) || (m_opts.Version == PDFVersion::PDF_X4))
{
ScColorProfile hIn = m_doc->colorEngine.openProfileFromFile( m_printerProfiles[m_opts.PrintProf] );
m_cmsDescriptor = hIn.productDescription();
Modified: trunk/Scribus/scribus/ui/pdfversioncombo.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/ui/pdfversioncombo.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/pdfversioncombo.cpp (original)
+++ trunk/Scribus/scribus/ui/pdfversioncombo.cpp Tue Mar 31 11:39:59 2020
@@ -26,40 +26,44 @@
}
}
-PDFOptions::PDFVersion PdfVersionCombo::version() const
+PDFVersion PdfVersionCombo::version() const
{
int curIndex = currentIndex();
if (curIndex == PdfVersionModel::ItemPDF_13)
- return PDFOptions::PDFVersion_13;
+ return PDFVersion::PDF_13;
if (curIndex == PdfVersionModel::ItemPDF_14)
- return PDFOptions::PDFVersion_14;
+ return PDFVersion::PDF_14;
if (curIndex == PdfVersionModel::ItemPDF_15)
- return PDFOptions::PDFVersion_15;
+ return PDFVersion::PDF_15;
+ if (curIndex == PdfVersionModel::ItemPDF_16)
+ return PDFVersion::PDF_16;
if (curIndex == PdfVersionModel::ItemPDFX_1a)
- return PDFOptions::PDFVersion_X1a;
+ return PDFVersion::PDF_X1a;
if (curIndex == PdfVersionModel::ItemPDFX_3)
- return PDFOptions::PDFVersion_X3;
+ return PDFVersion::PDF_X3;
if (curIndex == PdfVersionModel::ItemPDFX_4)
- return PDFOptions::PDFVersion_X4;
- return PDFOptions::PDFVersion_14;
+ return PDFVersion::PDF_X4;
+ return PDFVersion::PDF_14;
}
-bool PdfVersionCombo::versionIs(PDFOptions::PDFVersion version) const
+bool PdfVersionCombo::versionIs(const PDFVersion& version) const
{
int curIndex = currentIndex();
- if (version == PDFOptions::PDFVersion_13)
+ if (version == PDFVersion::PDF_13)
return (curIndex == PdfVersionModel::ItemPDF_13);
- if (version == PDFOptions::PDFVersion_14)
+ if (version == PDFVersion::PDF_14)
return (curIndex == PdfVersionModel::ItemPDF_14);
- if (version == PDFOptions::PDFVersion_15)
+ if (version == PDFVersion::PDF_15)
return (curIndex == PdfVersionModel::ItemPDF_15);
- if (version == PDFOptions::PDFVersion_X1a)
+ if (version == PDFVersion::PDF_16)
+ return (curIndex == PdfVersionModel::ItemPDF_16);
+ if (version == PDFVersion::PDF_X1a)
return (curIndex == PdfVersionModel::ItemPDFX_1a);
- if (version == PDFOptions::PDFVersion_X3)
+ if (version == PDFVersion::PDF_X3)
return (curIndex == PdfVersionModel::ItemPDFX_3);
- if (version == PDFOptions::PDFVersion_X4)
+ if (version == PDFVersion::PDF_X4)
return (curIndex == PdfVersionModel::ItemPDFX_4);
return false;
}
@@ -76,35 +80,37 @@
return false;
}
-void PdfVersionCombo::setVersion(PDFOptions::PDFVersion version)
+void PdfVersionCombo::setVersion(const PDFVersion& version)
{
- if ((version == PDFOptions::PDFVersion_X1a) && !m_isPdfXEnabled)
+ if ((version == PDFVersion::PDF_X1a) && !m_isPdfXEnabled)
{
setCurrentIndex(PdfVersionModel::ItemPDF_13);
return;
}
- if ((version == PDFOptions::PDFVersion_X3) && !m_isPdfXEnabled)
+ if ((version == PDFVersion::PDF_X3) && !m_isPdfXEnabled)
{
setCurrentIndex(PdfVersionModel::ItemPDF_13);
return;
}
- if ((version == PDFOptions::PDFVersion_X4) && !m_isPdfXEnabled)
+ if ((version == PDFVersion::PDF_X4) && !m_isPdfXEnabled)
{
setCurrentIndex(PdfVersionModel::ItemPDF_15);
return;
}
- if (version == PDFOptions::PDFVersion_13)
+ if (version == PDFVersion::PDF_13)
setCurrentIndex(PdfVersionModel::ItemPDF_13);
- else if (version == PDFOptions::PDFVersion_14)
+ else if (version == PDFVersion::PDF_14)
setCurrentIndex(PdfVersionModel::ItemPDF_14);
- else if (version == PDFOptions::PDFVersion_15)
+ else if (version == PDFVersion::PDF_15)
setCurrentIndex(PdfVersionModel::ItemPDF_15);
- else if (version == PDFOptions::PDFVersion_X1a)
+ else if (version == PDFVersion::PDF_16)
+ setCurrentIndex(PdfVersionModel::ItemPDF_16);
+ else if (version == PDFVersion::PDF_X1a)
setCurrentIndex(PdfVersionModel::ItemPDFX_1a);
- else if (version == PDFOptions::PDFVersion_X3)
+ else if (version == PDFVersion::PDF_X3)
setCurrentIndex(PdfVersionModel::ItemPDFX_3);
- else if (version == PDFOptions::PDFVersion_X4)
+ else if (version == PDFVersion::PDF_X4)
setCurrentIndex(PdfVersionModel::ItemPDFX_4);
}
@@ -114,14 +120,14 @@
return;
m_isPdfXEnabled = enabled;
- PDFOptions::PDFVersion oldVersion = version();
+ PDFVersion oldVersion = version();
if (!enabled)
{
- if ((oldVersion == PDFOptions::PDFVersion_X1a) && !enabled)
+ if ((oldVersion == PDFVersion::PDF_X1a) && !enabled)
setCurrentIndex((int) PdfVersionModel::ItemPDF_13);
- if ((oldVersion == PDFOptions::PDFVersion_X3) && !enabled)
+ if ((oldVersion == PDFVersion::PDF_X3) && !enabled)
setCurrentIndex((int) PdfVersionModel::ItemPDF_13);
- if ((oldVersion == PDFOptions::PDFVersion_X4) && !enabled)
+ if ((oldVersion == PDFVersion::PDF_X4) && !enabled)
setCurrentIndex((int) PdfVersionModel::ItemPDF_15);
}
m_pdfVersionModel->setPdfXEnabled(enabled);
Modified: trunk/Scribus/scribus/ui/pdfversioncombo.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/ui/pdfversioncombo.h
==============================================================================
--- trunk/Scribus/scribus/ui/pdfversioncombo.h (original)
+++ trunk/Scribus/scribus/ui/pdfversioncombo.h Tue Mar 31 11:39:59 2020
@@ -11,6 +11,7 @@
#include "scribusapi.h"
#include "pdfoptions.h"
+#include "pdfversion.h"
class PdfVersionModel;
@@ -26,12 +27,12 @@
PdfVersionCombo(QWidget* parent=0);
~PdfVersionCombo();
- PDFOptions::PDFVersion version() const;
+ PDFVersion version() const;
- bool versionIs(PDFOptions::PDFVersion version) const;
+ bool versionIs(const PDFVersion& version) const;
bool versionIsPDFX() const;
- void setVersion(PDFOptions::PDFVersion version);
+ void setVersion(const PDFVersion& version);
void setPDFXEnabled(bool enabled);
private:
Modified: trunk/Scribus/scribus/ui/pdfversionmodel.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/ui/pdfversionmodel.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/pdfversionmodel.cpp (original)
+++ trunk/Scribus/scribus/ui/pdfversionmodel.cpp Tue Mar 31 11:39:59 2020
@@ -14,7 +14,7 @@
: QAbstractItemModel(parent)
{
- m_enabledVec << true << true << true << false << false << false;
+ m_enabledVec << true << true << true << true << false << false << false;
}
void PdfVersionModel::clear()
@@ -45,6 +45,8 @@
return tr("PDF 1.4 (Acrobat 5)");
if (row == ItemPDF_15)
return tr("PDF 1.5 (Acrobat 6)");
+ if (row == ItemPDF_16)
+ return tr("PDF 1.6 (Acrobat 7)");
if (row == ItemPDFX_1a)
return tr("PDF/X-1a");
if (row == ItemPDFX_3)
Modified: trunk/Scribus/scribus/ui/pdfversionmodel.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/ui/pdfversionmodel.h
==============================================================================
--- trunk/Scribus/scribus/ui/pdfversionmodel.h (original)
+++ trunk/Scribus/scribus/ui/pdfversionmodel.h Tue Mar 31 11:39:59 2020
@@ -27,9 +27,10 @@
ItemPDF_13 = 0,
ItemPDF_14 = 1,
ItemPDF_15 = 2,
- ItemPDFX_1a = 3,
- ItemPDFX_3 = 4,
- ItemPDFX_4 = 5
+ ItemPDF_16 = 3,
+ ItemPDFX_1a = 4,
+ ItemPDFX_3 = 5,
+ ItemPDFX_4 = 6
};
//! Remove all colors from list;
Modified: trunk/Scribus/scribus/ui/prefs_pdfexport.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/ui/prefs_pdfexport.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/prefs_pdfexport.cpp (original)
+++ trunk/Scribus/scribus/ui/prefs_pdfexport.cpp Tue Mar 31 11:39:59 2020
@@ -257,7 +257,7 @@
{
exportingPDF=exporting;
enablePDFExportTabs(exportingPDF);
- AllFonts=prefsData->fontPrefs.AvailFonts;
+ AllFonts = prefsData->fontPrefs.AvailFonts;
int unitIndex = prefsData->docSetupPrefs.docUnitIndex;
unitRatio = unitGetRatioFromIndex(unitIndex);
unitChange(unitIndex);
@@ -272,14 +272,14 @@
clipToPrinterMarginsCheckBox->setChecked(prefsData->pdfPrefs.doClip);
bool cmsUse = m_doc ? (ScCore->haveCMS() && m_doc->HasCMS) : false;
if (!cmsUse)
- pdfVersionComboBox->setVersion(PDFOptions::PDFVersion_14);
+ pdfVersionComboBox->setVersion(PDFVersion::PDF_14);
pdfVersionComboBox->setVersion(prefsData->pdfPrefs.Version);
pageBindingComboBox->setCurrentIndex(prefsData->pdfPrefs.Binding);
generateThumbnailsCheckBox->setChecked(prefsData->pdfPrefs.Thumbnails);
saveLinkedTextFramesAsArticlesCheckBox->setChecked(prefsData->pdfPrefs.Articles);
includeBookmarksCheckBox->setChecked(prefsData->pdfPrefs.Bookmarks);
includeLayersCheckBox->setChecked(prefsData->pdfPrefs.useLayers);
- includeLayersCheckBox->setEnabled(prefsData->pdfPrefs.Version == PDFOptions::PDFVersion_15 || prefsData->pdfPrefs.Version == PDFOptions::PDFVersion_X4);
+ includeLayersCheckBox->setEnabled(prefsData->pdfPrefs.Version.supportsOCGs());
epsExportResolutionSpinBox->setValue(prefsData->pdfPrefs.Resolution);
embedPDFAndEPSFilesCheckBox->setChecked(prefsData->pdfPrefs.embedPDF);
@@ -354,7 +354,8 @@
for (int fe = 0; fe < docFonts.count(); ++ fe)
{
const QString& fontName = docFonts.at(fe);
- if (Opts.EmbedList.contains(fontName))
+ const ScFace fontFace = AllFonts[fontName];
+ if (Opts.EmbedList.contains(fontName) && (!fontFace.isOTF() || Opts.supportsEmbeddedOpenTypeFonts()) && !fontFace.subset())
addFontItem(fontName, embeddedFontsListWidget);
else
{
@@ -418,10 +419,7 @@
facingPagesLeftRadioButton->setChecked(true);
else if (Opts.PageLayout == PDFOptions::TwoColumnRight)
facingPagesRightRadioButton->setChecked(true);
- if ((Opts.Version == PDFOptions::PDFVersion_15) || (Opts.Version == PDFOptions::PDFVersion_X4))
- useLayersRadioButton->setEnabled(true);
- else
- useLayersRadioButton->setEnabled(false);
+ useLayersRadioButton->setEnabled(Opts.Version.supportsOCGs());
}
useEncryptionCheckBox->setChecked( prefsData->pdfPrefs.Encrypt );
@@ -568,11 +566,11 @@
printPageInfoCheckBox->setChecked(prefsData->pdfPrefs.docInfoMarks);
if (!cmsUse)
enablePDFXWidgets(false);
- if (cmsUse && (Opts.Version == PDFOptions::PDFVersion_X1a) && (!PDFXProfiles.isEmpty()))
+ if (cmsUse && (Opts.Version == PDFVersion::PDF_X1a) && (!PDFXProfiles.isEmpty()))
enablePDFX(3);
- else if (cmsUse && (Opts.Version == PDFOptions::PDFVersion_X3) && (!PDFXProfiles.isEmpty()))
+ else if (cmsUse && (Opts.Version == PDFVersion::PDF_X3) && (!PDFXProfiles.isEmpty()))
enablePDFX(4);
- else if (cmsUse && (Opts.Version == PDFOptions::PDFVersion_X4) && (!PDFXProfiles.isEmpty()))
+ else if (cmsUse && (Opts.Version == PDFVersion::PDF_X4) && (!PDFXProfiles.isEmpty()))
enablePDFX(5);
else
enablePDFXWidgets(false);
@@ -587,7 +585,7 @@
effectTypeComboBox->addItem( tr("Glitter"));
effectTypeComboBox->addItem( tr("Split"));
effectTypeComboBox->addItem( tr("Wipe"));
- if (Opts.Version == PDFOptions::PDFVersion_15)
+ if (Opts.Version.supportsPDF15PresentationEffects())
{
effectTypeComboBox->addItem( tr("Push"));
effectTypeComboBox->addItem( tr("Cover"));
@@ -697,7 +695,7 @@
if (useEncryptionCheckBox->isChecked())
{
int Perm = -64;
- if (pdfVersionComboBox->currentIndex() == 1)
+ if (pdfVersionComboBox->version() == PDFVersion::PDF_14)
Perm &= ~0x00240000;
if (allowPrintingCheckBox->isChecked())
Perm += 4;
@@ -828,7 +826,7 @@
{
enableLPI(i);
bool setter = false;
- if (i == 1 && (!pdfVersionComboBox->versionIs(PDFOptions::PDFVersion_X1a)))
+ if (i == 1 && (!pdfVersionComboBox->versionIs(PDFVersion::PDF_X1a)))
setter = true;
enableSolidsImagesWidgets(setter);
}
@@ -990,11 +988,14 @@
solidColorRenderingIntentComboBox->setEnabled(setter);
}
-void Prefs_PDFExport::enablePDFX(int i)
-{
- includeLayersCheckBox->setEnabled((i == 2) || (i == 5));
+void Prefs_PDFExport::enablePDFX(int)
+{
+ PDFVersion pdfVer = pdfVersionComboBox->version();
+
+ includeLayersCheckBox->setEnabled(pdfVer.supportsOCGs());
if (useLayersRadioButton)
- useLayersRadioButton->setEnabled((i == 2) || (i == 5));
+ useLayersRadioButton->setEnabled(pdfVer.supportsOCGs());
+
if (m_doc != nullptr && exportingPDF)
{
int currentEff = effectTypeComboBox->currentIndex();
@@ -1007,7 +1008,7 @@
effectTypeComboBox->addItem( tr("Glitter"));
effectTypeComboBox->addItem( tr("Split"));
effectTypeComboBox->addItem( tr("Wipe"));
- if (i == 2)
+ if (pdfVer.supportsPDF15PresentationEffects())
{
effectTypeComboBox->addItem( tr("Push"));
effectTypeComboBox->addItem( tr("Cover"));
@@ -1034,8 +1035,9 @@
connect(effectTypeComboBox, SIGNAL(activated(int)), this, SLOT(SetEffOpts(int)));
}
- if (i < 3) // not PDF/X
- {
+ if (!pdfVer.isPDFX()) // not PDF/X
+ {
+ checkEmbeddableFonts();
fontEmbeddingCombo->setNoEmbeddingEnabled(true);
enablePDFXWidgets(false);
tabWidget->setTabEnabled(2, true);
@@ -1055,7 +1057,7 @@
outputIntentionComboBox->setCurrentIndex(1);
outputIntentionComboBox->setEnabled(false);
enableProfiles(1);
- if ((i == 4) || (i == 5)) // X3 or X4, enforcing color profiles on images
+ if (pdfVer == PDFVersion::PDF_X3 || pdfVer == PDFVersion::PDF_X4) // X3 or X4, enforcing color profiles on images
{
useImageProfileCheckBox->setChecked(true);
useImageProfileCheckBox->setEnabled(false);
@@ -1098,10 +1100,10 @@
void Prefs_PDFExport::addPDFVersions(bool addPDFXStrings)
{
disconnect(pdfVersionComboBox, SIGNAL(activated(int)), this, SLOT(enablePDFX(int)));
- PDFOptions::PDFVersion currVersion = pdfVersionComboBox->version();
+ PDFVersion currVersion = pdfVersionComboBox->version();
pdfVersionComboBox->setPDFXEnabled(addPDFXStrings);
if (!addPDFXStrings)
- currVersion = qMax(PDFOptions::PDFVersion_13, qMin(currVersion, PDFOptions::PDFVersion_15));
+ currVersion = qMax(PDFVersion::PDF_13, qMin((PDFVersion::Version) currVersion, PDFVersion::PDF_16));
pdfVersionComboBox->setVersion(currVersion);
connect(pdfVersionComboBox, SIGNAL(activated(int)), this, SLOT(enablePDFX(int)));
}
@@ -1127,6 +1129,8 @@
void Prefs_PDFExport::EmbedAll()
{
+ PDFVersion pdfVer = pdfVersionComboBox->version();
+
embeddedFontsListWidget->clear();
subsettedFontsListWidget->clear();
toSubsetButton->setEnabled(false);
@@ -1136,10 +1140,11 @@
if (m_doc)
docFonts = m_doc->usedFonts().keys();
- for (int a=0; a < docFonts.count(); ++a)
- {
- const QString& fontName = docFonts.at(a);
- if (!AllFonts[fontName].subset())
+ for (int i = 0; i < docFonts.count(); ++i)
+ {
+ const QString& fontName = docFonts.at(i);
+ const ScFace fontFace = AllFonts[fontName];
+ if (!fontFace.subset() && (!fontFace.isOTF() || pdfVer.supportsEmbeddedOpenTypeFonts()))
{
QListWidgetItem* item = addFontItem(fontName, embeddedFontsListWidget);
if (AnnotationFonts.contains(item->text()))
@@ -1186,6 +1191,26 @@
void Prefs_PDFExport::OutlineAll()
{
// Nothing to do at this point
+}
+
+void Prefs_PDFExport::checkEmbeddableFonts()
+{
+ PDFVersion pdfVer = pdfVersionComboBox->version();
+
+ for (int i = 0; i < embeddedFontsListWidget->count(); ++i)
+ {
+ QListWidgetItem* item = embeddedFontsListWidget->item(i);
+ QString fontName = item->text();
+ if (AnnotationFonts.contains(fontName))
+ continue;
+ const ScFace fontFace = AllFonts[fontName];
+ if (fontFace.isOTF() && !pdfVer.supportsEmbeddedOpenTypeFonts())
+ {
+ delete embeddedFontsListWidget->takeItem(i);
+ addFontItem(fontName, subsettedFontsListWidget);
+ --i;
+ }
+ }
}
void Prefs_PDFExport::doDocBleeds()
@@ -1349,38 +1374,47 @@
void Prefs_PDFExport::RemoveSubset()
{
- QString currentFont = subsettedFontsListWidget->currentItem()->text();
- const ScFace fontFace = AllFonts[currentFont];
- if ((fontFace.type() != ScFace::OTF) && (!fontFace.subset()))
- {
- embeddedFontsListWidget->addItem(currentFont);
- delete subsettedFontsListWidget->takeItem(subsettedFontsListWidget->currentRow());
- }
+ PDFVersion pdfVer = pdfVersionComboBox->version();
+
+ QList<QListWidgetItem*> selection = subsettedFontsListWidget->selectedItems();
+ for (int i = 0; i < selection.count() ; ++i)
+ {
+ QListWidgetItem* fontItem = selection[i];
+ QString currentFont = fontItem->text();
+ const ScFace fontFace = AllFonts[currentFont];
+ if (fontFace.isOTF() && !pdfVer.supportsEmbeddedOpenTypeFonts())
+ continue;
+ if (fontFace.subset())
+ continue;
+ addFontItem(currentFont, embeddedFontsListWidget);
+ int currentRow = subsettedFontsListWidget->row(fontItem);
+ delete subsettedFontsListWidget->takeItem(currentRow);
+ }
+
subsettedFontsListWidget->clearSelection();
- if (subsettedFontsListWidget->count() == 0)
- fromSubsetButton->setEnabled(false);
+ fromSubsetButton->setEnabled(false);
}
void Prefs_PDFExport::PutToSubset()
{
- QString currentFont = embeddedFontsListWidget->currentItem()->text();
- if (subsettedFontsListWidget->count() != 0)
- {
- if (subsettedFontsListWidget->findItems(currentFont, Qt::MatchExactly).count() == 0)
+ QList<QListWidgetItem*> selection = embeddedFontsListWidget->selectedItems();
+ for (int i = 0; i < selection.count() ; ++i)
+ {
+ QListWidgetItem* fontItem = selection[i];
+ QString currentFont = fontItem->text();
+ if (subsettedFontsListWidget->count() != 0)
+ {
+ if (subsettedFontsListWidget->findItems(currentFont, Qt::MatchExactly).count() == 0)
+ addFontItem(currentFont, subsettedFontsListWidget);
+ }
+ else
+ {
addFontItem(currentFont, subsettedFontsListWidget);
- }
- else
- {
- addFontItem(currentFont, subsettedFontsListWidget);
- }
- delete embeddedFontsListWidget->takeItem(embeddedFontsListWidget->currentRow());
+ }
+ int itemRow = embeddedFontsListWidget->row(fontItem);
+ delete embeddedFontsListWidget->takeItem(itemRow);
+ }
+
embeddedFontsListWidget->clearSelection();
- if (embeddedFontsListWidget->count() == 0)
- {
- toSubsetButton->setEnabled(false);
- }
- else if (!(embeddedFontsListWidget->currentItem()->flags() & Qt::ItemIsSelectable))
- {
- toSubsetButton->setEnabled(false);
- }
-}
+ toSubsetButton->setEnabled(false);
+}
Modified: trunk/Scribus/scribus/ui/prefs_pdfexport.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/ui/prefs_pdfexport.h
==============================================================================
--- trunk/Scribus/scribus/ui/prefs_pdfexport.h (original)
+++ trunk/Scribus/scribus/ui/prefs_pdfexport.h Tue Mar 31 11:39:59 2020
@@ -72,6 +72,7 @@
protected:
QListWidgetItem* addFontItem(const QString& fontName, QListWidget* fontList);
+ void checkEmbeddableFonts();
void setCustomRenderingWidgetsShown(bool);
void setSolidsImagesWidgetsShown(bool);
void enableCustomRenderingWidgets(bool);
Modified: trunk/Scribus/scribus/ui/tabpdfoptions.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/ui/tabpdfoptions.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/tabpdfoptions.cpp (original)
+++ trunk/Scribus/scribus/ui/tabpdfoptions.cpp Tue Mar 31 11:39:59 2020
@@ -347,17 +347,14 @@
ClipMarg->setChecked(Opts.doClip);
bool cmsUse = (ScCore->haveCMS() && m_Doc->HasCMS);
if (!cmsUse)
- PDFVersionCombo->setVersion(PDFOptions::PDFVersion_14);
+ PDFVersionCombo->setVersion(PDFVersion::PDF_14);
PDFVersionCombo->setVersion(Opts.Version);
ComboBind->setCurrentIndex(Opts.Binding);
CheckBox1->setChecked(Opts.Thumbnails);
Article->setChecked(Opts.Articles);
CheckBM->setChecked(Opts.Bookmarks);
useLayers->setChecked(Opts.useLayers);
- if (Opts.Version == PDFOptions::PDFVersion_15 || Opts.Version == PDFOptions::PDFVersion_X4)
- useLayers->setEnabled(true);
- else
- useLayers->setEnabled(false);
+ useLayers->setEnabled(Opts.Version.supportsOCGs());
Resolution->setValue(Opts.Resolution);
EmbedPDF->setChecked(Opts.embedPDF);
Compression->setChecked( Opts.Compress );
@@ -370,9 +367,9 @@
ValC->setEnabled(DSColor->isChecked());
m_docFonts = DocFonts.keys();
- if (Opts.Version == PDFOptions::PDFVersion_X1a ||
- Opts.Version == PDFOptions::PDFVersion_X3 ||
- Opts.Version == PDFOptions::PDFVersion_X4 )
+ if (Opts.Version == PDFVersion::PDF_X1a ||
+ Opts.Version == PDFVersion::PDF_X3 ||
+ Opts.Version == PDFVersion::PDF_X4 )
{
if (Opts.FontEmbedding != PDFOptions::EmbedFonts &&
Opts.FontEmbedding != PDFOptions::OutlineFonts)
@@ -467,7 +464,7 @@
{
QString fontName = m_docFonts.at(fe);
const ScFace fontFace = AllFonts[fontName];
- if (Opts.EmbedList.contains(fontName) && (!fontFace.isOTF()))
+ if (Opts.EmbedList.contains(fontName) && (!fontFace.isOTF() || Opts.supportsEmbeddedOpenTypeFonts()) && !fontFace.subset())
addFontItem(fontName, EmbedList);
else
{
@@ -531,10 +528,7 @@
facingPagesLeft->setChecked(true);
else if (Opts.PageLayout == PDFOptions::TwoColumnRight)
facingPagesRight->setChecked(true);
- if ((Opts.Version == PDFOptions::PDFVersion_15) || (Opts.Version == PDFOptions::PDFVersion_X4))
- useLayers2->setEnabled(true);
- else
- useLayers2->setEnabled(false);
+ useLayers2->setEnabled(Opts.Version.supportsOCGs());
Encry->setChecked( Opts.Encrypt );
PassOwner->setText(Opts.PassOwner);
@@ -657,11 +651,11 @@
docInfoMarks->setChecked(Opts.docInfoMarks);
if (!cmsUse)
X3Group->setEnabled(false);
- if (cmsUse && (Opts.Version == PDFOptions::PDFVersion_X1a) && (!PDFXProfiles.isEmpty()))
+ if (cmsUse && (Opts.Version == PDFVersion::PDF_X1a) && (!PDFXProfiles.isEmpty()))
EnablePDFX(3);
- else if (cmsUse && (Opts.Version == PDFOptions::PDFVersion_X3) && (!PDFXProfiles.isEmpty()))
+ else if (cmsUse && (Opts.Version == PDFVersion::PDF_X3) && (!PDFXProfiles.isEmpty()))
EnablePDFX(4);
- else if (cmsUse && (Opts.Version == PDFOptions::PDFVersion_X4) && (!PDFXProfiles.isEmpty()))
+ else if (cmsUse && (Opts.Version == PDFVersion::PDF_X4) && (!PDFXProfiles.isEmpty()))
EnablePDFX(5);
else
X3Group->setEnabled(false);
@@ -674,7 +668,7 @@
EffectType->addItem( tr("Glitter"));
EffectType->addItem( tr("Split"));
EffectType->addItem( tr("Wipe"));
- if (Opts.Version == PDFOptions::PDFVersion_15)
+ if (Opts.Version.supportsPDF15PresentationEffects())
{
EffectType->addItem( tr("Push"));
EffectType->addItem( tr("Cover"));
@@ -747,7 +741,7 @@
if (Encry->isChecked())
{
int Perm = -64;
- if (PDFVersionCombo->currentIndex() == 1)
+ if (PDFVersionCombo->version() == PDFVersion::PDF_14)
Perm &= ~0x00240000;
if (PrintSec->isChecked())
Perm += 4;
@@ -845,20 +839,22 @@
void TabPDFOptions::enableCMS(bool enable)
{
QSignalBlocker blocker(PDFVersionCombo);
- PDFOptions::PDFVersion currVersion = PDFVersionCombo->version();
+ PDFVersion currVersion = PDFVersionCombo->version();
PDFVersionCombo->setPDFXEnabled(enable);
cms = enable;
if (!enable)
- currVersion = qMax(PDFOptions::PDFVersion_13, qMin(currVersion, PDFOptions::PDFVersion_15));
+ currVersion = qMax(PDFVersion::PDF_13, qMin((PDFVersion::Version) currVersion, PDFVersion::PDF_16));
PDFVersionCombo->setVersion(currVersion);
EnablePr(1);
}
-void TabPDFOptions::EnablePDFX(int a)
-{
- useLayers->setEnabled((a == 2) || (a == 5));
+void TabPDFOptions::EnablePDFX(int /*a*/)
+{
+ PDFVersion pdfVer = PDFVersionCombo->version();
+
+ useLayers->setEnabled(pdfVer.supportsOCGs());
if (useLayers2)
- useLayers2->setEnabled((a == 2) || (a == 5));
+ useLayers2->setEnabled(pdfVer.supportsOCGs());
int currentEff = EffectType->currentIndex();
disconnect(EffectType, SIGNAL(activated(int)), this, SLOT(SetEffOpts(int)));
@@ -870,7 +866,7 @@
EffectType->addItem( tr("Glitter"));
EffectType->addItem( tr("Split"));
EffectType->addItem( tr("Wipe"));
- if (a == 2)
+ if (pdfVer.supportsPDF15PresentationEffects())
{
EffectType->addItem( tr("Push"));
EffectType->addItem( tr("Cover"));
@@ -896,8 +892,9 @@
}
connect(EffectType, SIGNAL(activated(int)), this, SLOT(SetEffOpts(int)));
- if (a < 3) // not PDF/X
- {
+ if (!pdfVer.isPDFX()) // not PDF/X
+ {
+ checkEmbeddableFonts();
fontEmbeddingCombo->setNoEmbeddingEnabled(true);
X3Group->setEnabled(false);
setTabEnabled(indexOf(tabSecurity), true);
@@ -911,19 +908,20 @@
EnablePr(OutCombo->currentIndex());
return;
}
+
// PDF/X is selected
disconnect(OutCombo, SIGNAL(activated(int)), this, SLOT(EnablePr(int)));
OutCombo->setCurrentIndex(1);
OutCombo->setEnabled(false);
EnablePr(1);
- if (a == 3) // X1, no profile embedding
+ if (pdfVer == PDFVersion::PDF_X1a) // X1, no profile embedding
{
EmbedProfs->setChecked(false);
EmbedProfs->setEnabled(false);
EmbedProfs2->setChecked(false);
EmbedProfs2->setEnabled(false);
}
- if ((a == 4) || (a == 5)) // X3 or X4, enforcing color profiles on images
+ if (pdfVer == PDFVersion::PDF_X3 || pdfVer == PDFVersion::PDF_X4) // X3 or X4, enforcing color profiles on images
{
EmbedProfs->setEnabled(true);
EmbedProfs2->setChecked(true);
@@ -1003,7 +1001,7 @@
EnableLPI(a);
bool setter = false;
if (a == 1)
- setter = !PDFVersionCombo->versionIs(PDFOptions::PDFVersion_X1a);
+ setter = !PDFVersionCombo->versionIs(PDFVersion::PDF_X1a);
solidsProfileGroup->setEnabled(setter);
imageProfileGroup->setEnabled(setter);
@@ -1295,13 +1293,17 @@
void TabPDFOptions::RemoveSubset()
{
+ PDFVersion pdfVer = PDFVersionCombo->version();
+
QList<QListWidgetItem*> selection = SubsetList->selectedItems();
for (int i = 0; i < selection.count() ; ++i)
{
QListWidgetItem* fontItem = selection[i];
QString currentFont = fontItem->text();
const ScFace fontFace = AllFonts[currentFont];
- if (fontFace.isOTF() || fontFace.subset())
+ if (fontFace.isOTF() && !pdfVer.supportsEmbeddedOpenTypeFonts())
+ continue;
+ if (fontFace.subset())
continue;
addFontItem(currentFont, EmbedList);
int currentRow = SubsetList->row(fontItem);
@@ -1348,6 +1350,7 @@
void TabPDFOptions::SelSFont(QListWidgetItem*)
{
+ PDFVersion pdfVer = PDFVersionCombo->version();
QList<QListWidgetItem*> selection = SubsetList->selectedItems();
int enabledForEmbedding = selection.count();
@@ -1355,7 +1358,9 @@
{
const QListWidgetItem* item = selection.at(i);
const ScFace face = AllFonts[item->text()];
- if (face.isOTF() || face.subset())
+ if (face.isOTF() && !pdfVer.supportsEmbeddedOpenTypeFonts())
+ enabledForEmbedding--;
+ else if (face.subset())
enabledForEmbedding--;
}
@@ -1366,15 +1371,18 @@
void TabPDFOptions::EmbedAll()
{
+ PDFVersion pdfVer = PDFVersionCombo->version();
+
EmbedList->clear();
SubsetList->clear();
ToSubset->setEnabled(false);
FromSubset->setEnabled(false);
+
for (int i = 0; i < m_docFonts.count(); ++i)
{
QString fontName = m_docFonts.at(i);
const ScFace fontFace = AllFonts[fontName];
- if (!fontFace.subset() && !fontFace.isOTF())
+ if (!fontFace.subset() && (!fontFace.isOTF() || pdfVer.supportsEmbeddedOpenTypeFonts()))
{
QListWidgetItem* item = addFontItem(fontName, EmbedList);
if (m_annotationFonts.contains(item->text()))
@@ -1409,6 +1417,26 @@
else
{
addFontItem(fontName, SubsetList);
+ }
+ }
+}
+
+void TabPDFOptions::checkEmbeddableFonts()
+{
+ PDFVersion pdfVer = PDFVersionCombo->version();
+
+ for (int i = 0; i < EmbedList->count(); ++i)
+ {
+ QListWidgetItem* item = EmbedList->item(i);
+ QString fontName = item->text();
+ if (m_annotationFonts.contains(fontName))
+ continue;
+ const ScFace fontFace = AllFonts[fontName];
+ if (fontFace.isOTF() && !pdfVer.supportsEmbeddedOpenTypeFonts())
+ {
+ delete EmbedList->takeItem(i);
+ addFontItem(fontName, SubsetList);
+ --i;
}
}
}
Modified: trunk/Scribus/scribus/ui/tabpdfoptions.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/scribus/ui/tabpdfoptions.h
==============================================================================
--- trunk/Scribus/scribus/ui/tabpdfoptions.h (original)
+++ trunk/Scribus/scribus/ui/tabpdfoptions.h Tue Mar 31 11:39:59 2020
@@ -113,6 +113,7 @@
QString SelLPIcolor;
QListWidgetItem* addFontItem(const QString& fontName, QListWidget* fontList);
+ void checkEmbeddableFonts();
private:
// Non-GUI protected members
Modified: trunk/Scribus/win32/msvc2013/scribus-main/Scribus.vcxproj
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/win32/msvc2013/scribus-main/Scribus.vcxproj
==============================================================================
--- trunk/Scribus/win32/msvc2013/scribus-main/Scribus.vcxproj (original)
+++ trunk/Scribus/win32/msvc2013/scribus-main/Scribus.vcxproj Tue Mar 31 11:39:59 2020
@@ -344,6 +344,7 @@
<ClInclude Include="..\..\..\scribus\palettes\paletteloader_sk1.h" />
<ClInclude Include="..\..\..\scribus\palettes\paletteloader_swatchbook.h" />
<ClInclude Include="..\..\..\scribus\pdfstructs.h" />
+ <ClInclude Include="..\..\..\scribus\pdfversion.h" />
<ClInclude Include="..\..\..\scribus\pdfwriter.h" />
<ClInclude Include="..\..\..\scribus\sccolorstructs.h" />
<ClInclude Include="..\..\..\scribus\styles\cellstyle.h" />
@@ -882,6 +883,7 @@
<ClCompile Include="..\..\..\scribus\palettes\paletteloader_ps.cpp" />
<ClCompile Include="..\..\..\scribus\palettes\paletteloader_sk1.cpp" />
<ClCompile Include="..\..\..\scribus\palettes\paletteloader_swatchbook.cpp" />
+ <ClCompile Include="..\..\..\scribus\pdfversion.cpp" />
<ClCompile Include="..\..\..\scribus\pdfwriter.cpp" />
<ClCompile Include="..\..\..\scribus\qtiocompressor.cpp" />
<ClCompile Include="..\..\..\scribus\imagedataloaders\scimgdataloader_ora.cpp" />
Modified: trunk/Scribus/win32/msvc2013/scribus-main/Scribus.vcxproj.filters
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/win32/msvc2013/scribus-main/Scribus.vcxproj.filters
==============================================================================
--- trunk/Scribus/win32/msvc2013/scribus-main/Scribus.vcxproj.filters (original)
+++ trunk/Scribus/win32/msvc2013/scribus-main/Scribus.vcxproj.filters Tue Mar 31 11:39:59 2020
@@ -803,6 +803,9 @@
<ClInclude Include="..\..\..\scribus\imagedataloaders\scimgdataloader_png.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\scribus\pdfversion.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\scribus\desaxe\digester.cpp">
@@ -2498,6 +2501,9 @@
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\scribus\imagedataloaders\scimgdataloader_png.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\scribus\pdfversion.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
Modified: trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj
==============================================================================
--- trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj (original)
+++ trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj Tue Mar 31 11:39:59 2020
@@ -344,6 +344,7 @@
<ClInclude Include="..\..\..\scribus\palettes\paletteloader_sk1.h" />
<ClInclude Include="..\..\..\scribus\palettes\paletteloader_swatchbook.h" />
<ClInclude Include="..\..\..\scribus\pdfstructs.h" />
+ <ClInclude Include="..\..\..\scribus\pdfversion.h" />
<ClInclude Include="..\..\..\scribus\pdfwriter.h" />
<ClInclude Include="..\..\..\scribus\sccolorstructs.h" />
<ClInclude Include="..\..\..\scribus\styles\cellstyle.h" />
@@ -882,6 +883,7 @@
<ClCompile Include="..\..\..\scribus\palettes\paletteloader_ps.cpp" />
<ClCompile Include="..\..\..\scribus\palettes\paletteloader_sk1.cpp" />
<ClCompile Include="..\..\..\scribus\palettes\paletteloader_swatchbook.cpp" />
+ <ClCompile Include="..\..\..\scribus\pdfversion.cpp" />
<ClCompile Include="..\..\..\scribus\pdfwriter.cpp" />
<ClCompile Include="..\..\..\scribus\qtiocompressor.cpp" />
<ClCompile Include="..\..\..\scribus\imagedataloaders\scimgdataloader_ora.cpp" />
Modified: trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj.filters
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23548&path=/trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj.filters
==============================================================================
--- trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj.filters (original)
+++ trunk/Scribus/win32/msvc2015/scribus-main/Scribus.vcxproj.filters Tue Mar 31 11:39:59 2020
@@ -803,6 +803,9 @@
<ClInclude Include="..\..\..\scribus\imagedataloaders\scimgdataloader_png.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\scribus\pdfversion.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\scribus\desaxe\digester.cpp">
@@ -2498,6 +2501,9 @@
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\scribus\imagedataloaders\scimgdataloader_png.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\scribus\pdfversion.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
More information about the scribus-commit
mailing list