CID fonts

This commit is contained in:
Jakub Melka
2019-04-27 14:14:07 +02:00
parent c43bd073fe
commit 56a189d7af
203 changed files with 412265 additions and 85 deletions

View File

@ -24,6 +24,7 @@
#include "pdfdrawwidget.h"
#include "pdfdrawspacecontroller.h"
#include "pdfrenderingerrorswidget.h"
#include "pdffont.h"
#include <QSettings>
#include <QFileDialog>
@ -303,4 +304,44 @@ void PDFViewerMainWindow::on_actionRendering_Errors_triggered()
renderingErrorsDialog.exec();
}
void PDFViewerMainWindow::on_actionGenerateCMAPrepository_triggered()
{
QStringList files = QFileDialog::getOpenFileNames(this, tr("Select CMAP mapping files"));
pdf::PDFFontCMapRepository* instance = pdf::PDFFontCMapRepository::getInstance();
instance->clear();
for (const QString& fileName : files)
{
QFile file(fileName);
if (file.open(QFile::ReadOnly))
{
pdf::PDFFontCMap map = pdf::PDFFontCMap::createFromData(file.readAll());
file.close();
if (map.isValid())
{
QFileInfo fileInfo(file);
instance->add(fileInfo.baseName().toLatin1(), map.serialize());
}
else
{
QMessageBox::critical(this, tr("Error"), tr("Invalid CMAP in file '%1'.").arg(fileName));
return;
}
}
else
{
QMessageBox::critical(this, tr("Error"), tr("File '%1' can't be opened.").arg(fileName));
return;
}
}
QString repositoryFileName = QFileDialog::getSaveFileName(this, tr("Save CMAP repository to file"));
if (!repositoryFileName.isEmpty())
{
instance->saveToFile(repositoryFileName);
}
}
} // namespace pdfviewer