package co.smartreceipts.android.workers.reports.pdf.fonts;
import android.content.Context;
import android.support.annotation.NonNull;
import com.google.common.base.Preconditions;
import com.tom_roush.pdfbox.pdmodel.PDDocument;
import com.tom_roush.pdfbox.pdmodel.font.PDFont;
import com.tom_roush.pdfbox.pdmodel.font.PDType0Font;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
class LocalAssetPdfFontLoader implements PdfFontLoader {
private final Context context;
private final PDDocument document;
private final Map<String, PDFont> fontCache = new HashMap<>();
public LocalAssetPdfFontLoader(@NonNull Context context, @NonNull PDDocument document) {
this.context = Preconditions.checkNotNull(context.getApplicationContext());
this.document = Preconditions.checkNotNull(document);
}
@NonNull
@Override
public PDFont load(@NonNull String fontFile) throws IOException {
PDFont pdFont = fontCache.get(fontFile);
if (pdFont == null) {
pdFont = PDType0Font.load(document, context.getAssets().open(fontFile));
fontCache.put(fontFile, pdFont);
}
return pdFont;
}
}