package co.smartreceipts.android.workers.reports.pdf.pdfbox; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.StringRes; import com.tom_roush.pdfbox.pdmodel.common.PDRectangle; import co.smartreceipts.android.settings.UserPreferenceManager; import co.smartreceipts.android.workers.reports.pdf.colors.PdfColorManager; import co.smartreceipts.android.workers.reports.pdf.fonts.PdfFontManager; public interface PdfBoxContext { /** * The android application {@link Context}. * Used for formatting dates and providing String resources through the * {@link #getString(int, Object...)} method. * * @return */ @NonNull Context getAndroidContext(); /** * A {@link PDRectangle} that represents the full page size, eg A4 etc. * @return */ @NonNull PDRectangle getPageSize(); @NonNull UserPreferenceManager getPreferences(); @NonNull PdfFontManager getFontManager(); @NonNull PdfColorManager getColorManager(); int getLineSpacing(); float getPageMarginHorizontal(); float getPageMarginVertical(); @NonNull String getString(@StringRes int resId, Object... args); void setPageSize(@NonNull PDRectangle rectangle); }