public PageLayout DetectLayoutFromBook(IBookContent book, int pageNum) { Console.WriteLine("book: " + book.Book.Title + " page: " + pageNum); PdfBookProvider pdfPageProvider = book.BookProvider.o as PdfBookProvider; if (pdfPageProvider == null) { throw new InvalidOperationException("SreenBook.BookProvider must be a PdfBookPageProvider for this LayoutAnalyzer"); } DW<PDFWrapper> pdfDoc = pdfPageProvider.InternalPdfWrapper; PDFPage pdfPage = pdfDoc.o.Pages[pageNum]; if (pdfPage == null) { throw new InvalidOperationException("No PDFPage pageNum=" + pageNum); } // Save doc state int oldPageNum = pdfDoc.o.CurrentPage; try { pdfDoc.o.CurrentPage = pageNum; PageLayout layout = DetectLayout(pdfDoc, pdfPage); return layout; } finally { // Restore doc state pdfDoc.o.CurrentPage = oldPageNum; } }
public PageLayout DetectLayoutFromBook(IBookContent book, int pageNum) { // This is hacky, but OK for now Bitmap b = book.BookProvider.o.RenderPageImage(pageNum, Size.Empty); PageLayout pli = new PageLayout(b.Size); b.Dispose(); return pli; }
public PageLayout DetectLayoutFromBook(IBookContent book, int pageNum) { return null; }
PDFWrapper GetPdfWrapper(IBookContent bc) { return ((PdfBookProvider)bc.BookProvider.o).InternalPdfWrapper.o; }