Author: jghali
Date: Fri Feb 10 03:32:13 2017
New Revision: 21759
URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=21759
Log:
fix FontName key in font descriptors
per PDF specs it should be the same as the value of BaseFont in the font or
CIDFont dictionary that refers to this font descriptor
Modified:
trunk/Scribus/scribus/pdflib_core.cpp
Modified: trunk/Scribus/scribus/pdflib_core.cpp
URL:
http://scribus.net/websvn/diff.php?repname=Scribus&rev=21759&path=/trunk/Scribus/scribus/pdflib_core.cpp
==============================================================================
--- trunk/Scribus/scribus/pdflib_core.cpp (original)
+++ trunk/Scribus/scribus/pdflib_core.cpp Fri Feb 10 03:32:13 2017
@@ -1789,7 +1789,7 @@
writer.startObj(fontObject2);
PutDoc("<<\n/Type /Font\n/Subtype /Type0\n");
PutDoc("/Name " + Pdf::toName(fontName) + "\n");
- PutDoc("/BaseFont "+ baseFont +"\n");
+ PutDoc("/BaseFont "+ Pdf::toName(baseFont) +"\n");
PutDoc("/Encoding /Identity-H\n");
PutDoc("/ToUnicode "+Pdf::toPdf(fontToUnicode2)+" 0 R\n");
PutDoc("/DescendantFonts [");
@@ -1798,7 +1798,7 @@
PutDoc("/Subtype /CIDFontType0");
else
PutDoc("/Subtype /CIDFontType2");
- PutDoc("/BaseFont " + baseFont);
+ PutDoc("/BaseFont " + Pdf::toName(baseFont));
PutDoc("/FontDescriptor " + Pdf::toPdf(fontDes)+ " 0 R");
PutDoc("/CIDSystemInfo <</Ordering(Identity)/Registry(Adobe)/Supplement
0>>");
PutDoc("/DW 1000");
@@ -1940,7 +1940,7 @@
PutDoc("<<\n/Type /Font\n/Subtype ");
PutDoc(subtype + "\n");
PutDoc("/Name "+Pdf::toName(fontName)+"S"+Pdf::toPdf(Fc)+"\n");
- PutDoc("/BaseFont "+baseFont+"\n");
+ PutDoc("/BaseFont "+ Pdf::toName(baseFont) + "\n");
PutDoc("/FirstChar 0\n");
PutDoc("/LastChar "+Pdf::toPdf(chCount-1)+"\n");
PutDoc("/Widths "+Pdf::toPdf(fontWidths2)+" 0 R\n");
@@ -1980,8 +1980,8 @@
writer.startObj(fontObjectForm);
PutDoc("<<\n/Type /Font\n/Subtype ");
PutDoc(subtype + "\n");
- PutDoc("/Name " + formFont.name+ "\n");
- PutDoc("/BaseFont "+Pdf::toName(sanitizeFontName(face.psName()))+"\n");
+ PutDoc("/Name " + formFont.name + "\n");
+ PutDoc("/BaseFont "+ Pdf::toName(baseFont) +"\n");
PutDoc("/Encoding << \n");
PutDoc("/Differences [ \n");
PutDoc("24 /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek
/ring /tilde\n");
@@ -2045,7 +2045,7 @@
/*dumpFont(face.psName()+"subs.ttf", subset);*/
PdfId embeddedFontObj = PDF_EmbedFontObject(subset, QByteArray());
PdfId fontDes = PDF_WriteFontDescriptor(fontName, face, face.format(),
embeddedFontObj);
- QByteArray baseFont = Pdf::toName(sanitizeFontName(face.psName()));
+ QByteArray baseFont = sanitizeFontName(face.psName());
ScFace::FaceEncoding fullEncoding, subEncoding;
QMap<uint,uint> glyphmap;
face.glyphNames(fullEncoding);
@@ -2086,7 +2086,7 @@
/*dumpFont(face.psName()+"subs.cff", subset);*/
PdfId embeddedFontObj = PDF_EmbedFontObject(subset, "/CIDFontType0C");
PdfId fontDes = PDF_WriteFontDescriptor(fontName, face, face.format(),
embeddedFontObj);
- QByteArray baseFont = Pdf::toName(sanitizeFontName(face.psName()));
+ QByteArray baseFont = sanitizeFontName(face.psName());
ScFace::FaceEncoding fullEncoding, subEncoding;
QMap<uint,uint> glyphmap;
face.glyphNames(fullEncoding);
@@ -2280,7 +2280,8 @@
{
PdfId embeddedFontObject =
PDF_EmbedFontObject(it.key(), face);
- PdfId fontDescriptor =
PDF_WriteFontDescriptor(fontName, face, fformat, embeddedFontObject);
+ QByteArray baseFont =
sanitizeFontName(face.psName());
+ PdfId fontDescriptor =
PDF_WriteFontDescriptor(baseFont, face, fformat, embeddedFontObject);
ScFace::FaceEncoding gl;
face.glyphNames(gl);
@@ -2303,7 +2304,6 @@
}
}
- QByteArray baseFont =
Pdf::toName(sanitizeFontName(face.psName()));
QByteArray subtype = (fformat == ScFace::SFNT
|| fformat == ScFace::TTCF) ? "/TrueType" : "/Type1";
if ((face.isSymbolic() || !hasNeededGlyphNames
|| Options.Version == PDFOptions::PDFVersion_X4 || face.type() == ScFace::OTF)
&&
_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit