package co.smartreceipts.android.workers.reports.pdf.renderer.grid;
import android.support.annotation.NonNull;
import com.google.common.base.Preconditions;
import org.apache.commons.io.IOUtils;
import java.io.IOException;
import co.smartreceipts.android.workers.reports.pdf.pdfbox.PdfBoxWriter;
import co.smartreceipts.android.workers.reports.pdf.renderer.constraints.HeightConstraint;
import co.smartreceipts.android.workers.reports.pdf.renderer.constraints.WidthConstraint;
import co.smartreceipts.android.workers.reports.pdf.renderer.imagex.PdfPDImageXFactory;
public class PdfGridRenderer extends GridRenderer {
private final PdfPDImageXFactory factory;
public PdfGridRenderer(@NonNull PdfPDImageXFactory factory, float width, float height) {
this(factory, new WidthConstraint(width), new HeightConstraint(height));
}
public PdfGridRenderer(@NonNull PdfPDImageXFactory factory,
@NonNull WidthConstraint widthConstraint, @NonNull HeightConstraint heightConstraint) {
super(widthConstraint, heightConstraint);
this.factory = Preconditions.checkNotNull(factory);
}
@Override
public void render(@NonNull PdfBoxWriter writer) throws IOException {
try {
factory.open();
while (factory.nextPage()) {
writer.newPage();
super.render(writer);
}
} finally {
IOUtils.closeQuietly(factory);
}
}
}