本文整理汇总了C++中Doc::CreateFormatter方法的典型用法代码示例。如果您正苦于以下问题:C++ Doc::CreateFormatter方法的具体用法?C++ Doc::CreateFormatter怎么用?C++ Doc::CreateFormatter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doc
的用法示例。
在下文中一共展示了Doc::CreateFormatter方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FormatWholeDoc
static int FormatWholeDoc(Doc& doc) {
int PAGE_DX = 640;
int PAGE_DY = 520;
PoolAllocator textAllocator;
HtmlFormatterArgs *formatterArgs = CreateFormatterArgsDoc(doc, PAGE_DX, PAGE_DY, &textAllocator);
HtmlFormatter *formatter = doc.CreateFormatter(formatterArgs);
int nPages = 0;
for (HtmlPage *pd = formatter->Next(); pd; pd = formatter->Next()) {
delete pd;
++nPages;
}
delete formatterArgs;
delete formatter;
return nPages;
}
示例2: Format
// layout pages from a given reparse point (beginning if nullptr)
// returns true if layout thread was cancelled
bool EbookFormattingThread::Format()
{
//lf("Started laying out ebook, reparseIdx=%d", reparseIdx);
int totalPageCount = 0;
formatterArgs->reparseIdx = 0;
pagesAfterReparseIdx = 0;
HtmlFormatter *formatter = doc.CreateFormatter(formatterArgs);
for (HtmlPage *pd = formatter->Next(); pd; pd = formatter->Next()) {
if (WasCancelRequested()) {
//lf("layout cancelled");
for (int i = 0; i < pageCount; i++) {
delete pages[i];
}
pageCount = 0;
delete pd;
// send a 'finished' message so that the thread object gets deleted
SendPagesIfNecessary(true, true /* finished */);
delete formatter;
return true;
}
pages[pageCount++] = pd;
++totalPageCount;
if (pd->reparseIdx >= reparseIdx) {
++pagesAfterReparseIdx;
}
// force sending accumulated pages
bool force = false;
if (2 == pagesAfterReparseIdx) {
force = true;
//lf("EbookFormattingThread::Format: sending pages because pagesAfterReparseIdx == %d", pagesAfterReparseIdx);
}
SendPagesIfNecessary(force, false);
CrashIf(pageCount >= dimof(pages));
}
SendPagesIfNecessary(true, true /* finished */);
delete formatter;
return false;
}