| /* poppler-qt.h: qt interface to poppler |
| * Copyright (C) 2005, Net Integration Technologies, Inc. |
| * Copyright (C) 2005, Tobias Koening <tokoe@kde.org> |
| * Copyright (C) 2005, Brad Hards <bradh@frogmouth.net> |
| * Copyright (C) 2005-2008, 2015, Albert Astals Cid <aacid@kde.org> |
| * Copyright (C) 2008, 2009, Pino Toscano <pino@kde.org> |
| * Copyright (C) 2018, Adam Reichold <adam.reichold@t-online.de> |
| * Copyright (C) 2019, Oliver Sander <oliver.sander@tu-dresden.de> |
| * Copyright (C) 2019, Jan Grulich <jgrulich@redhat.com> |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2, or (at your option) |
| * any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
| */ |
| |
| #include "poppler-qt6.h" |
| #include "poppler-private.h" |
| |
| namespace Poppler { |
| |
| FontInfo::FontInfo() |
| { |
| m_data = new FontInfoData(); |
| } |
| |
| FontInfo::FontInfo(const FontInfoData &fid) |
| { |
| m_data = new FontInfoData(fid); |
| } |
| |
| FontInfo::FontInfo(const FontInfo &fi) |
| { |
| m_data = new FontInfoData(*fi.m_data); |
| } |
| |
| FontInfo::~FontInfo() |
| { |
| delete m_data; |
| } |
| |
| QString FontInfo::name() const |
| { |
| return m_data->fontName; |
| } |
| |
| QString FontInfo::substituteName() const |
| { |
| return m_data->fontSubstituteName; |
| } |
| |
| QString FontInfo::file() const |
| { |
| return m_data->fontFile; |
| } |
| |
| bool FontInfo::isEmbedded() const |
| { |
| return m_data->isEmbedded; |
| } |
| |
| bool FontInfo::isSubset() const |
| { |
| return m_data->isSubset; |
| } |
| |
| FontInfo::Type FontInfo::type() const |
| { |
| return m_data->type; |
| } |
| |
| QString FontInfo::typeName() const |
| { |
| switch (type()) { |
| case unknown: |
| return QObject::tr("unknown"); |
| case Type1: |
| return QObject::tr("Type 1"); |
| case Type1C: |
| return QObject::tr("Type 1C"); |
| case Type3: |
| return QObject::tr("Type 3"); |
| case TrueType: |
| return QObject::tr("TrueType"); |
| case CIDType0: |
| return QObject::tr("CID Type 0"); |
| case CIDType0C: |
| return QObject::tr("CID Type 0C"); |
| case CIDTrueType: |
| return QObject::tr("CID TrueType"); |
| case Type1COT: |
| return QObject::tr("Type 1C (OpenType)"); |
| case TrueTypeOT: |
| return QObject::tr("TrueType (OpenType)"); |
| case CIDType0COT: |
| return QObject::tr("CID Type 0C (OpenType)"); |
| case CIDTrueTypeOT: |
| return QObject::tr("CID TrueType (OpenType)"); |
| } |
| return QObject::tr("Bug: unexpected font type. Notify poppler mailing list!"); |
| } |
| |
| FontInfo &FontInfo::operator=(const FontInfo &fi) |
| { |
| if (this == &fi) { |
| return *this; |
| } |
| |
| *m_data = *fi.m_data; |
| return *this; |
| } |
| |
| FontIterator::FontIterator(int startPage, DocumentData *dd) : d(new FontIteratorData(startPage, dd)) { } |
| |
| FontIterator::~FontIterator() |
| { |
| delete d; |
| } |
| |
| QList<FontInfo> FontIterator::next() |
| { |
| ++d->currentPage; |
| |
| QList<FontInfo> fonts; |
| const std::vector<::FontInfo *> items = d->fontInfoScanner.scan(1); |
| fonts.reserve(items.size()); |
| for (::FontInfo *entry : items) { |
| fonts.append(FontInfo(FontInfoData(entry))); |
| delete entry; |
| } |
| |
| return fonts; |
| } |
| |
| bool FontIterator::hasNext() const |
| { |
| return (d->currentPage + 1) < d->totalPages; |
| } |
| |
| int FontIterator::currentPage() const |
| { |
| return d->currentPage; |
| } |
| |
| } |