summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjghali <jghali@11d20701-8431-0410-a711-e3c959e3b870>2012-09-26 19:18:09 +0000
committerjghali <jghali@11d20701-8431-0410-a711-e3c959e3b870>2012-09-26 19:18:09 +0000
commit7a724c8f0114b301b8d526906bde12dbe7a58de7 (patch)
tree21957af3f2a111802a83b780d84454345490f727
parentbcb1690e25e700041976428ef5554432b7f4fd99 (diff)
downloadscribus-7a724c8f0114b301b8d526906bde12dbe7a58de7.tar.gz
scribus-7a724c8f0114b301b8d526906bde12dbe7a58de7.tar.xz
scribus-7a724c8f0114b301b8d526906bde12dbe7a58de7.zip
#11094: Excessive line spacing in exported pdf form fields
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17777 11d20701-8431-0410-a711-e3c959e3b870
-rw-r--r--scribus/fonts/ftface.cpp13
-rw-r--r--scribus/fonts/ftface.h20
-rw-r--r--scribus/fonts/scface.cpp16
-rw-r--r--scribus/fonts/scface.h20
-rw-r--r--scribus/fonts/scface_ttf.cpp2
-rw-r--r--scribus/pdflib_core.cpp17
6 files changed, 43 insertions, 45 deletions
diff --git a/scribus/fonts/ftface.cpp b/scribus/fonts/ftface.cpp
index 6889312..d0dc4d6 100644
--- a/scribus/fonts/ftface.cpp
+++ b/scribus/fonts/ftface.cpp
@@ -111,11 +111,14 @@ void FtFace::load() const
m_strikeoutPos = m_ascent / 3;
m_strokeWidth = m_face->underline_thickness / m_uniEM;
const_cast<FtFace*>(this)->isFixedPitch = m_face->face_flags & 4;
- Ascent = QString::number(m_face->ascender);
- CapHeight = QString::number(m_face->height);
- Descender = QString::number(m_face->descender);
- FontBBox = QString::number(m_face->bbox.xMin)+" "+QString::number(m_face->bbox.yMin)+" "+QString::number(m_face->bbox.xMax)+" "+QString::number(m_face->bbox.yMax);
- ItalicAngle = "0";
+ m_pdfAscent = QString::number(m_face->ascender / m_uniEM * 1000);
+ m_pdfCapHeight = QString::number(m_face->height / m_uniEM * 1000);
+ m_pdfDescender = QString::number(m_face->descender / m_uniEM * 1000);
+ m_pdfFontBBox = QString::number(m_face->bbox.xMin / m_uniEM * 1000) + " " +
+ QString::number(m_face->bbox.yMin / m_uniEM * 1000) + " " +
+ QString::number(m_face->bbox.xMax / m_uniEM * 1000) + " " +
+ QString::number(m_face->bbox.yMax / m_uniEM * 1000);
+ m_italicAngle = "0";
//FIXME: FT_Set_Charmap(m_face, m_face->charmaps[m_encoding]);
setBestEncoding(m_face);
diff --git a/scribus/fonts/ftface.h b/scribus/fonts/ftface.h
index 434d10a..db534d6 100644
--- a/scribus/fonts/ftface.h
+++ b/scribus/fonts/ftface.h
@@ -70,11 +70,11 @@ struct SCRIBUS_API FtFace : public ScFace::ScFaceData
qreal underlinePos(qreal sz=1.0) const { return m_underlinePos * sz; }
qreal strokeWidth(qreal /*sz*/) const { return m_strokeWidth; }
qreal maxAdvanceWidth(qreal sz=1.0) const { return m_maxAdvanceWidth * sz; }
- QString ascentAsString() const { return Ascent; }
- QString descentAsString() const { return Descender; }
- QString capHeightAsString() const { return CapHeight; }
- QString FontBBoxAsString() const { return FontBBox; }
- QString ItalicAngleAsString() const { return ItalicAngle; }
+ QString pdfAscentAsString() const { return m_pdfAscent; }
+ QString pdfDescentAsString() const { return m_pdfDescender; }
+ QString pdfCapHeightAsString() const { return m_pdfCapHeight; }
+ QString pdfFontBBoxAsString() const { return m_pdfFontBBox; }
+ QString ItalicAngleAsString() const { return m_italicAngle; }
//FIXME QMap<QString,QString> fontDictionary(qreal sz=1.0) const;
@@ -95,13 +95,13 @@ protected:
static FT_Library library;
- mutable QString Ascent;
- mutable QString CapHeight;
- mutable QString Descender;
- mutable QString ItalicAngle;
+ mutable QString m_pdfAscent;
+ mutable QString m_pdfCapHeight;
+ mutable QString m_pdfDescender;
+ mutable QString m_italicAngle;
+ mutable QString m_pdfFontBBox;
mutable QString StdVW;
QString FontEnc;
- mutable QString FontBBox;
mutable int m_encoding;
diff --git a/scribus/fonts/scface.cpp b/scribus/fonts/scface.cpp
index 8be80bc..0d16848 100644
--- a/scribus/fonts/scface.cpp
+++ b/scribus/fonts/scface.cpp
@@ -208,35 +208,35 @@ const ScFace& ScFace::none()
return NONE;
}
-QString ScFace::ascentAsString() const
+QString ScFace::pdfAscentAsString() const
{
if (m->status == ScFace::UNKNOWN) {
m->load();
}
- return m->ascentAsString();
+ return m->pdfAscentAsString();
}
-QString ScFace::descentAsString() const
+QString ScFace::pdfDescentAsString() const
{
if (m->status == ScFace::UNKNOWN) {
m->load();
}
- return m->descentAsString();
+ return m->pdfDescentAsString();
}
-QString ScFace::capHeightAsString() const
+QString ScFace::pdfCapHeightAsString() const
{
if (m->status == ScFace::UNKNOWN) {
m->load();
}
- return m->capHeightAsString();
+ return m->pdfCapHeightAsString();
}
-QString ScFace::fontBBoxAsString() const
+QString ScFace::pdfFontBBoxAsString() const
{
if (m->status == ScFace::UNKNOWN) {
m->load();
}
- return m->FontBBoxAsString();
+ return m->pdfFontBBoxAsString();
}
QString ScFace::italicAngleAsString() const
diff --git a/scribus/fonts/scface.h b/scribus/fonts/scface.h
index 8281505..f7c3aa0 100644
--- a/scribus/fonts/scface.h
+++ b/scribus/fonts/scface.h
@@ -161,12 +161,12 @@ public:
// dummy implementations
virtual qreal ascent(qreal sz) const { return sz; }
- virtual QString ascentAsString() const { return "0" ; }
- virtual QString descentAsString() const { return "0"; }
- virtual QString capHeightAsString() const { return "0"; }
- virtual QString FontBBoxAsString() const { return "0 0 0 0"; }
+ virtual QString pdfAscentAsString() const { return "0" ; }
+ virtual QString pdfDescentAsString() const { return "0"; }
+ virtual QString pdfCapHeightAsString() const { return "0"; }
+ virtual QString pdfFontBBoxAsString() const { return "0 0 0 0"; }
virtual QString ItalicAngleAsString() const { return "0"; }
- virtual qreal descent(qreal /*sz*/) const { return 0.0; }
+ virtual qreal descent(qreal /*sz*/) const { return 0.0; }
virtual qreal xHeight(qreal sz) const { return sz; }
virtual qreal capHeight(qreal sz) const { return sz; }
virtual qreal height(qreal sz) const { return sz; }
@@ -308,11 +308,11 @@ public:
QString variant() const { return m->variant; }
// font metrics
- QString ascentAsString() const;
- QString descentAsString() const;
- QString capHeightAsString() const;
- QString fontBBoxAsString() const;
- QString italicAngleAsString() const;
+ QString pdfAscentAsString() const;
+ QString pdfDescentAsString() const;
+ QString pdfCapHeightAsString() const;
+ QString pdfFontBBoxAsString() const;
+ QString italicAngleAsString() const;
qreal ascent(qreal sz=1.0) const;
qreal descent(qreal sz=1.0) const;
qreal xHeight(qreal sz=1.0) const;
diff --git a/scribus/fonts/scface_ttf.cpp b/scribus/fonts/scface_ttf.cpp
index e436d36..c8f65ae 100644
--- a/scribus/fonts/scface_ttf.cpp
+++ b/scribus/fonts/scface_ttf.cpp
@@ -603,7 +603,7 @@ bool ScFace_ttf::EmbedFont(QString &str) const
str+="/FontName /" + psName + " def\n";
str+="/Encoding /ISOLatin1Encoding where {pop ISOLatin1Encoding} {StandardEncoding} ifelse def\n";
str+="/PaintType 0 def\n/FontMatrix [1 0 0 1 0 0] def\n";
- str+="/FontBBox ["+FontBBox+"] def\n";
+ str+="/FontBBox ["+m_pdfFontBBox+"] def\n";
str+="/FontType 42 def\n";
str+="/FontInfo 8 dict dup begin\n";
str+="/FamilyName (" + psName + ") def\n";
diff --git a/scribus/pdflib_core.cpp b/scribus/pdflib_core.cpp
index 9018b7f..562ae59 100644
--- a/scribus/pdflib_core.cpp
+++ b/scribus/pdflib_core.cpp
@@ -1368,8 +1368,8 @@ bool PDFLibCore::PDF_Begin_Doc(const QString& fn, SCFonts &AllFonts, QMap<QStrin
StartObj(fontDescriptor);
// TODO: think about QByteArray ScFace::getFontDescriptor() -- AV
PutDoc("<<\n/Type /FontDescriptor\n");
- PutDoc("/FontName /"+face.psName().replace( QRegExp("[\\s\\/\\{\\[\\]\\}\\<\\>\\(\\)\\%]"), "_" )+"\n");
- PutDoc("/FontBBox [ "+face.fontBBoxAsString()+" ]\n");
+ PutDoc("/FontName /" + face.psName().replace( QRegExp("[\\s\\/\\{\\[\\]\\}\\<\\>\\(\\)\\%]"), "_" ) + "\n");
+ PutDoc("/FontBBox [ " + face.pdfFontBBoxAsString()+" ]\n");
PutDoc("/Flags ");
//FIXME: isItalic() should be queried from ScFace, not from Qt -- AV
//QFontInfo fo = QFontInfo(it.data());
@@ -1382,15 +1382,10 @@ bool PDFLibCore::PDF_Begin_Doc(const QString& fn, SCFonts &AllFonts, QMap<QStrin
// pfl = pfl ^ 4;
pfl = pfl ^ 32;
PutDoc(QString::number(pfl)+"\n");
- PutDoc("/Ascent "+face.ascentAsString()+"\n");
- PutDoc("/Descent "+face.descentAsString()+"\n");
- PutDoc("/CapHeight "+face.capHeightAsString()+"\n");
- PutDoc("/ItalicAngle "+face.italicAngleAsString()+"\n");
-// PutDoc("/Ascent "+QString::number(static_cast<int>(face.ascent()))+"\n");
-// PutDoc("/Descent "+QString::number(static_cast<int>(face.descent()))+"\n");
-// PutDoc("/CapHeight "+QString::number(static_cast<int>(face.capHeight()))+"\n");
-// PutDoc("/ItalicAngle "+face.italicAngle()+"\n");
-// PutDoc("/StemV "+ face.stemV() + "\n");
+ PutDoc("/Ascent " + face.pdfAscentAsString()+"\n");
+ PutDoc("/Descent " + face.pdfDescentAsString()+"\n");
+ PutDoc("/CapHeight " + face.pdfCapHeightAsString()+"\n");
+ PutDoc("/ItalicAngle " + face.italicAngleAsString()+"\n");
PutDoc("/StemV 1\n");
if ((fformat == ScFace::SFNT || fformat == ScFace::TTCF) && (Options.EmbedList.contains(it.key())))
PutDoc("/FontFile2 "+QString::number(embeddedFontObject)+" 0 R\n");